From 9afca85921522076006a7e901b2a040849f7beb0 Mon Sep 17 00:00:00 2001 From: pcpa Date: Wed, 6 Mar 2013 16:49:26 -0300 Subject: Rework to better describe what is used only during jit generation. * include/lightning/jit_private.h, lib/jit_arm-cpu.c, lib/jit_arm.c, lib/jit_disasm.c, lib/jit_mips-cpu.c, lib/jit_mips.c, lib/jit_note.c, lib/jit_ppc-cpu.c, lib/jit_ppc.c, lib/jit_print.c, lib/jit_sparc-cpu.c, lib/jit_sparc.c, lib/jit_x86-cpu.c, lib/jit_x86.c, lib/lightning.c: Add an extra structure for data storage during jit generation, and release it after generating jit, to reduce a bit memory usage, and also to make it easier to understand what data is available during jit runtime. --- lib/jit_ppc-cpu.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) (limited to 'lib/jit_ppc-cpu.c') diff --git a/lib/jit_ppc-cpu.c b/lib/jit_ppc-cpu.c index 1685626..7d21e31 100644 --- a/lib/jit_ppc-cpu.c +++ b/lib/jit_ppc-cpu.c @@ -2471,20 +2471,20 @@ _prolog(jit_state_t *_jit, jit_node_t *node) unsigned long regno; jit_word_t offset; - _jit->function->stack = ((_jit->function->self.alen + - _jit->function->self.size - - _jit->function->self.aoff) + 15) & -16; + _jitc->function->stack = ((_jitc->function->self.alen + + _jitc->function->self.size - + _jitc->function->self.aoff) + 15) & -16; /* return address */ MFLR(_R0_REGNO); /* save any clobbered callee save gpr register */ - regno = jit_regset_scan1(_jit->function->regset, _R14); + regno = jit_regset_scan1(_jitc->function->regset, _R14); if (regno == ULONG_MAX || regno> _R31) regno = _R31; /* aka _FP_REGNO */ STMW(rn(regno), _SP_REGNO, -fpr_save_area - (32 * 4) + rn(regno) * 4); for (offset = 0; offset < 8; offset++) { - if (jit_regset_tstbit(_jit->function->regset, _F14 + offset)) + if (jit_regset_tstbit(_jitc->function->regset, _F14 + offset)) stxi_d(-fpr_save_area + offset * 8, _SP_REGNO, rn(_F14 + offset)); } @@ -2494,7 +2494,7 @@ _prolog(jit_state_t *_jit, jit_node_t *node) * alloca < %r31-80 */ movr(_FP_REGNO, _SP_REGNO); - STWU(_SP_REGNO, _SP_REGNO, -_jit->function->stack); + STWU(_SP_REGNO, _SP_REGNO, -_jitc->function->stack); } static void @@ -2508,12 +2508,12 @@ _epilog(jit_state_t *_jit, jit_node_t *node) MTLR(_R0_REGNO); - regno = jit_regset_scan1(_jit->function->regset, _R14); + regno = jit_regset_scan1(_jitc->function->regset, _R14); if (regno == ULONG_MAX || regno> _R31) regno = _R31; /* aka _FP_REGNO */ LMW(rn(regno), _SP_REGNO, -fpr_save_area - (32 * 4) + rn(regno) * 4); for (offset = 0; offset < 8; offset++) { - if (jit_regset_tstbit(_jit->function->regset, _F14 + offset)) + if (jit_regset_tstbit(_jitc->function->regset, _F14 + offset)) ldxi_d(rn(_F14 + offset), _SP_REGNO, -fpr_save_area + offset * 8); } BLR(); -- cgit v1.2.3

AltStyle によって変換されたページ (->オリジナル) /