diff options
Diffstat (limited to 'src/runtime/c/pgf/lightning')
| -rw-r--r-- | src/runtime/c/pgf/lightning/core-common.h | 8 | ||||
| -rw-r--r-- | src/runtime/c/pgf/lightning/i386/core-32.h | 12 | ||||
| -rw-r--r-- | src/runtime/c/pgf/lightning/i386/core-64.h | 9 |
3 files changed, 10 insertions, 19 deletions
diff --git a/src/runtime/c/pgf/lightning/core-common.h b/src/runtime/c/pgf/lightning/core-common.h index 04dbb2c7b..3cda23322 100644 --- a/src/runtime/c/pgf/lightning/core-common.h +++ b/src/runtime/c/pgf/lightning/core-common.h @@ -52,6 +52,12 @@ typedef struct { #define JIT_V0 JIT_V(0) #define JIT_V1 JIT_V(1) #define JIT_V2 JIT_V(2) +#define JIT_FPR0 JIT_FPR(0) +#define JIT_FPR1 JIT_FPR(1) +#define JIT_FPR2 JIT_FPR(2) +#define JIT_FPR3 JIT_FPR(3) +#define JIT_FPR4 JIT_FPR(4) +#define JIT_FPR5 JIT_FPR(5) #define _jitl _jit.jitl @@ -149,7 +155,7 @@ typedef union jit_code { #define jit_xorr_ul(d, s1, s2) jit_xorr_l((d), (s1), (s2)) #define jit_addr_p(d, s1, s2) jit_addr_ul((d), (s1), (s2)) -#define jit_addi_p(d, rs, is) jit_addi_ul((d), (rs), (long) (is)) +#define jit_addi_p(d, rs, is) (jit_addi_ul((d), (rs), (long) (is)), _jit.x.pc) #define jit_movr_p(d, rs) jit_movr_ul((d), (rs)) #define jit_subr_p(d, s1, s2) jit_subr_ul((d), (s1), (s2)) #define jit_subi_p(d, rs, is) jit_subi_ul((d), (rs), (long) (is)) diff --git a/src/runtime/c/pgf/lightning/i386/core-32.h b/src/runtime/c/pgf/lightning/i386/core-32.h index 561fab5fb..9de85b86e 100644 --- a/src/runtime/c/pgf/lightning/i386/core-32.h +++ b/src/runtime/c/pgf/lightning/i386/core-32.h @@ -101,6 +101,8 @@ struct jit_local_state { #define jit_ret() jit_base_ret (_jitl.alloca_offset) #endif +#define jit_bare_ret(IM) ((IM == 0) ? RET_() : RETi(IM)) + #define jit_calli(label) (CALLm( ((unsigned long) (label))), _jit.x.pc) #define jit_callr(reg) CALLsr(reg) @@ -108,16 +110,6 @@ struct jit_local_state { #define jit_finish(sub) (_jitl.finish_ref = jit_calli((sub)), ADDLir(sizeof(long) * _jitl.argssize, JIT_SP), _jitl.argssize = 0, _jitl.finish_ref) #define jit_finishr(reg) (jit_callr((reg)), ADDLir(sizeof(long) * _jitl.argssize, JIT_SP), _jitl.argssize = 0) -#ifdef __APPLE__ -#define jit_tail_finishr(reg) jit_base_tail_finishr(-12, reg) -#else -#define jit_tail_finishr(reg) jit_base_tail_finishr(_jitl.alloca_offset, reg) -#endif - -#define jit_base_tail_finishr(ofs, reg) \ - (((ofs) < 0 ? LEAVE_() : POPLr(_EBP)), \ - POPLr(_EDI), POPLr(_ESI), POPLr(_EBX), jit_jmpr(reg)) - #define jit_arg_c() ((_jitl.framesize += sizeof(int)) - sizeof(int)) #define jit_arg_uc() ((_jitl.framesize += sizeof(int)) - sizeof(int)) #define jit_arg_s() ((_jitl.framesize += sizeof(int)) - sizeof(int)) diff --git a/src/runtime/c/pgf/lightning/i386/core-64.h b/src/runtime/c/pgf/lightning/i386/core-64.h index 70b4d6069..bd53d9744 100644 --- a/src/runtime/c/pgf/lightning/i386/core-64.h +++ b/src/runtime/c/pgf/lightning/i386/core-64.h @@ -190,14 +190,6 @@ struct jit_local_state { ? (ADDQir(sizeof(long) * _jitl.argssize, JIT_SP), _jitl.argssize = 0) \ : 0)) -#ifdef __APPLE__ -#define jit_tail_finishr(reg) jit_base_tail_finishr(-12, reg) -#else -#define jit_tail_finishr(reg) jit_base_tail_finishr(_jitl.alloca_offset, reg) -#endif - -#define jit_base_tail_finishr(ofs, reg) - #define jit_retval_l(rd) ((void)jit_movr_l ((rd), _EAX)) #define jit_arg_i() (_jitl.nextarg_geti < JIT_ARG_MAX \ ? _jitl.nextarg_geti++ \ @@ -273,6 +265,7 @@ static int jit_arg_reg_order[] = { _EDI, _ESI, _EDX, _ECX, _R8D, _R9D }; #define jit_patch_at(jump_pc,v) (_jitl.long_jumps ? jit_patch_long_at((jump_pc)-3, v) : jit_patch_short_at(jump_pc, v)) #define jit_patch_calli(pa,pv) (*_PSL((pa) - sizeof(long)) = _jit_SL((pv))) #define jit_ret() (LEAVE_(), POPQr(_R14), POPQr(_R13), POPQr(_R12), POPQr(_EBX), RET_()) +#define jit_bare_ret(IM) ((IM == 0) ? RET_() : RETi(IM)) /* Memory */ |
