diff options
Diffstat (limited to 'src/lj_target_x86.h')
-rw-r--r-- | src/lj_target_x86.h | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/lj_target_x86.h b/src/lj_target_x86.h index 94ab3c32..37c68f4b 100644 --- a/src/lj_target_x86.h +++ b/src/lj_target_x86.h | |||
@@ -193,6 +193,7 @@ typedef enum { | |||
193 | XI_FLD1 = 0xe8d9, | 193 | XI_FLD1 = 0xe8d9, |
194 | XI_FLDLG2 = 0xecd9, | 194 | XI_FLDLG2 = 0xecd9, |
195 | XI_FLDLN2 = 0xedd9, | 195 | XI_FLDLN2 = 0xedd9, |
196 | XI_FDUP = 0xc0d9, /* Really fld st0. */ | ||
196 | XI_FPOP = 0xd8dd, /* Really fstp st0. */ | 197 | XI_FPOP = 0xd8dd, /* Really fstp st0. */ |
197 | XI_FPOP1 = 0xd9dd, /* Really fstp st1. */ | 198 | XI_FPOP1 = 0xd9dd, /* Really fstp st1. */ |
198 | XI_FRNDINT = 0xfcd9, | 199 | XI_FRNDINT = 0xfcd9, |
@@ -263,10 +264,17 @@ typedef enum { | |||
263 | XO_MOVD = XO_660f(6e), | 264 | XO_MOVD = XO_660f(6e), |
264 | XO_MOVDto = XO_660f(7e), | 265 | XO_MOVDto = XO_660f(7e), |
265 | 266 | ||
267 | XO_FLDd = XO_(d9), XOg_FLDd = 0, | ||
266 | XO_FLDq = XO_(dd), XOg_FLDq = 0, | 268 | XO_FLDq = XO_(dd), XOg_FLDq = 0, |
267 | XO_FILDd = XO_(db), XOg_FILDd = 0, | 269 | XO_FILDd = XO_(db), XOg_FILDd = 0, |
270 | XO_FILDq = XO_(df), XOg_FILDq = 5, | ||
271 | XO_FSTPd = XO_(d9), XOg_FSTPd = 3, | ||
268 | XO_FSTPq = XO_(dd), XOg_FSTPq = 3, | 272 | XO_FSTPq = XO_(dd), XOg_FSTPq = 3, |
269 | XO_FISTPq = XO_(df), XOg_FISTPq = 7, | 273 | XO_FISTPq = XO_(df), XOg_FISTPq = 7, |
274 | XO_FISTTPq = XO_(dd), XOg_FISTTPq = 1, | ||
275 | XO_FADDq = XO_(dc), XOg_FADDq = 0, | ||
276 | XO_FLDCW = XO_(d9), XOg_FLDCW = 5, | ||
277 | XO_FNSTCW = XO_(d9), XOg_FNSTCW = 7 | ||
270 | } x86Op; | 278 | } x86Op; |
271 | 279 | ||
272 | /* x86 opcode groups. */ | 280 | /* x86 opcode groups. */ |
@@ -278,6 +286,7 @@ typedef uint32_t x86Group; | |||
278 | #define XG_TOXOi8(xg) ((x86Op)(0x000000fe + (((xg)<<8) & 0xff000000))) | 286 | #define XG_TOXOi8(xg) ((x86Op)(0x000000fe + (((xg)<<8) & 0xff000000))) |
279 | 287 | ||
280 | #define XO_ARITH(a) ((x86Op)(0x030000fe + ((a)<<27))) | 288 | #define XO_ARITH(a) ((x86Op)(0x030000fe + ((a)<<27))) |
289 | #define XO_ARITHw(a) ((x86Op)(0x036600fd + ((a)<<27))) | ||
281 | 290 | ||
282 | typedef enum { | 291 | typedef enum { |
283 | XOg_ADD, XOg_OR, XOg_ADC, XOg_SBB, XOg_AND, XOg_SUB, XOg_XOR, XOg_CMP, | 292 | XOg_ADD, XOg_OR, XOg_ADC, XOg_SBB, XOg_AND, XOg_SUB, XOg_XOR, XOg_CMP, |