summaryrefslogtreecommitdiff
path: root/src/lj_frame.h
diff options
context:
space:
mode:
authorMike Pall <mike>2015-05-04 06:30:57 +0200
committerMike Pall <mike>2015-05-04 06:30:57 +0200
commita92e73023353e59405ebfdb2837b5742d17946a5 (patch)
tree19dca7d5ffe0b5d133d6fd5434a923aa976aaaeb /src/lj_frame.h
parent5caf53d502dbe051dac11d86e1f9ad69bbe3eabf (diff)
downloadluajit-a92e73023353e59405ebfdb2837b5742d17946a5.tar.gz
luajit-a92e73023353e59405ebfdb2837b5742d17946a5.tar.bz2
luajit-a92e73023353e59405ebfdb2837b5742d17946a5.zip
x64: Add LJ_GC64 mode interpreter.
Enable this mode with: make XCFLAGS=-DLUAJIT_ENABLE_GC64
Diffstat (limited to 'src/lj_frame.h')
-rw-r--r--src/lj_frame.h16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/lj_frame.h b/src/lj_frame.h
index b9595a5a..517f4684 100644
--- a/src/lj_frame.h
+++ b/src/lj_frame.h
@@ -127,21 +127,37 @@ enum { LJ_CONT_TAILCALL, LJ_CONT_FFI_CALLBACK }; /* Special continuations. */
127#elif LJ_TARGET_X64 127#elif LJ_TARGET_X64
128#if LJ_ABI_WIN 128#if LJ_ABI_WIN
129#define CFRAME_OFS_PREV (13*8) 129#define CFRAME_OFS_PREV (13*8)
130#if LJ_GC64
131#define CFRAME_OFS_PC (12*8)
132#define CFRAME_OFS_L (11*8)
133#define CFRAME_OFS_ERRF (21*4)
134#define CFRAME_OFS_NRES (20*4)
135#define CFRAME_OFS_MULTRES (8*4)
136#else
130#define CFRAME_OFS_PC (25*4) 137#define CFRAME_OFS_PC (25*4)
131#define CFRAME_OFS_L (24*4) 138#define CFRAME_OFS_L (24*4)
132#define CFRAME_OFS_ERRF (23*4) 139#define CFRAME_OFS_ERRF (23*4)
133#define CFRAME_OFS_NRES (22*4) 140#define CFRAME_OFS_NRES (22*4)
134#define CFRAME_OFS_MULTRES (21*4) 141#define CFRAME_OFS_MULTRES (21*4)
142#endif
135#define CFRAME_SIZE (10*8) 143#define CFRAME_SIZE (10*8)
136#define CFRAME_SIZE_JIT (CFRAME_SIZE + 9*16 + 4*8) 144#define CFRAME_SIZE_JIT (CFRAME_SIZE + 9*16 + 4*8)
137#define CFRAME_SHIFT_MULTRES 0 145#define CFRAME_SHIFT_MULTRES 0
138#else 146#else
139#define CFRAME_OFS_PREV (4*8) 147#define CFRAME_OFS_PREV (4*8)
148#if LJ_GC64
149#define CFRAME_OFS_PC (3*8)
150#define CFRAME_OFS_L (2*8)
151#define CFRAME_OFS_ERRF (3*4)
152#define CFRAME_OFS_NRES (2*4)
153#define CFRAME_OFS_MULTRES (0*4)
154#else
140#define CFRAME_OFS_PC (7*4) 155#define CFRAME_OFS_PC (7*4)
141#define CFRAME_OFS_L (6*4) 156#define CFRAME_OFS_L (6*4)
142#define CFRAME_OFS_ERRF (5*4) 157#define CFRAME_OFS_ERRF (5*4)
143#define CFRAME_OFS_NRES (4*4) 158#define CFRAME_OFS_NRES (4*4)
144#define CFRAME_OFS_MULTRES (1*4) 159#define CFRAME_OFS_MULTRES (1*4)
160#endif
145#define CFRAME_SIZE (10*8) 161#define CFRAME_SIZE (10*8)
146#define CFRAME_SIZE_JIT (CFRAME_SIZE + 16) 162#define CFRAME_SIZE_JIT (CFRAME_SIZE + 16)
147#define CFRAME_SHIFT_MULTRES 0 163#define CFRAME_SHIFT_MULTRES 0