Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 /* | 1 /* |
| 2 * Copyright (c) 2012 The Native Client Authors. All rights reserved. | 2 * Copyright (c) 2012 The Native Client Authors. All rights reserved. |
| 3 * Use of this source code is governed by a BSD-style license that can be | 3 * Use of this source code is governed by a BSD-style license that can be |
| 4 * found in the LICENSE file. | 4 * found in the LICENSE file. |
| 5 */ | 5 */ |
|
Brad Chen
2012/10/05 16:47:21
What is this file for? It's particularly important
khim
2012/10/15 16:38:57
Done.
| |
| 6 | 6 |
| 7 %%{ | 7 %%{ |
| 8 machine prefix_actions; | 8 machine prefix_actions; |
| 9 | 9 |
| 10 action branch_not_taken { | 10 action branch_not_taken { |
| 11 SET_BRANCH_NOT_TAKEN(TRUE); | 11 SET_BRANCH_NOT_TAKEN(TRUE); |
| 12 } | 12 } |
| 13 action branch_taken { | 13 action branch_taken { |
| 14 SET_BRANCH_TAKEN(TRUE); | 14 SET_BRANCH_TAKEN(TRUE); |
| 15 } | 15 } |
| (...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 167 %%{ | 167 %%{ |
| 168 machine operand_actions_common; | 168 machine operand_actions_common; |
| 169 | 169 |
| 170 action operands_count_is_0 { SET_OPERANDS_COUNT(0); } | 170 action operands_count_is_0 { SET_OPERANDS_COUNT(0); } |
| 171 action operands_count_is_1 { SET_OPERANDS_COUNT(1); } | 171 action operands_count_is_1 { SET_OPERANDS_COUNT(1); } |
| 172 action operands_count_is_2 { SET_OPERANDS_COUNT(2); } | 172 action operands_count_is_2 { SET_OPERANDS_COUNT(2); } |
| 173 action operands_count_is_3 { SET_OPERANDS_COUNT(3); } | 173 action operands_count_is_3 { SET_OPERANDS_COUNT(3); } |
| 174 action operands_count_is_4 { SET_OPERANDS_COUNT(4); } | 174 action operands_count_is_4 { SET_OPERANDS_COUNT(4); } |
| 175 action operands_count_is_5 { SET_OPERANDS_COUNT(5); } | 175 action operands_count_is_5 { SET_OPERANDS_COUNT(5); } |
| 176 | 176 |
| 177 action operand0_16bit { SET_OPERAND_TYPE(0, OPERAND_SIZE_16_BIT); } | 177 action operand0_16bit { SET_OPERAND_TYPE(0, OPERAND_TYPE_16_BIT); } |
| 178 action operand0_8bit { SET_OPERAND_TYPE(0, OPERAND_SIZE_8_BIT); } | 178 action operand0_8bit { SET_OPERAND_TYPE(0, OPERAND_TYPE_8_BIT); } |
| 179 action operand0_32bit { SET_OPERAND_TYPE(0, OPERAND_SIZE_32_BIT); } | 179 action operand0_32bit { SET_OPERAND_TYPE(0, OPERAND_TYPE_32_BIT); } |
| 180 action operand0_64bit { SET_OPERAND_TYPE(0, OPERAND_SIZE_64_BIT); } | 180 action operand0_64bit { SET_OPERAND_TYPE(0, OPERAND_TYPE_64_BIT); } |
| 181 action operand0_128bit { SET_OPERAND_TYPE(0, OPERAND_SIZE_128_BIT); } | 181 action operand0_128bit { SET_OPERAND_TYPE(0, OPERAND_TYPE_128_BIT); } |
| 182 action operand0_256bit { SET_OPERAND_TYPE(0, OPERAND_SIZE_256_BIT); } | 182 action operand0_256bit { SET_OPERAND_TYPE(0, OPERAND_TYPE_256_BIT); } |
| 183 action operand0_creg { SET_OPERAND_TYPE(0, OPERAND_CONTROL_REGISTER); } | 183 action operand0_creg { SET_OPERAND_TYPE(0, OPERAND_TYPE_CONTROL_REGISTER); } |
| 184 action operand0_dreg { SET_OPERAND_TYPE(0, OPERAND_DEBUG_REGISTER); } | 184 action operand0_dreg { SET_OPERAND_TYPE(0, OPERAND_TYPE_DEBUG_REGISTER); } |
| 185 action operand0_farptr { SET_OPERAND_TYPE(0, OPERAND_FAR_PTR); } | 185 action operand0_farptr { SET_OPERAND_TYPE(0, OPERAND_TYPE_FAR_PTR); } |
| 186 action operand0_float32bit { SET_OPERAND_TYPE(0, OPERAND_FLOAT_SIZE_32_BIT); } | 186 action operand0_float32bit { SET_OPERAND_TYPE(0, OPERAND_TYPE_FLOAT_32_BIT); } |
| 187 action operand0_float64bit { SET_OPERAND_TYPE(0, OPERAND_FLOAT_SIZE_64_BIT); } | 187 action operand0_float64bit { SET_OPERAND_TYPE(0, OPERAND_TYPE_FLOAT_64_BIT); } |
| 188 action operand0_float80bit { SET_OPERAND_TYPE(0, OPERAND_FLOAT_SIZE_80_BIT); } | 188 action operand0_float80bit { SET_OPERAND_TYPE(0, OPERAND_TYPE_FLOAT_80_BIT); } |
| 189 action operand0_mmx { SET_OPERAND_TYPE(0, OPERAND_MMX); } | 189 action operand0_mmx { SET_OPERAND_TYPE(0, OPERAND_TYPE_MMX); } |
| 190 action operand0_segreg { SET_OPERAND_TYPE(0, OPERAND_SEGMENT_REGISTER); } | 190 action operand0_segreg { SET_OPERAND_TYPE(0, OPERAND_TYPE_SEGMENT_REGISTER); } |
| 191 action operand0_selector { SET_OPERAND_TYPE(0, OPERAND_SELECTOR); } | 191 action operand0_selector { SET_OPERAND_TYPE(0, OPERAND_TYPE_SELECTOR); } |
| 192 action operand0_x87 { SET_OPERAND_TYPE(0, OPERAND_ST); } | 192 action operand0_x87 { SET_OPERAND_TYPE(0, OPERAND_TYPE_ST); } |
| 193 action operand0_x87_16bit { SET_OPERAND_TYPE(0, OPERAND_X87_SIZE_16_BIT); } | 193 action operand0_x87_16bit { SET_OPERAND_TYPE(0, OPERAND_TYPE_X87_16_BIT); } |
| 194 action operand0_x87_32bit { SET_OPERAND_TYPE(0, OPERAND_X87_SIZE_32_BIT); } | 194 action operand0_x87_32bit { SET_OPERAND_TYPE(0, OPERAND_TYPE_X87_32_BIT); } |
| 195 action operand0_x87_64bit { SET_OPERAND_TYPE(0, OPERAND_X87_SIZE_64_BIT); } | 195 action operand0_x87_64bit { SET_OPERAND_TYPE(0, OPERAND_TYPE_X87_64_BIT); } |
| 196 action operand0_x87_bcd { SET_OPERAND_TYPE(0, OPERAND_X87_BCD); } | 196 action operand0_x87_bcd { SET_OPERAND_TYPE(0, OPERAND_TYPE_X87_BCD); } |
| 197 action operand0_x87_env { SET_OPERAND_TYPE(0, OPERAND_X87_ENV); } | 197 action operand0_x87_env { SET_OPERAND_TYPE(0, OPERAND_TYPE_X87_ENV); } |
| 198 action operand0_x87_mmx_xmm_state { | 198 action operand0_x87_mmx_xmm_state { |
| 199 SET_OPERAND_TYPE(0, OPERAND_X87_MMX_MM_STATE); | 199 SET_OPERAND_TYPE(0, OPERAND_TYPE_X87_MMX_XMM_STATE); |
| 200 } | 200 } |
| 201 action operand0_x87_state { SET_OPERAND_TYPE(0, OPERAND_X87_STATE); } | 201 action operand0_x87_state { SET_OPERAND_TYPE(0, OPERAND_TYPE_X87_STATE); } |
| 202 action operand0_xmm { SET_OPERAND_TYPE(0, OPERAND_XMM); } | 202 action operand0_xmm { SET_OPERAND_TYPE(0, OPERAND_TYPE_XMM); } |
| 203 action operand0_ymm { SET_OPERAND_TYPE(0, OPERAND_YMM); } | 203 action operand0_ymm { SET_OPERAND_TYPE(0, OPERAND_TYPE_YMM); } |
| 204 | 204 |
| 205 action operand1_8bit { SET_OPERAND_TYPE(1, OPERAND_SIZE_8_BIT); } | 205 action operand1_8bit { SET_OPERAND_TYPE(1, OPERAND_TYPE_8_BIT); } |
| 206 action operand1_16bit { SET_OPERAND_TYPE(1, OPERAND_SIZE_16_BIT); } | 206 action operand1_16bit { SET_OPERAND_TYPE(1, OPERAND_TYPE_16_BIT); } |
| 207 action operand1_32bit { SET_OPERAND_TYPE(1, OPERAND_SIZE_32_BIT); } | 207 action operand1_32bit { SET_OPERAND_TYPE(1, OPERAND_TYPE_32_BIT); } |
| 208 action operand1_64bit { SET_OPERAND_TYPE(1, OPERAND_SIZE_64_BIT); } | 208 action operand1_64bit { SET_OPERAND_TYPE(1, OPERAND_TYPE_64_BIT); } |
| 209 action operand1_128bit { SET_OPERAND_TYPE(1, OPERAND_SIZE_128_BIT); } | 209 action operand1_128bit { SET_OPERAND_TYPE(1, OPERAND_TYPE_128_BIT); } |
| 210 action operand1_256bit { SET_OPERAND_TYPE(1, OPERAND_SIZE_256_BIT); } | 210 action operand1_256bit { SET_OPERAND_TYPE(1, OPERAND_TYPE_256_BIT); } |
| 211 action operand1_creg { SET_OPERAND_TYPE(1, OPERAND_CONTROL_REGISTER); } | 211 action operand1_creg { SET_OPERAND_TYPE(1, OPERAND_TYPE_CONTROL_REGISTER); } |
| 212 action operand1_dreg { SET_OPERAND_TYPE(1, OPERAND_DEBUG_REGISTER); } | 212 action operand1_dreg { SET_OPERAND_TYPE(1, OPERAND_TYPE_DEBUG_REGISTER); } |
| 213 action operand1_farptr { SET_OPERAND_TYPE(1, OPERAND_FAR_PTR); } | 213 action operand1_farptr { SET_OPERAND_TYPE(1, OPERAND_TYPE_FAR_PTR); } |
| 214 action operand1_float32bit { SET_OPERAND_TYPE(1, OPERAND_FLOAT_SIZE_32_BIT); } | 214 action operand1_float32bit { SET_OPERAND_TYPE(1, OPERAND_TYPE_FLOAT_32_BIT); } |
| 215 action operand1_float64bit { SET_OPERAND_TYPE(1, OPERAND_FLOAT_SIZE_64_BIT); } | 215 action operand1_float64bit { SET_OPERAND_TYPE(1, OPERAND_TYPE_FLOAT_64_BIT); } |
| 216 action operand1_mmx { SET_OPERAND_TYPE(1, OPERAND_MMX); } | 216 action operand1_mmx { SET_OPERAND_TYPE(1, OPERAND_TYPE_MMX); } |
| 217 action operand1_segreg { SET_OPERAND_TYPE(1, OPERAND_SEGMENT_REGISTER); } | 217 action operand1_segreg { SET_OPERAND_TYPE(1, OPERAND_TYPE_SEGMENT_REGISTER); } |
| 218 action operand1_x87 { SET_OPERAND_TYPE(1, OPERAND_ST); } | 218 action operand1_x87 { SET_OPERAND_TYPE(1, OPERAND_TYPE_ST); } |
| 219 action operand1_xmm { SET_OPERAND_TYPE(1, OPERAND_XMM); } | 219 action operand1_xmm { SET_OPERAND_TYPE(1, OPERAND_TYPE_XMM); } |
| 220 action operand1_ymm { SET_OPERAND_TYPE(1, OPERAND_YMM); } | 220 action operand1_ymm { SET_OPERAND_TYPE(1, OPERAND_TYPE_YMM); } |
| 221 | 221 |
| 222 action operand2_8bit { SET_OPERAND_TYPE(2, OPERAND_SIZE_8_BIT); } | 222 action operand2_8bit { SET_OPERAND_TYPE(2, OPERAND_TYPE_8_BIT); } |
| 223 action operand2_16bit { SET_OPERAND_TYPE(2, OPERAND_SIZE_16_BIT); } | 223 action operand2_16bit { SET_OPERAND_TYPE(2, OPERAND_TYPE_16_BIT); } |
| 224 action operand2_32bit { SET_OPERAND_TYPE(2, OPERAND_SIZE_32_BIT); } | 224 action operand2_32bit { SET_OPERAND_TYPE(2, OPERAND_TYPE_32_BIT); } |
| 225 action operand2_64bit { SET_OPERAND_TYPE(2, OPERAND_SIZE_64_BIT); } | 225 action operand2_64bit { SET_OPERAND_TYPE(2, OPERAND_TYPE_64_BIT); } |
| 226 action operand2_128bit { SET_OPERAND_TYPE(2, OPERAND_SIZE_128_BIT); } | 226 action operand2_128bit { SET_OPERAND_TYPE(2, OPERAND_TYPE_128_BIT); } |
| 227 action operand2_256bit { SET_OPERAND_TYPE(2, OPERAND_SIZE_256_BIT); } | 227 action operand2_256bit { SET_OPERAND_TYPE(2, OPERAND_TYPE_256_BIT); } |
| 228 action operand2_float32bit { SET_OPERAND_TYPE(2, OPERAND_FLOAT_SIZE_32_BIT); } | 228 action operand2_float32bit { SET_OPERAND_TYPE(2, OPERAND_TYPE_FLOAT_32_BIT); } |
| 229 action operand2_float64bit { SET_OPERAND_TYPE(2, OPERAND_FLOAT_SIZE_64_BIT); } | 229 action operand2_float64bit { SET_OPERAND_TYPE(2, OPERAND_TYPE_FLOAT_64_BIT); } |
| 230 action operand2_xmm { SET_OPERAND_TYPE(2, OPERAND_XMM); } | 230 action operand2_xmm { SET_OPERAND_TYPE(2, OPERAND_TYPE_XMM); } |
| 231 action operand2_ymm { SET_OPERAND_TYPE(2, OPERAND_YMM); } | 231 action operand2_ymm { SET_OPERAND_TYPE(2, OPERAND_TYPE_YMM); } |
| 232 | 232 |
| 233 action operand3_8bit { SET_OPERAND_TYPE(3, OPERAND_SIZE_8_BIT); } | 233 action operand3_8bit { SET_OPERAND_TYPE(3, OPERAND_TYPE_8_BIT); } |
| 234 action operand3_128bit { SET_OPERAND_TYPE(3, OPERAND_SIZE_128_BIT); } | 234 action operand3_128bit { SET_OPERAND_TYPE(3, OPERAND_TYPE_128_BIT); } |
| 235 action operand3_256bit { SET_OPERAND_TYPE(3, OPERAND_SIZE_256_BIT); } | 235 action operand3_256bit { SET_OPERAND_TYPE(3, OPERAND_TYPE_256_BIT); } |
| 236 action operand3_float32bit { SET_OPERAND_TYPE(3, OPERAND_FLOAT_SIZE_32_BIT); } | 236 action operand3_float32bit { SET_OPERAND_TYPE(3, OPERAND_TYPE_FLOAT_32_BIT); } |
| 237 action operand3_float64bit { SET_OPERAND_TYPE(3, OPERAND_FLOAT_SIZE_64_BIT); } | 237 action operand3_float64bit { SET_OPERAND_TYPE(3, OPERAND_TYPE_FLOAT_64_BIT); } |
| 238 action operand3_xmm { SET_OPERAND_TYPE(3, OPERAND_XMM); } | 238 action operand3_xmm { SET_OPERAND_TYPE(3, OPERAND_TYPE_XMM); } |
| 239 action operand3_ymm { SET_OPERAND_TYPE(3, OPERAND_YMM); } | 239 action operand3_ymm { SET_OPERAND_TYPE(3, OPERAND_TYPE_YMM); } |
| 240 | 240 |
| 241 action operand4_2bit { SET_OPERAND_TYPE(4, OPERAND_SIZE_2_BIT); } | 241 action operand4_2bit { SET_OPERAND_TYPE(4, OPERAND_TYPE_2_BIT); } |
| 242 | 242 |
| 243 action operand0_ds_rbx { SET_OPERAND_NAME(0, REG_DS_RBX); } | 243 action operand0_ds_rbx { SET_OPERAND_NAME(0, REG_DS_RBX); } |
| 244 action operand0_ds_rsi { SET_OPERAND_NAME(0, REG_DS_RSI); } | 244 action operand0_ds_rsi { SET_OPERAND_NAME(0, REG_DS_RSI); } |
| 245 action operand0_es_rdi { SET_OPERAND_NAME(0, REG_ES_RDI); } | 245 action operand0_es_rdi { SET_OPERAND_NAME(0, REG_ES_RDI); } |
| 246 action operand0_immediate { SET_OPERAND_NAME(0, REG_IMM); } | 246 action operand0_immediate { SET_OPERAND_NAME(0, REG_IMM); } |
| 247 action operand0_port_dx { SET_OPERAND_NAME(0, REG_PORT_DX); } | 247 action operand0_port_dx { SET_OPERAND_NAME(0, REG_PORT_DX); } |
| 248 action operand0_rax { SET_OPERAND_NAME(0, REG_RAX); } | 248 action operand0_rax { SET_OPERAND_NAME(0, REG_RAX); } |
| 249 action operand0_rcx { SET_OPERAND_NAME(0, REG_RCX); } | 249 action operand0_rcx { SET_OPERAND_NAME(0, REG_RCX); } |
| 250 action operand0_rdx { SET_OPERAND_NAME(0, REG_RDX); } | 250 action operand0_rdx { SET_OPERAND_NAME(0, REG_RDX); } |
| 251 action operand0_rm { SET_OPERAND_NAME(0, REG_RM); } | 251 action operand0_rm { SET_OPERAND_NAME(0, REG_RM); } |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 295 SET_OPERAND_NAME(3, RegisterFromIS4(*current_position)); | 295 SET_OPERAND_NAME(3, RegisterFromIS4(*current_position)); |
| 296 } | 296 } |
| 297 }%% | 297 }%% |
| 298 | 298 |
| 299 %%{ | 299 %%{ |
| 300 machine operand_actions_ia32; | 300 machine operand_actions_ia32; |
| 301 | 301 |
| 302 include operand_actions_common | 302 include operand_actions_common |
| 303 "native_client/src/trusted/validator_ragel/unreviewed/parse_instruction.rl"; | 303 "native_client/src/trusted/validator_ragel/unreviewed/parse_instruction.rl"; |
| 304 | 304 |
| 305 action operand0_regsize { SET_OPERAND_TYPE(0, OPERAND_SIZE_32_BIT); } | 305 action operand0_regsize { SET_OPERAND_TYPE(0, OPERAND_TYPE_32_BIT); } |
| 306 action operand1_regsize { SET_OPERAND_TYPE(1, OPERAND_SIZE_32_BIT); } | 306 action operand1_regsize { SET_OPERAND_TYPE(1, OPERAND_TYPE_32_BIT); } |
| 307 action operand2_regsize { SET_OPERAND_TYPE(2, OPERAND_SIZE_32_BIT); } | 307 action operand2_regsize { SET_OPERAND_TYPE(2, OPERAND_TYPE_32_BIT); } |
| 308 | 308 |
| 309 action operand0_absolute_disp { | 309 action operand0_absolute_disp { |
| 310 SET_OPERAND_NAME(0, REG_RM); | 310 SET_OPERAND_NAME(0, REG_RM); |
| 311 SET_MODRM_BASE(NO_REG); | 311 SET_MODRM_BASE(NO_REG); |
| 312 SET_MODRM_INDEX(NO_REG); | 312 SET_MODRM_INDEX(NO_REG); |
| 313 SET_MODRM_SCALE(0); | 313 SET_MODRM_SCALE(0); |
| 314 } | 314 } |
| 315 action operand0_from_modrm_reg { | 315 action operand0_from_modrm_reg { |
| 316 SET_OPERAND_NAME(0, RegFromModRM(*current_position)); | 316 SET_OPERAND_NAME(0, RegFromModRM(*current_position)); |
| 317 } | 317 } |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 355 SET_OPERAND_NAME(3, RMFromModRM(*current_position)); | 355 SET_OPERAND_NAME(3, RMFromModRM(*current_position)); |
| 356 } | 356 } |
| 357 }%% | 357 }%% |
| 358 | 358 |
| 359 %%{ | 359 %%{ |
| 360 machine operand_actions_amd64; | 360 machine operand_actions_amd64; |
| 361 | 361 |
| 362 include operand_actions_common | 362 include operand_actions_common |
| 363 "native_client/src/trusted/validator_ragel/unreviewed/parse_instruction.rl"; | 363 "native_client/src/trusted/validator_ragel/unreviewed/parse_instruction.rl"; |
| 364 | 364 |
| 365 action operand0_regsize { SET_OPERAND_TYPE(0, OPERAND_SIZE_64_BIT); } | 365 action operand0_regsize { SET_OPERAND_TYPE(0, OPERAND_TYPE_64_BIT); } |
| 366 action operand1_regsize { SET_OPERAND_TYPE(1, OPERAND_SIZE_64_BIT); } | 366 action operand1_regsize { SET_OPERAND_TYPE(1, OPERAND_TYPE_64_BIT); } |
| 367 action operand2_regsize { SET_OPERAND_TYPE(2, OPERAND_SIZE_64_BIT); } | 367 action operand2_regsize { SET_OPERAND_TYPE(2, OPERAND_TYPE_64_BIT); } |
| 368 | 368 |
| 369 action operand0_absolute_disp { | 369 action operand0_absolute_disp { |
| 370 SET_OPERAND_NAME(0, REG_RM); | 370 SET_OPERAND_NAME(0, REG_RM); |
| 371 SET_MODRM_BASE(NO_REG); | 371 SET_MODRM_BASE(NO_REG); |
| 372 SET_MODRM_INDEX(REG_RIZ); | 372 SET_MODRM_INDEX(REG_RIZ); |
| 373 SET_MODRM_SCALE(0); | 373 SET_MODRM_SCALE(0); |
| 374 } | 374 } |
| 375 action operand0_from_modrm_reg { | 375 action operand0_from_modrm_reg { |
| 376 SET_OPERAND_NAME(0, RegFromModRM(*current_position) | | 376 SET_OPERAND_NAME(0, RegFromModRM(*current_position) | |
| 377 RegisterExtentionFromREX(GET_REX_PREFIX()) | | 377 RegisterExtentionFromREX(GET_REX_PREFIX()) | |
| (...skipping 500 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 878 action rel8_operand_end { } | 878 action rel8_operand_end { } |
| 879 action rel16_operand_begin { } | 879 action rel16_operand_begin { } |
| 880 action rel16_operand_end { } | 880 action rel16_operand_end { } |
| 881 action rel32_operand_begin { } | 881 action rel32_operand_begin { } |
| 882 action rel32_operand_end { } | 882 action rel32_operand_end { } |
| 883 | 883 |
| 884 rel8 = any >rel8_operand_begin @rel8_operand_end; | 884 rel8 = any >rel8_operand_begin @rel8_operand_end; |
| 885 rel16 = any{2} @~rel16_operand_begin @rel16_operand_end; | 885 rel16 = any{2} @~rel16_operand_begin @rel16_operand_end; |
| 886 rel32 = any{4} @~rel32_operand_begin @rel32_operand_end; | 886 rel32 = any{4} @~rel32_operand_begin @rel32_operand_end; |
| 887 }%% | 887 }%% |
| 888 | |
| 889 %%{ | |
| 890 machine decoder; | |
| 891 | |
| 892 decoder = (one_instruction | |
| 893 @{ | |
| 894 process_instruction(instruction_start, current_position+1, &instruction, | |
| 895 userdata); | |
| 896 instruction_start = current_position + 1; | |
| 897 SET_DISP_TYPE(DISPNONE); | |
| 898 SET_IMM_TYPE(IMMNONE); | |
| 899 SET_IMM2_TYPE(IMMNONE); | |
| 900 SET_REX_PREFIX(FALSE); | |
| 901 SET_DATA16_PREFIX(FALSE); | |
| 902 SET_LOCK_PREFIX(FALSE); | |
| 903 SET_REPNZ_PREFIX(FALSE); | |
| 904 SET_REPZ_PREFIX(FALSE); | |
| 905 SET_BRANCH_NOT_TAKEN(FALSE); | |
| 906 SET_BRANCH_TAKEN(FALSE); | |
| 907 /* Top three bis of VEX2 are inverted: see AMD/Intel manual. */ | |
| 908 SET_VEX_PREFIX2(0xe0); | |
| 909 SET_VEX_PREFIX3(0x00); | |
| 910 })* | |
| 911 $!{ process_error(current_position, userdata); | |
| 912 result = FALSE; | |
| 913 goto error_detected; | |
| 914 }; | |
| 915 }%% | |
| OLD | NEW |