Author: Maciej Fijalkowski <[email protected]>
Branch: arm64
Changeset: r96822:9453a6ab3fe2
Date: 2019-06-18 14:57 +0000
http://bitbucket.org/pypy/pypy/changeset/9453a6ab3fe2/

Log:    casts

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
@@ -199,6 +199,14 @@
         base = 0b0001111001100000110000
         self.write32((base << 10) | (rn << 5) | rd)
 
+    def FCVTZS_d(self, rd, rn):
+        base = 0b1001111001111000
+        self.write32((base << 16) | (rn << 5) | rd)
+
+    def SCVTF_r(self, rd, rn):
+        base = 0b1001111001100010
+        self.write32((base << 16) | (rn << 5) | rd)
+
     def SUB_rr(self, rd, rn, rm, s=0):
         base = 0b11001011001 | (s << 8)
         self.write32((base << 21) | (rm << 16) | (0b11 << 13) | (rn << 5) | 
(rd))
diff --git a/rpython/jit/backend/aarch64/opassembler.py 
b/rpython/jit/backend/aarch64/opassembler.py
--- a/rpython/jit/backend/aarch64/opassembler.py
+++ b/rpython/jit/backend/aarch64/opassembler.py
@@ -253,6 +253,14 @@
         arg, res = arglocs
         self.mc.FABS_d(res.value, arg.value)        
 
+    def emit_op_cast_float_to_int(self, op, arglocs):
+        arg, res = arglocs
+        self.mc.FCVTZS_d(res.value, arg.value)
+
+    def emit_op_cast_int_to_float(self, op, arglocs):
+        arg, res = arglocs
+        self.mc.SCVTF_r(res.value, arg.value)
+
     def emit_op_load_from_gc_table(self, op, arglocs):
         res_loc, = arglocs
         index = op.getarg(0).getint()
diff --git a/rpython/jit/backend/aarch64/regalloc.py 
b/rpython/jit/backend/aarch64/regalloc.py
--- a/rpython/jit/backend/aarch64/regalloc.py
+++ b/rpython/jit/backend/aarch64/regalloc.py
@@ -464,6 +464,9 @@
 
     prepare_op_float_neg = prepare_unary
     prepare_op_float_abs = prepare_unary
+    prepare_op_cast_float_to_int = prepare_unary
+    prepare_op_cast_int_to_float = prepare_unary
+
 
     # --------------------------------- fields --------------------------
 
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to