Author: Maciej Fijalkowski <[email protected]>
Branch: arm64
Changeset: r96858:a524391486ad
Date: 2019-06-25 11:32 +0000
http://bitbucket.org/pypy/pypy/changeset/a524391486ad/

Log:    Small changes from test_random

diff --git a/rpython/jit/backend/aarch64/assembler.py 
b/rpython/jit/backend/aarch64/assembler.py
--- a/rpython/jit/backend/aarch64/assembler.py
+++ b/rpython/jit/backend/aarch64/assembler.py
@@ -940,8 +940,12 @@
             assert False, "wrong loc"
 
     def _mov_vfp_reg_to_loc(self, prev_loc, loc):
-        assert loc.is_stack()
-        self.mc.STR_di(prev_loc.value, r.fp.value, loc.value)
+        if loc.is_stack():
+            self.mc.STR_di(prev_loc.value, r.fp.value, loc.value)
+        elif loc.is_vfp_reg():
+            self.mc.MOV_dd(prev_loc.value, loc.value)
+        else:
+            assert False, "wrong loc"
 
     def push_locations(self, locs):
         if not locs:
diff --git a/rpython/jit/backend/aarch64/codebuilder.py 
b/rpython/jit/backend/aarch64/codebuilder.py
--- a/rpython/jit/backend/aarch64/codebuilder.py
+++ b/rpython/jit/backend/aarch64/codebuilder.py
@@ -72,6 +72,11 @@
     def MOV_rr(self, rd, rn):
         self.ORR_rr(rd, r.xzr.value, rn)
 
+    def MOV_dd(self, rd, rn):
+        base = 0b00001110101
+        self.write32((base << 21) | (rn << 16) | (0b000111 << 10) | (rn << 5) |
+                     rd)
+
     def UMOV_rd(self, rd, rn):
         base = 0b0100111000001000001111
         self.write32((base << 10) | (rn << 5) | rd)
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to