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_sparc-cpu.c | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) (limited to 'lib/jit_sparc-cpu.c') diff --git a/lib/jit_sparc-cpu.c b/lib/jit_sparc-cpu.c index 960d0b0..8bb20d3 100644 --- a/lib/jit_sparc-cpu.c +++ b/lib/jit_sparc-cpu.c @@ -1619,28 +1619,28 @@ static void _prolog(jit_state_t *_jit, jit_node_t *node) { /* align at 16 bytes boundary */ - _jit->function->stack = ((stack_framesize + - _jit->function->self.alen - - _jit->function->self.aoff) + 15) & -16; - SAVEI(_SP_REGNO, -_jit->function->stack, _SP_REGNO); + _jitc->function->stack = ((stack_framesize + + _jitc->function->self.alen - + _jitc->function->self.aoff) + 15) & -16; + SAVEI(_SP_REGNO, -_jitc->function->stack, _SP_REGNO); /* (most) other backends do not save incoming arguments, so, * only save locals here */ - if (jit_regset_tstbit(_jit->function->regset, _L0)) + if (jit_regset_tstbit(_jitc->function->regset, _L0)) stxi(0, _SP_REGNO, _L0_REGNO); - if (jit_regset_tstbit(_jit->function->regset, _L1)) + if (jit_regset_tstbit(_jitc->function->regset, _L1)) stxi(4, _SP_REGNO, _L1_REGNO); - if (jit_regset_tstbit(_jit->function->regset, _L2)) + if (jit_regset_tstbit(_jitc->function->regset, _L2)) stxi(8, _SP_REGNO, _L2_REGNO); - if (jit_regset_tstbit(_jit->function->regset, _L3)) + if (jit_regset_tstbit(_jitc->function->regset, _L3)) stxi(12, _SP_REGNO, _L3_REGNO); - if (jit_regset_tstbit(_jit->function->regset, _L4)) + if (jit_regset_tstbit(_jitc->function->regset, _L4)) stxi(16, _SP_REGNO, _L4_REGNO); - if (jit_regset_tstbit(_jit->function->regset, _L5)) + if (jit_regset_tstbit(_jitc->function->regset, _L5)) stxi(20, _SP_REGNO, _L5_REGNO); - if (jit_regset_tstbit(_jit->function->regset, _L6)) + if (jit_regset_tstbit(_jitc->function->regset, _L6)) stxi(24, _SP_REGNO, _L6_REGNO); - if (jit_regset_tstbit(_jit->function->regset, _L7)) + if (jit_regset_tstbit(_jitc->function->regset, _L7)) stxi(28, _SP_REGNO, _L7_REGNO); } @@ -1649,21 +1649,21 @@ _epilog(jit_state_t *_jit, jit_node_t *node) { /* (most) other backends do not save incoming arguments, so, * only save locals here */ - if (jit_regset_tstbit(_jit->function->regset, _L0)) + if (jit_regset_tstbit(_jitc->function->regset, _L0)) ldxi(_L0_REGNO, _SP_REGNO, 0); - if (jit_regset_tstbit(_jit->function->regset, _L1)) + if (jit_regset_tstbit(_jitc->function->regset, _L1)) ldxi(_L1_REGNO, _SP_REGNO, 4); - if (jit_regset_tstbit(_jit->function->regset, _L2)) + if (jit_regset_tstbit(_jitc->function->regset, _L2)) ldxi(_L2_REGNO, _SP_REGNO, 8); - if (jit_regset_tstbit(_jit->function->regset, _L3)) + if (jit_regset_tstbit(_jitc->function->regset, _L3)) ldxi(_L3_REGNO, _SP_REGNO, 12); - if (jit_regset_tstbit(_jit->function->regset, _L4)) + if (jit_regset_tstbit(_jitc->function->regset, _L4)) ldxi(_L4_REGNO, _SP_REGNO, 16); - if (jit_regset_tstbit(_jit->function->regset, _L5)) + if (jit_regset_tstbit(_jitc->function->regset, _L5)) ldxi(_L5_REGNO, _SP_REGNO, 20); - if (jit_regset_tstbit(_jit->function->regset, _L6)) + if (jit_regset_tstbit(_jitc->function->regset, _L6)) ldxi(_L6_REGNO, _SP_REGNO, 24); - if (jit_regset_tstbit(_jit->function->regset, _L7)) + if (jit_regset_tstbit(_jitc->function->regset, _L7)) ldxi(_L7_REGNO, _SP_REGNO, 28); RESTOREI(0, 0, 0); RETL(); -- cgit v1.2.3

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