diff options
Diffstat (limited to '')
-rw-r--r-- | src/lj_target_x86.h | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/lj_target_x86.h b/src/lj_target_x86.h index 289f83e1..e29f4748 100644 --- a/src/lj_target_x86.h +++ b/src/lj_target_x86.h | |||
@@ -189,6 +189,11 @@ typedef struct { | |||
189 | #define XO_f20f(o) ((uint32_t)(0x0ff2fc + (0x##o<<24))) | 189 | #define XO_f20f(o) ((uint32_t)(0x0ff2fc + (0x##o<<24))) |
190 | #define XO_f30f(o) ((uint32_t)(0x0ff3fc + (0x##o<<24))) | 190 | #define XO_f30f(o) ((uint32_t)(0x0ff3fc + (0x##o<<24))) |
191 | 191 | ||
192 | #define XV_660f38(o) ((uint32_t)(0x79e2c4 + (0x##o<<24))) | ||
193 | #define XV_f20f38(o) ((uint32_t)(0x7be2c4 + (0x##o<<24))) | ||
194 | #define XV_f20f3a(o) ((uint32_t)(0x7be3c4 + (0x##o<<24))) | ||
195 | #define XV_f30f38(o) ((uint32_t)(0x7ae2c4 + (0x##o<<24))) | ||
196 | |||
192 | /* This list of x86 opcodes is not intended to be complete. Opcodes are only | 197 | /* This list of x86 opcodes is not intended to be complete. Opcodes are only |
193 | ** included when needed. Take a look at DynASM or jit.dis_x86 to see the | 198 | ** included when needed. Take a look at DynASM or jit.dis_x86 to see the |
194 | ** whole mess. | 199 | ** whole mess. |
@@ -231,6 +236,12 @@ typedef enum { | |||
231 | XI_FSCALE = 0xfdd9, | 236 | XI_FSCALE = 0xfdd9, |
232 | XI_FYL2X = 0xf1d9, | 237 | XI_FYL2X = 0xf1d9, |
233 | 238 | ||
239 | /* VEX-encoded instructions. XV_* prefix. */ | ||
240 | XV_RORX = XV_f20f3a(f0), | ||
241 | XV_SARX = XV_f30f38(f7), | ||
242 | XV_SHLX = XV_660f38(f7), | ||
243 | XV_SHRX = XV_f20f38(f7), | ||
244 | |||
234 | /* Variable-length opcodes. XO_* prefix. */ | 245 | /* Variable-length opcodes. XO_* prefix. */ |
235 | XO_MOV = XO_(8b), | 246 | XO_MOV = XO_(8b), |
236 | XO_MOVto = XO_(89), | 247 | XO_MOVto = XO_(89), |