aboutsummaryrefslogtreecommitdiff
path: root/src/lj_target_x86.h
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/lj_target_x86.h11
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),