From: Rhys Weatherley Date: Wed, 9 Jun 2004 07:39:37 +0000 (+0000) Subject: _jit_gen_load_value: use ARM register pairs properly for "long" X-Git-Tag: r.0.0.4~26 X-Git-Url: https://git.unchartedbackwaters.co.uk/w/?a=commitdiff_plain;h=328a9799ae44e14ebe1d919e1a4b4ea5941df612;p=francis%2Flibjit.git _jit_gen_load_value: use ARM register pairs properly for "long" and "float64" values. --- diff --git a/ChangeLog b/ChangeLog index 0d891ee..ccc4e39 100644 --- a/ChangeLog +++ b/ChangeLog @@ -12,6 +12,9 @@ * jit/jit-gen-arm.c: optimize the use of rotated immediate values. + * jit/jit-rules-arm.c (_jit_gen_load_value): use ARM register pairs + properly for "long" and "float64" values. + 2004-06-08 Rhys Weatherley * jit/Makefile.am, jit/jit-cpuid-x86.c, jit/jit-cpuid-x86.h: diff --git a/jit/jit-rules-arm.c b/jit/jit-rules-arm.c index f2fbe69..21ea02a 100644 --- a/jit/jit-rules-arm.c +++ b/jit/jit-rules-arm.c @@ -983,7 +983,7 @@ void _jit_gen_load_value long_value = jit_value_get_long_constant(value); inst = mov_reg_imm(gen, inst, _jit_reg_info[reg].cpu_reg, (jit_int)long_value); - inst = mov_reg_imm(gen, inst, _jit_reg_info[other_reg].cpu_reg, + inst = mov_reg_imm(gen, inst, _jit_reg_info[reg].cpu_reg + 1, (jit_int)(long_value >> 32)); } break; @@ -1027,7 +1027,7 @@ void _jit_gen_load_value (gen, inst, _jit_reg_info[reg].cpu_reg, ((int *)&float64_value)[0]); inst = mov_reg_imm - (gen, inst, _jit_reg_info[other_reg].cpu_reg, + (gen, inst, _jit_reg_info[reg].cpu_reg + 1, ((int *)&float64_value)[1]); } else @@ -1097,7 +1097,7 @@ void _jit_gen_load_value { arm_load_membase(inst, _jit_reg_info[reg].cpu_reg, ARM_FP, offset); - arm_load_membase(inst, _jit_reg_info[other_reg].cpu_reg, + arm_load_membase(inst, _jit_reg_info[reg].cpu_reg + 1, ARM_FP, offset + 4); } break; @@ -1124,7 +1124,7 @@ void _jit_gen_load_value { arm_load_membase(inst, _jit_reg_info[reg].cpu_reg, ARM_FP, offset); - arm_load_membase(inst, _jit_reg_info[other_reg].cpu_reg, + arm_load_membase(inst, _jit_reg_info[reg].cpu_reg + 1, ARM_FP, offset + 4); } else