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