]> git.unchartedbackwaters.co.uk Git - francis/libjit.git/commitdiff
_jit_gen_load_value: use ARM register pairs properly for "long"
authorRhys Weatherley <rweather@southern-storm.com.au>
Wed, 9 Jun 2004 07:39:37 +0000 (07:39 +0000)
committerRhys Weatherley <rweather@southern-storm.com.au>
Wed, 9 Jun 2004 07:39:37 +0000 (07:39 +0000)
and "float64" values.

ChangeLog
jit/jit-rules-arm.c

index 0d891ee590a21fde30b47926542281f2b79f8357..ccc4e399a31502f44f10e1d0e0cf1345c1f1c766 100644 (file)
--- 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  <rweather@southern-storm.com.au>
 
        * jit/Makefile.am, jit/jit-cpuid-x86.c, jit/jit-cpuid-x86.h:
index f2fbe69cea09ac74356359f8d137aa9e81cdcafc..21ea02a12333920a7c871b989be9ca157e19c7a6 100644 (file)
@@ -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