mirror of
https://github.com/LuaJIT/LuaJIT.git
synced 2025-02-07 23:24:09 +00:00
Change callee-save regs for x64 interpreter to shorten code.
This commit is contained in:
parent
da65e0dfed
commit
7b7c6ed754
@ -23,16 +23,18 @@
|
||||
|.define KBASE, edi // Must be C callee-save.
|
||||
|.define KBASEa, KBASE
|
||||
|.define PC, esi // Must be C callee-save.
|
||||
|.define DISPATCH, ebx // Must be C callee-save.
|
||||
|.elif X64WIN
|
||||
|.define KBASE, edi // Must be C callee-save.
|
||||
|.define KBASEa, rdi
|
||||
|.define PC, esi // Must be C callee-save.
|
||||
|.define DISPATCH, ebx // Must be C callee-save.
|
||||
|.else
|
||||
|.define KBASE, r15d // Must be C callee-save.
|
||||
|.define KBASEa, r15
|
||||
|.define PC, r14d // Must be C callee-save.
|
||||
|.define PC, ebx // Must be C callee-save.
|
||||
|.define DISPATCH, r14d // Must be C callee-save.
|
||||
|.endif
|
||||
|.define DISPATCH, ebx // Must be C callee-save.
|
||||
|
|
||||
|.define RA, ecx
|
||||
|.if X64; .define RAa, rcx; .else; .define RAa, RA; .endif
|
||||
|
@ -40,8 +40,13 @@ enum {
|
||||
|
||||
/* These definitions must match with the *.dasc file(s): */
|
||||
RID_BASE = RID_EDX, /* Interpreter BASE. */
|
||||
#if LJ_64 && !defined(_WIN64)
|
||||
RID_PC = RID_EBX, /* Interpreter PC. */
|
||||
RID_DISPATCH = RID_R14D, /* Interpreter DISPATCH table. */
|
||||
#else
|
||||
RID_PC = RID_ESI, /* Interpreter PC. */
|
||||
RID_DISPATCH = RID_EBX, /* Interpreter DISPATCH table. */
|
||||
#endif
|
||||
|
||||
/* Register ranges [min, max) and number of registers. */
|
||||
RID_MIN_GPR = RID_EAX,
|
||||
|
Loading…
Reference in New Issue
Block a user