Index: src/trusted/validator_ragel/gen/decoder_x86_32.c |
=================================================================== |
--- src/trusted/validator_ragel/gen/decoder_x86_32.c (revision 11037) |
+++ src/trusted/validator_ragel/gen/decoder_x86_32.c (working copy) |
@@ -19,11 +19,15 @@ |
#include <string.h> |
#include "native_client/src/shared/utils/types.h" |
-#include "native_client/src/trusted/validator_ragel/unreviewed/decoder_internal.h" |
+#include "native_client/src/trusted/validator_ragel/decoder_internal.h" |
+/* |
+ * The "write data" statement causes Ragel to emit the constant static data |
+ * needed by the ragel machine. |
+ */ |
static const short _x86_32_decoder_actions[] = { |
0, 1, 0, 1, 1, 1, 2, 1, |
@@ -11552,7 +11556,7 @@ |
112u, 119u, 120u, 127u, 128u, 135u, 136u, 143u, |
144u, 151u, 152u, 159u, 160u, 167u, 168u, 175u, |
176u, 183u, 184u, 191u, 192u, 199u, 200u, 207u, |
- 208u, 215u, 216u, 223u, 224u, 231u, 232u, 239u, |
+ 208u, 215u, 224u, 231u, 232u, 239u, 240u, 247u, |
248u, 255u, 5u, 13u, 21u, 29u, 37u, 45u, |
53u, 61u, 69u, 77u, 85u, 93u, 101u, 109u, |
117u, 125u, 133u, 141u, 149u, 157u, 165u, 173u, |
@@ -11567,8 +11571,8 @@ |
88u, 95u, 96u, 103u, 104u, 111u, 112u, 119u, |
120u, 127u, 128u, 135u, 136u, 143u, 144u, 151u, |
152u, 159u, 160u, 167u, 168u, 175u, 176u, 183u, |
- 184u, 191u, 192u, 199u, 200u, 207u, 208u, 215u, |
- 216u, 223u, 224u, 231u, 232u, 239u, 240u, 247u, |
+ 184u, 191u, 192u, 199u, 200u, 207u, 216u, 223u, |
+ 224u, 231u, 232u, 239u, 240u, 247u, 248u, 255u, |
4u, 5u, 12u, 13u, 20u, 21u, 28u, 29u, |
36u, 37u, 44u, 45u, 52u, 53u, 60u, 61u, |
68u, 76u, 84u, 92u, 100u, 108u, 116u, 124u, |
@@ -11798,7 +11802,7 @@ |
119u, 120u, 127u, 128u, 135u, 136u, 143u, 144u, |
151u, 152u, 159u, 160u, 167u, 168u, 175u, 176u, |
183u, 184u, 191u, 192u, 199u, 200u, 207u, 208u, |
- 215u, 224u, 231u, 232u, 239u, 240u, 247u, 248u, |
+ 215u, 216u, 223u, 232u, 239u, 240u, 247u, 248u, |
255u, 4u, 5u, 12u, 13u, 20u, 21u, 28u, |
29u, 36u, 37u, 44u, 45u, 52u, 53u, 60u, |
61u, 68u, 76u, 84u, 92u, 100u, 108u, 116u, |
@@ -11809,8 +11813,8 @@ |
95u, 96u, 103u, 104u, 111u, 112u, 119u, 120u, |
127u, 128u, 135u, 136u, 143u, 144u, 151u, 152u, |
159u, 160u, 167u, 168u, 175u, 176u, 183u, 184u, |
- 191u, 192u, 199u, 208u, 215u, 216u, 223u, 224u, |
- 231u, 232u, 239u, 240u, 247u, 248u, 255u, 5u, |
+ 191u, 192u, 199u, 200u, 207u, 208u, 215u, 216u, |
+ 223u, 224u, 231u, 232u, 239u, 248u, 255u, 5u, |
13u, 21u, 29u, 37u, 45u, 53u, 61u, 69u, |
77u, 85u, 93u, 101u, 109u, 117u, 125u, 133u, |
141u, 149u, 157u, 165u, 173u, 181u, 189u, 197u, |
@@ -11825,8 +11829,8 @@ |
103u, 104u, 111u, 112u, 119u, 120u, 127u, 128u, |
135u, 136u, 143u, 144u, 151u, 152u, 159u, 160u, |
167u, 168u, 175u, 176u, 183u, 184u, 191u, 192u, |
- 199u, 200u, 207u, 216u, 223u, 224u, 231u, 232u, |
- 239u, 240u, 247u, 248u, 255u, 4u, 5u, 12u, |
+ 199u, 200u, 207u, 208u, 215u, 216u, 223u, 224u, |
+ 231u, 240u, 247u, 248u, 255u, 4u, 5u, 12u, |
13u, 20u, 21u, 28u, 29u, 36u, 37u, 44u, |
45u, 52u, 53u, 60u, 61u, 68u, 76u, 84u, |
92u, 100u, 108u, 116u, 124u, 132u, 140u, 148u, |
@@ -15085,7 +15089,7 @@ |
80u, 87u, 88u, 95u, 96u, 103u, 104u, 111u, |
112u, 119u, 120u, 127u, 128u, 135u, 136u, 143u, |
144u, 151u, 152u, 159u, 160u, 167u, 168u, 175u, |
- 176u, 183u, 184u, 191u, 200u, 207u, 208u, 215u, |
+ 176u, 183u, 184u, 191u, 192u, 199u, 208u, 215u, |
216u, 223u, 224u, 231u, 232u, 239u, 240u, 247u, |
248u, 255u, 4u, 5u, 20u, 21u, 28u, 29u, |
36u, 37u, 44u, 45u, 52u, 53u, 60u, 61u, |
@@ -18449,8 +18453,8 @@ |
4676, 4678, 4680, 4682, 4627, 4630, 4633, 4636, |
4639, 4642, 4645, 4648, 4651, 4653, 4655, 4657, |
4659, 4661, 4663, 4665, 4667, 4669, 4671, 4673, |
- 4675, 4677, 4679, 4681, 4683, 4684, 4685, 4686, |
- 4687, 4688, 4690, 4689, 4692, 4692, 4692, 4692, |
+ 4675, 4677, 4679, 4681, 4683, 4684, 4685, 4687, |
+ 4688, 4689, 4690, 4686, 4692, 4692, 4692, 4692, |
4692, 4692, 4692, 4692, 4692, 4692, 4692, 4692, |
4692, 4692, 4692, 4692, 4692, 4692, 4692, 4692, |
4692, 4692, 4692, 4692, 4692, 4692, 4692, 4692, |
@@ -18462,8 +18466,8 @@ |
4749, 4751, 4753, 4755, 4700, 4703, 4706, 4709, |
4712, 4715, 4718, 4721, 4724, 4726, 4728, 4730, |
4732, 4734, 4736, 4738, 4740, 4742, 4744, 4746, |
- 4748, 4750, 4752, 4754, 4756, 4757, 4758, 4759, |
- 4760, 4761, 4762, 4763, 4765, 4766, 4765, 4766, |
+ 4748, 4750, 4752, 4754, 4756, 4757, 4759, 4760, |
+ 4761, 4762, 4763, 4758, 4765, 4766, 4765, 4766, |
4765, 4766, 4765, 4766, 4765, 4766, 4765, 4766, |
4765, 4766, 4765, 4766, 4768, 4768, 4768, 4768, |
4768, 4768, 4768, 4768, 4770, 4770, 4770, 4770, |
@@ -18659,16 +18663,16 @@ |
5281, 5283, 5285, 5287, 5232, 5235, 5238, 5241, |
5244, 5247, 5250, 5253, 5256, 5258, 5260, 5262, |
5264, 5266, 5268, 5270, 5272, 5274, 5276, 5278, |
- 5280, 5282, 5284, 5286, 5288, 5289, 5290, 5292, |
- 5293, 5294, 5295, 5291, 5297, 5298, 5300, 5301, |
+ 5280, 5282, 5284, 5286, 5288, 5289, 5290, 5291, |
+ 5293, 5294, 5295, 5292, 5297, 5298, 5300, 5301, |
5303, 5304, 5306, 5307, 5309, 5310, 5312, 5313, |
5315, 5316, 5318, 5319, 5321, 5323, 5325, 5327, |
5329, 5331, 5333, 5335, 5337, 5339, 5341, 5343, |
5345, 5347, 5349, 5351, 5296, 5299, 5302, 5305, |
5308, 5311, 5314, 5317, 5320, 5322, 5324, 5326, |
5328, 5330, 5332, 5334, 5336, 5338, 5340, 5342, |
- 5344, 5346, 5348, 5350, 5352, 5354, 5355, 5356, |
- 5357, 5358, 5359, 5353, 5361, 5361, 5361, 5361, |
+ 5344, 5346, 5348, 5350, 5352, 5353, 5354, 5355, |
+ 5356, 5357, 5359, 5358, 5361, 5361, 5361, 5361, |
5361, 5361, 5361, 5361, 5361, 5361, 5361, 5361, |
5361, 5361, 5361, 5361, 5361, 5361, 5361, 5361, |
5361, 5361, 5361, 5361, 5361, 5361, 5361, 5361, |
@@ -18680,8 +18684,8 @@ |
5418, 5420, 5422, 5424, 5369, 5372, 5375, 5378, |
5381, 5384, 5387, 5390, 5393, 5395, 5397, 5399, |
5401, 5403, 5405, 5407, 5409, 5411, 5413, 5415, |
- 5417, 5419, 5421, 5423, 5425, 5426, 5428, 5429, |
- 5430, 5431, 5432, 5427, 5434, 5435, 5434, 5435, |
+ 5417, 5419, 5421, 5423, 5425, 5426, 5427, 5428, |
+ 5429, 5431, 5432, 5430, 5434, 5435, 5434, 5435, |
5434, 5435, 5434, 5435, 5434, 5435, 5434, 5435, |
5434, 5435, 5434, 5435, 5437, 5437, 5437, 5437, |
5437, 5437, 5437, 5437, 5439, 5439, 5439, 5439, |
@@ -21773,8 +21777,8 @@ |
12025, 12027, 12029, 12031, 11976, 11979, 11982, 11985, |
11988, 11991, 11994, 11997, 12000, 12002, 12004, 12006, |
12008, 12010, 12012, 12014, 12016, 12018, 12020, 12022, |
- 12024, 12026, 12028, 12030, 12033, 12034, 12035, 12036, |
- 12037, 12038, 12039, 12032, 12041, 12042, 12044, 12045, |
+ 12024, 12026, 12028, 12030, 12032, 12034, 12035, 12036, |
+ 12037, 12038, 12039, 12033, 12041, 12042, 12044, 12045, |
12047, 12048, 12050, 12051, 12053, 12054, 12056, 12057, |
12059, 12060, 12062, 12064, 12066, 12068, 12070, 12072, |
12074, 12076, 12078, 12080, 12082, 12084, 12086, 12088, |
@@ -25865,11 +25869,19 @@ |
memset(&instruction, 0, sizeof instruction); |
+ /* |
+ * The "write init" statement causes Ragel to emit initialization code. |
+ * This should be executed once before the ragel machine is started. |
+ */ |
{ |
( current_state) = x86_32_decoder_start; |
} |
+ /* |
+ * The "write exec" statement causes Ragel to emit the ragel machine's |
+ * execution code. |
+ */ |
{ |
int _klen; |
@@ -26047,14 +26059,14 @@ |
break; |
case 22: |
{ |
- SET_DISP_TYPE(DISP8); |
- SET_DISP_PTR(current_position); |
+ SET_DISPLACEMENT_FORMAT(DISP8); |
+ SET_DISPLACEMENT_POINTER(current_position); |
} |
break; |
case 23: |
{ |
- SET_DISP_TYPE(DISP32); |
- SET_DISP_PTR(current_position - 3); |
+ SET_DISPLACEMENT_FORMAT(DISP32); |
+ SET_DISPLACEMENT_POINTER(current_position - 3); |
} |
break; |
case 24: |
@@ -26062,7 +26074,7 @@ |
break; |
case 25: |
{ |
- SET_DISP_TYPE(DISPNONE); |
+ SET_DISPLACEMENT_FORMAT(DISPNONE); |
SET_MODRM_BASE(RMFromModRM(*current_position)); |
SET_MODRM_INDEX(NO_REG); |
SET_MODRM_SCALE(0); |
@@ -26085,7 +26097,7 @@ |
break; |
case 28: |
{ |
- SET_DISP_TYPE(DISPNONE); |
+ SET_DISPLACEMENT_FORMAT(DISPNONE); |
SET_MODRM_BASE(NO_REG); |
SET_MODRM_INDEX(index_registers[IndexFromSIB(*current_position)]); |
SET_MODRM_SCALE(ScaleFromSIB(*current_position)); |
@@ -26093,7 +26105,7 @@ |
break; |
case 29: |
{ |
- SET_DISP_TYPE(DISPNONE); |
+ SET_DISPLACEMENT_FORMAT(DISPNONE); |
SET_MODRM_BASE(BaseFromSIB(*current_position)); |
SET_MODRM_INDEX(index_registers[IndexFromSIB(*current_position)]); |
SET_MODRM_SCALE(ScaleFromSIB(*current_position)); |
@@ -26418,32 +26430,32 @@ |
break; |
case 117: |
{ |
- SET_IMM_TYPE(IMM2); |
- SET_IMM_PTR(current_position); |
+ SET_IMMEDIATE_FORMAT(IMM2); |
+ SET_IMMEDIATE_POINTER(current_position); |
} |
break; |
case 118: |
{ |
- SET_IMM_TYPE(IMM8); |
- SET_IMM_PTR(current_position); |
+ SET_IMMEDIATE_FORMAT(IMM8); |
+ SET_IMMEDIATE_POINTER(current_position); |
} |
break; |
case 119: |
{ |
- SET_IMM2_TYPE(IMM8); |
- SET_IMM2_PTR(current_position); |
+ SET_SECOND_IMMEDIATE_FORMAT(IMM8); |
+ SET_SECOND_IMMEDIATE_POINTER(current_position); |
} |
break; |
case 120: |
{ |
- SET_IMM_TYPE(IMM16); |
- SET_IMM_PTR(current_position - 1); |
+ SET_IMMEDIATE_FORMAT(IMM16); |
+ SET_IMMEDIATE_POINTER(current_position - 1); |
} |
break; |
case 121: |
{ |
- SET_IMM_TYPE(IMM32); |
- SET_IMM_PTR(current_position - 3); |
+ SET_IMMEDIATE_FORMAT(IMM32); |
+ SET_IMMEDIATE_POINTER(current_position - 3); |
} |
break; |
case 122: |
@@ -26451,8 +26463,8 @@ |
SET_MODRM_BASE(REG_RIP); |
SET_MODRM_INDEX(NO_REG); |
SET_MODRM_SCALE(0); |
- SET_DISP_TYPE(DISP8); |
- SET_DISP_PTR(current_position); |
+ SET_DISPLACEMENT_FORMAT(DISP8); |
+ SET_DISPLACEMENT_POINTER(current_position); |
} |
break; |
case 123: |
@@ -26460,8 +26472,8 @@ |
SET_MODRM_BASE(REG_RIP); |
SET_MODRM_INDEX(NO_REG); |
SET_MODRM_SCALE(0); |
- SET_DISP_TYPE(DISP16); |
- SET_DISP_PTR(current_position - 1); |
+ SET_DISPLACEMENT_FORMAT(DISP16); |
+ SET_DISPLACEMENT_POINTER(current_position - 1); |
} |
break; |
case 124: |
@@ -26469,8 +26481,8 @@ |
SET_MODRM_BASE(REG_RIP); |
SET_MODRM_INDEX(NO_REG); |
SET_MODRM_SCALE(0); |
- SET_DISP_TYPE(DISP32); |
- SET_DISP_PTR(current_position - 3); |
+ SET_DISPLACEMENT_FORMAT(DISP32); |
+ SET_DISPLACEMENT_POINTER(current_position - 3); |
} |
break; |
case 125: |
@@ -30162,9 +30174,9 @@ |
process_instruction(instruction_begin, current_position + 1, &instruction, |
userdata); |
instruction_begin = current_position + 1; |
- SET_DISP_TYPE(DISPNONE); |
- SET_IMM_TYPE(IMMNONE); |
- SET_IMM2_TYPE(IMMNONE); |
+ SET_DISPLACEMENT_FORMAT(DISPNONE); |
+ SET_IMMEDIATE_FORMAT(IMMNONE); |
+ SET_SECOND_IMMEDIATE_FORMAT(IMMNONE); |
SET_DATA16_PREFIX(FALSE); |
SET_LOCK_PREFIX(FALSE); |
SET_REPNZ_PREFIX(FALSE); |