]> git.ipfire.org Git - thirdparty/LuaJIT.git/commitdiff
Change callee-save regs for x64 interpreter to shorten code.
authorMike Pall <mike>
Mon, 28 Dec 2009 20:18:44 +0000 (21:18 +0100)
committerMike Pall <mike>
Mon, 28 Dec 2009 20:18:44 +0000 (21:18 +0100)
src/buildvm_x86.dasc
src/lj_target_x86.h

index fa9bf9fbbe8b640b0365395f3d6cc9743934cca4..84bfd50c55e15fb0a53060dc7908057b67c72144 100644 (file)
 |.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
index 2fb3c4b8531d15b5449f04b5539404b185a744a4..198245cd6823e4f7e47525d59d1da739d2f81956 100644 (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,