Change callee-save regs for x64 interpreter to shorten code.

master
Mike Pall 2009-12-28 21:18:44 +01:00
parent da65e0dfed
commit 7b7c6ed754
2 changed files with 9 additions and 2 deletions

View File

@ -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

View File

@ -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,