Author: David Schneider <david.schnei...@picle.org>
Branch: jitframe-on-heap
Changeset: r60723:f410b2ca03ba
Date: 2013-01-30 12:59 +0100
http://bitbucket.org/pypy/pypy/changeset/f410b2ca03ba/

Log:    test_float_operations passes

diff --git a/rpython/jit/backend/arm/assembler.py 
b/rpython/jit/backend/arm/assembler.py
--- a/rpython/jit/backend/arm/assembler.py
+++ b/rpython/jit/backend/arm/assembler.py
@@ -1018,9 +1018,9 @@
             pushed = True
             if not check_imm_arg(offset):
                 self.mc.gen_load_int(r.ip.value, offset, cond=cond)
-                self.mc.SUB_rr(r.ip.value, r.fp.value, r.ip.value, cond=cond)
+                self.mc.ADD_rr(r.ip.value, r.fp.value, r.ip.value, cond=cond)
             else:
-                self.mc.SUB_ri(r.ip.value, r.fp.value, offset, cond=cond)
+                self.mc.ADD_ri(r.ip.value, r.fp.value, offset, cond=cond)
             self.mc.VLDR(loc.value, r.ip.value, cond=cond)
             if pushed:
                 self.mc.POP([r.ip.value], cond=cond)
diff --git a/rpython/jit/backend/arm/opassembler.py 
b/rpython/jit/backend/arm/opassembler.py
--- a/rpython/jit/backend/arm/opassembler.py
+++ b/rpython/jit/backend/arm/opassembler.py
@@ -361,12 +361,10 @@
         base_ofs = self.cpu.get_baseofs_of_frame_field() - WORD
         if len(arglocs) == 2:
             [return_val, fail_descr_loc] = arglocs
-            if op.getarg(0).type == FLOAT and not IS_X86_64:
-                XXX
-                size = WORD * 2
+            if op.getarg(0).type == FLOAT:
+                self.mc.VSTR(return_val.value, r.fp.value)#, imm=-base_ofs)
             else:
-                size = WORD
-            self.mc.STR_ri(return_val.value, r.fp.value)#, imm=-base_ofs)
+                self.mc.STR_ri(return_val.value, r.fp.value)#, imm=-base_ofs)
             #self.save_into_mem(raw_stack(0), return_val, imm(size))
         else:
             [fail_descr_loc] = arglocs
diff --git a/rpython/jit/backend/arm/regalloc.py 
b/rpython/jit/backend/arm/regalloc.py
--- a/rpython/jit/backend/arm/regalloc.py
+++ b/rpython/jit/backend/arm/regalloc.py
@@ -66,10 +66,7 @@
 
     @staticmethod
     def frame_pos(i, box_type):
-        if box_type == FLOAT:
-            return locations.StackLocation(i, get_fp_offset(i + 1), box_type)
-        else:
-            return locations.StackLocation(i, get_fp_offset(i), box_type)
+        return locations.StackLocation(i, get_fp_offset(i), box_type)
 
     @staticmethod
     def frame_size(type):
@@ -317,7 +314,6 @@
         # the input args are passed in the jitframe
         for box in inputargs:
             assert isinstance(box, Box)
-            assert box.type != FLOAT
             self.fm.get_new_loc(box)
 
     def _update_bindings(self, locs, inputargs):
_______________________________________________
pypy-commit mailing list
pypy-commit@python.org
http://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to