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 */ |
6 | 6 |
7 /* | 7 /* |
8 * This file contains common parts of x86-32 and x86-64 internals (inline | 8 * This file contains common parts of x86-32 and x86-64 internals (inline |
9 * functions and defines). | 9 * functions and defines). |
10 */ | 10 */ |
11 | 11 |
12 #ifndef NATIVE_CLIENT_SRC_TRUSTED_VALIDATOR_RAGEL_DECODER_INTERNAL_H_ | 12 #ifndef NATIVE_CLIENT_SRC_TRUSTED_VALIDATOR_RAGEL_DECODER_INTERNAL_H_ |
13 #define NATIVE_CLIENT_SRC_TRUSTED_VALIDATOR_RAGEL_DECODER_INTERNAL_H_ | 13 #define NATIVE_CLIENT_SRC_TRUSTED_VALIDATOR_RAGEL_DECODER_INTERNAL_H_ |
14 | 14 |
15 #include "native_client/src/trusted/validator_ragel/unreviewed/decoding.h" | 15 #include "native_client/src/trusted/validator_ragel/decoding.h" |
16 | 16 |
17 /* | 17 /* |
18 * Set of macroses used in actions defined in parse_instruction.rl to pull | 18 * Set of macroses used in actions defined in parse_instruction.rl to pull |
19 * parts of the instruction from a byte stream and store them for future use. | 19 * parts of the instruction from a byte stream and store them for future use. |
20 */ | 20 */ |
21 #define GET_REX_PREFIX() instruction.prefix.rex | 21 #define GET_REX_PREFIX() instruction.prefix.rex |
halyavin
2013/03/13 14:01:06
What is the difference between S, N, P and T?
khim
2013/03/19 14:54:46
Just a first name of the argument. Replaced with X
| |
22 #define GET_VEX_PREFIX2() vex_prefix2 | 22 #define GET_VEX_PREFIX2() vex_prefix2 |
23 #define GET_VEX_PREFIX3() vex_prefix3 | 23 #define GET_VEX_PREFIX3() vex_prefix3 |
24 #define SET_VEX_PREFIX3(P) vex_prefix3 = (P) | 24 #define SET_VEX_PREFIX3(P) vex_prefix3 = (P) |
25 #define SET_DATA16_PREFIX(S) instruction.prefix.data16 = (S) | 25 #define SET_DATA16_PREFIX(S) instruction.prefix.data16 = (S) |
26 #define SET_LOCK_PREFIX(S) instruction.prefix.lock = (S) | 26 #define SET_LOCK_PREFIX(S) instruction.prefix.lock = (S) |
27 #define SET_REPZ_PREFIX(S) instruction.prefix.repz = (S) | 27 #define SET_REPZ_PREFIX(S) instruction.prefix.repz = (S) |
28 #define SET_REPNZ_PREFIX(S) instruction.prefix.repnz = (S) | 28 #define SET_REPNZ_PREFIX(S) instruction.prefix.repnz = (S) |
29 #define SET_BRANCH_TAKEN(S) instruction.prefix.branch_taken = (S) | 29 #define SET_BRANCH_TAKEN(S) instruction.prefix.branch_taken = (S) |
30 #define SET_BRANCH_NOT_TAKEN(S) instruction.prefix.branch_not_taken = (S) | 30 #define SET_BRANCH_NOT_TAKEN(S) instruction.prefix.branch_not_taken = (S) |
31 #define SET_INSTRUCTION_NAME(N) instruction.name = (N) | 31 #define SET_INSTRUCTION_NAME(N) instruction.name = (N) |
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
84 case IMM8: return AnyFieldValue8bit(imm_ptr); | 84 case IMM8: return AnyFieldValue8bit(imm_ptr); |
85 case IMM16: return AnyFieldValue16bit(imm_ptr); | 85 case IMM16: return AnyFieldValue16bit(imm_ptr); |
86 case IMM32: return AnyFieldValue32bit(imm_ptr); | 86 case IMM32: return AnyFieldValue32bit(imm_ptr); |
87 case IMM64: return AnyFieldValue64bit(imm_ptr); | 87 case IMM64: return AnyFieldValue64bit(imm_ptr); |
88 } | 88 } |
89 assert(FALSE); | 89 assert(FALSE); |
90 return 0; | 90 return 0; |
91 } | 91 } |
92 | 92 |
93 #endif /* NATIVE_CLIENT_SRC_TRUSTED_VALIDATOR_RAGEL_DECODER_INTERNAL_H_ */ | 93 #endif /* NATIVE_CLIENT_SRC_TRUSTED_VALIDATOR_RAGEL_DECODER_INTERNAL_H_ */ |
OLD | NEW |