Disentangle target-specific parts of JIT assembler backend.
This commit is contained in:
@@ -21,6 +21,8 @@
|
||||
#define FPRDEF(_) \
|
||||
_(XMM0) _(XMM1) _(XMM2) _(XMM3) _(XMM4) _(XMM5) _(XMM6) _(XMM7)
|
||||
#endif
|
||||
#define VRIDDEF(_) \
|
||||
_(MRM)
|
||||
|
||||
#define RIDENUM(name) RID_##name,
|
||||
|
||||
@@ -63,6 +65,7 @@ enum {
|
||||
#define RSET_GPR (RSET_RANGE(RID_MIN_GPR, RID_MAX_GPR)-RID2RSET(RID_ESP))
|
||||
#define RSET_FPR (RSET_RANGE(RID_MIN_FPR, RID_MAX_FPR))
|
||||
#define RSET_ALL (RSET_GPR|RSET_FPR)
|
||||
#define RSET_INIT RSET_ALL
|
||||
|
||||
#if LJ_64
|
||||
/* Note: this requires the use of FORCE_REX! */
|
||||
@@ -80,6 +83,7 @@ enum {
|
||||
(RSET_ACD|RSET_RANGE(RID_R8D, RID_R11D+1)|RSET_RANGE(RID_XMM0, RID_XMM5+1))
|
||||
#define REGARG_GPRS \
|
||||
(RID_ECX|((RID_EDX|((RID_R8D|(RID_R9D<<5))<<5))<<5))
|
||||
#define REGARG_NUMGPR 4
|
||||
#define REGARG_FIRSTFPR RID_XMM0
|
||||
#define REGARG_LASTFPR RID_XMM3
|
||||
#define STACKARG_OFS (4*8)
|
||||
@@ -90,6 +94,7 @@ enum {
|
||||
#define REGARG_GPRS \
|
||||
(RID_EDI|((RID_ESI|((RID_EDX|((RID_ECX|((RID_R8D|(RID_R9D \
|
||||
<<5))<<5))<<5))<<5))<<5))
|
||||
#define REGARG_NUMGPR 6
|
||||
#define REGARG_FIRSTFPR RID_XMM0
|
||||
#define REGARG_LASTFPR RID_XMM7
|
||||
#define STACKARG_OFS 0
|
||||
@@ -98,6 +103,7 @@ enum {
|
||||
/* Common x86 ABI. */
|
||||
#define RSET_SCRATCH (RSET_ACD|RSET_FPR)
|
||||
#define REGARG_GPRS (RID_ECX|(RID_EDX<<5)) /* Fastcall only. */
|
||||
#define REGARG_NUMGPR 2 /* Fastcall only. */
|
||||
#define STACKARG_OFS 0
|
||||
#endif
|
||||
|
||||
|
||||
Reference in New Issue
Block a user