[pypy-svn] pypy arm-backed-float: support floats in guard_value

bivab commits-noreply at bitbucket.org
Fri Apr 1 16:05:11 CEST 2011


Author: David Schneider <david.schneider at picle.org>
Branch: arm-backed-float
Changeset: r43086:513b86cd49d4
Date: 2011-04-01 14:17 +0200
http://bitbucket.org/pypy/pypy/changeset/513b86cd49d4/

Log:	support floats in guard_value

diff --git a/pypy/jit/backend/arm/opassembler.py b/pypy/jit/backend/arm/opassembler.py
--- a/pypy/jit/backend/arm/opassembler.py
+++ b/pypy/jit/backend/arm/opassembler.py
@@ -168,10 +168,15 @@
         l1 = arglocs[1]
         failargs = arglocs[2:]
 
-        if l1.is_imm():
-            self.mc.CMP_ri(l0.value, l1.getint())
-        else:
-            self.mc.CMP_rr(l0.value, l1.value)
+        if l0.is_reg():
+            if l1.is_imm():
+                self.mc.CMP_ri(l0.value, l1.getint())
+            else:
+                self.mc.CMP_rr(l0.value, l1.value)
+        elif l0.is_vfp_reg():
+            assert l1.is_vfp_reg()
+            self.mc.VCMP(l0.value, l1.value)
+            self.mc.VMRS(cond=fcond)
         fcond = self._emit_guard(op, failargs, c.EQ)
         return fcond
 
@@ -783,7 +788,6 @@
             fielddescr = jd.vable_token_descr
             assert isinstance(fielddescr, BaseFieldDescr)
             ofs = fielddescr.offset
-            import pdb; pdb.set_trace()
             resloc = regalloc.force_allocate_reg(resbox)
             self.mov_loc_loc(arglocs[1], r.ip)
             self.mc.MOV_ri(resloc.value, 0)


More information about the Pypy-commit mailing list