summaryrefslogtreecommitdiff
path: root/src/lj_target_x86.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/lj_target_x86.h')
-rw-r--r--src/lj_target_x86.h11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/lj_target_x86.h b/src/lj_target_x86.h
index 3ee4fa00..2fb3c4b8 100644
--- a/src/lj_target_x86.h
+++ b/src/lj_target_x86.h
@@ -32,6 +32,11 @@ enum {
32 32
33 /* Calling conventions. */ 33 /* Calling conventions. */
34 RID_RET = RID_EAX, 34 RID_RET = RID_EAX,
35#if LJ_64
36 RID_FPRET = RID_XMM0,
37#else
38 RID_RETHI = RID_EDX,
39#endif
35 40
36 /* These definitions must match with the *.dasc file(s): */ 41 /* These definitions must match with the *.dasc file(s): */
37 RID_BASE = RID_EDX, /* Interpreter BASE. */ 42 RID_BASE = RID_EDX, /* Interpreter BASE. */
@@ -98,8 +103,8 @@ enum {
98}; 103};
99 104
100/* Spill slots are 32 bit wide. An even/odd pair is used for FPRs. */ 105/* Spill slots are 32 bit wide. An even/odd pair is used for FPRs. */
101#define sps_scale(slot) (4 * (int32_t)(slot)) 106#define sps_scale(slot) (4 * (int32_t)(slot))
102#define sps_adjust(as) (sps_scale((as->evenspill-SPS_FIXED+3)&~3)) 107#define sps_adjust(slot) (sps_scale(((slot)-SPS_FIXED+3)&~3))
103 108
104/* -- Exit state ---------------------------------------------------------- */ 109/* -- Exit state ---------------------------------------------------------- */
105 110
@@ -185,6 +190,7 @@ typedef enum {
185 XO_ARITHib = XO_(80), 190 XO_ARITHib = XO_(80),
186 XO_ARITHi = XO_(81), 191 XO_ARITHi = XO_(81),
187 XO_ARITHi8 = XO_(83), 192 XO_ARITHi8 = XO_(83),
193 XO_ARITHiw8 = XO_66(83),
188 XO_SHIFTi = XO_(c1), 194 XO_SHIFTi = XO_(c1),
189 XO_SHIFT1 = XO_(d1), 195 XO_SHIFT1 = XO_(d1),
190 XO_SHIFTcl = XO_(d3), 196 XO_SHIFTcl = XO_(d3),
@@ -216,6 +222,7 @@ typedef enum {
216 XO_CVTSI2SD = XO_f20f(2a), 222 XO_CVTSI2SD = XO_f20f(2a),
217 XO_CVTSD2SI = XO_f20f(2d), 223 XO_CVTSD2SI = XO_f20f(2d),
218 XO_CVTTSD2SI= XO_f20f(2c), 224 XO_CVTTSD2SI= XO_f20f(2c),
225 XO_MOVD = XO_660f(6e),
219 XO_MOVDto = XO_660f(7e), 226 XO_MOVDto = XO_660f(7e),
220 227
221 XO_FLDq = XO_(dd), XOg_FLDq = 0, 228 XO_FLDq = XO_(dd), XOg_FLDq = 0,