Author: Armin Rigo <ar...@tunes.org>
Branch: arm-longlong
Changeset: r73252:31554946e159
Date: 2014-08-31 23:30 +0300
http://bitbucket.org/pypy/pypy/changeset/31554946e159/

Log:    Test and fix

diff --git a/rpython/jit/backend/arm/callbuilder.py 
b/rpython/jit/backend/arm/callbuilder.py
--- a/rpython/jit/backend/arm/callbuilder.py
+++ b/rpython/jit/backend/arm/callbuilder.py
@@ -280,6 +280,7 @@
             # 64bit double
             i = max(self.next_arg_vfp, (self.next_arg_svfp + 1) >> 1)
             if i >= len(r.vfp_argument_regs):
+                self.next_arg_svfp = 1000    # stop that sequence too
                 return None
             self.next_arg_vfp = i + 1
             return r.vfp_argument_regs[i]
diff --git a/rpython/jit/backend/arm/test/test_callbuilder.py 
b/rpython/jit/backend/arm/test/test_callbuilder.py
--- a/rpython/jit/backend/arm/test/test_callbuilder.py
+++ b/rpython/jit/backend/arm/test/test_callbuilder.py
@@ -32,3 +32,16 @@
                    r.s12, r.d7,
                    r.s13, None,
                    None,  None]
+
+def test_hf_vfp_registers_mixture_2():
+    hf = HardFloatCallBuilder.__new__(HardFloatCallBuilder)
+    got = [hf.get_next_vfp('f'), hf.get_next_vfp('f'),
+           hf.get_next_vfp('f'), hf.get_next_vfp('f'),
+           hf.get_next_vfp('f'), hf.get_next_vfp('f'),
+           hf.get_next_vfp('f'), hf.get_next_vfp('S'),
+           hf.get_next_vfp('f'), hf.get_next_vfp('S')]
+    assert got == [r.d0, r.d1,
+                   r.d2, r.d3,
+                   r.d4, r.d5,
+                   r.d6, r.s14,
+                   None, None]    # <- and not r.s15 for the last item
_______________________________________________
pypy-commit mailing list
pypy-commit@python.org
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to