summaryrefslogtreecommitdiff
path: root/src/lj_frame.h
diff options
context:
space:
mode:
authorMike Pall <mike>2010-09-13 21:50:08 +0200
committerMike Pall <mike>2010-09-13 21:50:27 +0200
commit8a87395d8dc92a0bfc04e21554a963747d2ebf06 (patch)
tree39416d5e561c8104a94b87ae8aea47b0cdec0118 /src/lj_frame.h
parent0001916f8d85c6ce36cdf5f00fbc41529a9fef79 (diff)
downloadluajit2-8a87395d8dc92a0bfc04e21554a963747d2ebf06.tar.gz
PPC: Add support for shifted MULTRES.
Diffstat (limited to 'src/lj_frame.h')
-rw-r--r--src/lj_frame.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/lj_frame.h b/src/lj_frame.h
index da33420b..c4931072 100644
--- a/src/lj_frame.h
+++ b/src/lj_frame.h
@@ -67,6 +67,7 @@ enum {
#define CFRAME_OFS_MULTRES (5*4)
#define CFRAME_SIZE (12*4)
#define CFRAME_SIZE_JIT CFRAME_SIZE
+#define CFRAME_SHIFT_MULTRES 0
#elif LJ_TARGET_X64
#if _WIN64
#define CFRAME_OFS_PREV (13*8)
@@ -77,6 +78,7 @@ enum {
#define CFRAME_OFS_MULTRES (21*4)
#define CFRAME_SIZE (10*8)
#define CFRAME_SIZE_JIT (CFRAME_SIZE + 9*16 + 4*8)
+#define CFRAME_SHIFT_MULTRES 0
#else
#define CFRAME_OFS_PREV (4*8)
#define CFRAME_OFS_PC (7*4)
@@ -86,6 +88,7 @@ enum {
#define CFRAME_OFS_MULTRES (1*4)
#define CFRAME_SIZE (10*8)
#define CFRAME_SIZE_JIT (CFRAME_SIZE + 16)
+#define CFRAME_SHIFT_MULTRES 0
#endif
#elif LJ_TARGET_PPCSPE
#define CFRAME_OFS_ERRF 28
@@ -96,6 +99,7 @@ enum {
#define CFRAME_OFS_MULTRES 8
#define CFRAME_SIZE 176
#define CFRAME_SIZE_JIT CFRAME_SIZE
+#define CFRAME_SHIFT_MULTRES 3
#else
#error "Missing CFRAME_* definitions for this architecture"
#endif
@@ -108,6 +112,7 @@ enum {
#define cframe_nres(cf) (*(int32_t *)(((char *)(cf))+CFRAME_OFS_NRES))
#define cframe_prev(cf) (*(void **)(((char *)(cf))+CFRAME_OFS_PREV))
#define cframe_multres(cf) (*(uint32_t *)(((char *)(cf))+CFRAME_OFS_MULTRES))
+#define cframe_multres_n(cf) (cframe_multres((cf)) >> CFRAME_SHIFT_MULTRES)
#define cframe_L(cf) \
(&gcref(*(GCRef *)(((char *)(cf))+CFRAME_OFS_L))->th)
#define cframe_pc(cf) \