diff options
Diffstat (limited to 'src/lj_dispatch.h')
-rw-r--r-- | src/lj_dispatch.h | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/lj_dispatch.h b/src/lj_dispatch.h index 17bf93da..6a3bc2bd 100644 --- a/src/lj_dispatch.h +++ b/src/lj_dispatch.h | |||
@@ -70,12 +70,20 @@ typedef uint16_t HotCount; | |||
70 | typedef struct GG_State { | 70 | typedef struct GG_State { |
71 | lua_State L; /* Main thread. */ | 71 | lua_State L; /* Main thread. */ |
72 | global_State g; /* Global state. */ | 72 | global_State g; /* Global state. */ |
73 | #if LJ_TARGET_ARM | ||
74 | /* Make g reachable via K12 encoded DISPATCH-relative addressing. */ | ||
75 | uint8_t align1[(16-sizeof(global_State))&15]; | ||
76 | #endif | ||
73 | #if LJ_TARGET_MIPS | 77 | #if LJ_TARGET_MIPS |
74 | ASMFunction got[LJ_GOT__MAX]; /* Global offset table. */ | 78 | ASMFunction got[LJ_GOT__MAX]; /* Global offset table. */ |
75 | #endif | 79 | #endif |
76 | #if LJ_HASJIT | 80 | #if LJ_HASJIT |
77 | jit_State J; /* JIT state. */ | 81 | jit_State J; /* JIT state. */ |
78 | HotCount hotcount[HOTCOUNT_SIZE]; /* Hot counters. */ | 82 | HotCount hotcount[HOTCOUNT_SIZE]; /* Hot counters. */ |
83 | #if LJ_TARGET_ARM | ||
84 | /* Ditto for J. */ | ||
85 | uint8_t align2[(16-sizeof(jit_State)-sizeof(HotCount)*HOTCOUNT_SIZE)&15]; | ||
86 | #endif | ||
79 | #endif | 87 | #endif |
80 | ASMFunction dispatch[GG_LEN_DISP]; /* Instruction dispatch tables. */ | 88 | ASMFunction dispatch[GG_LEN_DISP]; /* Instruction dispatch tables. */ |
81 | BCIns bcff[GG_NUM_ASMFF]; /* Bytecode for ASM fast functions. */ | 89 | BCIns bcff[GG_NUM_ASMFF]; /* Bytecode for ASM fast functions. */ |