summaryrefslogtreecommitdiff
path: root/src/lj_frame.h
diff options
context:
space:
mode:
authorMike Pall <mike>2009-12-29 02:04:20 +0100
committerMike Pall <mike>2009-12-29 02:04:20 +0100
commitd18d1573d8f37de44cfeef580d244d17561c73d7 (patch)
treeb7b6de9ba326494b6ca8d82ce7024e54af6bef8c /src/lj_frame.h
parent374f53471528e1592d9075c47e579d2f3c546beb (diff)
downloadluajit-d18d1573d8f37de44cfeef580d244d17561c73d7.tar.gz
luajit-d18d1573d8f37de44cfeef580d244d17561c73d7.tar.bz2
luajit-d18d1573d8f37de44cfeef580d244d17561c73d7.zip
Save all callee-saved x64 integer regs for unwinding.
Temporary measure. Does not cover xmm saves on WIN64. May have to use unwind info or waste another 160 bytes per CFRAME.
Diffstat (limited to '')
-rw-r--r--src/lj_frame.h20
1 files changed, 10 insertions, 10 deletions
diff --git a/src/lj_frame.h b/src/lj_frame.h
index 14d640cd..398ec4e5 100644
--- a/src/lj_frame.h
+++ b/src/lj_frame.h
@@ -66,19 +66,19 @@ enum {
66#define CFRAME_SIZE (12*4) 66#define CFRAME_SIZE (12*4)
67#elif LJ_TARGET_X64 67#elif LJ_TARGET_X64
68#if _WIN64 68#if _WIN64
69#define CFRAME_OFS_ERRF (23*4) 69#define CFRAME_OFS_PREV (17*8)
70#define CFRAME_OFS_NRES (22*4) 70#define CFRAME_OFS_PC (33*4)
71#define CFRAME_OFS_PREV (13*8) 71#define CFRAME_OFS_L (32*4)
72#define CFRAME_OFS_L (24*4) 72#define CFRAME_OFS_ERRF (31*4)
73#define CFRAME_OFS_PC (25*4) 73#define CFRAME_OFS_NRES (30*4)
74#define CFRAME_SIZE (10*8) 74#define CFRAME_SIZE (14*8)
75#else 75#else
76#define CFRAME_OFS_ERRF (3*4)
77#define CFRAME_OFS_NRES (2*4)
78#define CFRAME_OFS_PREV (4*8) 76#define CFRAME_OFS_PREV (4*8)
79#define CFRAME_OFS_L (4*4)
80#define CFRAME_OFS_PC (5*4) 77#define CFRAME_OFS_PC (5*4)
81#define CFRAME_SIZE (10*8) 78#define CFRAME_OFS_L (4*4)
79#define CFRAME_OFS_ERRF (3*4)
80#define CFRAME_OFS_NRES (2*4)
81#define CFRAME_SIZE (12*8)
82#endif 82#endif
83#else 83#else
84#error "Missing CFRAME_* definitions for this architecture" 84#error "Missing CFRAME_* definitions for this architecture"