[pypy-svn] pypy arm-backed-float: change the float comparisson operations a bit, because transfering the condition flags from the vfp to the core processor flags changes slighlty the meaning of the condition codes

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


Author: David Schneider <david.schneider at picle.org>
Branch: arm-backed-float
Changeset: r43088:32b4f23cc658
Date: 2011-04-01 16:04 +0200
http://bitbucket.org/pypy/pypy/changeset/32b4f23cc658/

Log:	change the float comparisson operations a bit, because transfering
	the condition flags from the vfp to the core processor flags changes
	slighlty the meaning of the condition codes

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
@@ -898,8 +898,8 @@
     emit_op_float_neg = gen_emit_unary_float_op('VNEG')
     emit_op_float_abs = gen_emit_unary_float_op('VABS')
 
-    emit_op_float_lt = gen_emit_float_cmp_op(c.LT)
-    emit_op_float_le = gen_emit_float_cmp_op(c.LE)
+    emit_op_float_lt = gen_emit_float_cmp_op(c.VFP_LT)
+    emit_op_float_le = gen_emit_float_cmp_op(c.VFP_LE)
     emit_op_float_eq = gen_emit_float_cmp_op(c.EQ)
     emit_op_float_ne = gen_emit_float_cmp_op(c.NE)
     emit_op_float_gt = gen_emit_float_cmp_op(c.GT)

diff --git a/pypy/jit/backend/arm/conditions.py b/pypy/jit/backend/arm/conditions.py
--- a/pypy/jit/backend/arm/conditions.py
+++ b/pypy/jit/backend/arm/conditions.py
@@ -18,3 +18,7 @@
 def get_opposite_of(operation):
     return opposites[operation]
 
+# see mapping for floating poin according to 
+# http://blogs.arm.com/software-enablement/405-condition-codes-4-floating-point-comparisons-using-vfp/
+VFP_LT = CC
+VFP_LE = LS


More information about the Pypy-commit mailing list