Author: Armin Rigo <[email protected]>
Branch: arm64
Changeset: r96922:838a6988dd0e
Date: 2019-07-02 17:10 +0200
http://bitbucket.org/pypy/pypy/changeset/838a6988dd0e/

Log:    tweaks

diff --git a/rpython/jit/backend/aarch64/TODO b/rpython/jit/backend/aarch64/TODO
--- a/rpython/jit/backend/aarch64/TODO
+++ b/rpython/jit/backend/aarch64/TODO
@@ -14,6 +14,10 @@
 
 * use STP instead of STR in all long sequences of STR.  Same with LDR
 
+* use "STR xzr, [..]" instead of "gen_load_int(ip, 0); STR ip, [..]".
+  Search around for gen_load_int(...0): it occurs at least in pop_gcmap()
+  _build_failure_recovery(), build_frame_realloc_slowpath(), etc.
+
 
 * here's what gcc uses to acquire and release a lock, instead of mc.DMB
   in callbuilder.py.  It would make the control flow mess easier, too,
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
@@ -472,7 +472,10 @@
         register"""
         # XXX optimize!
         if value < 0:
-            self.gen_load_int_full(r, value)
+            if value < -65536:
+                self.gen_load_int_full(r, value)
+            else:
+                self.MOVN_r_u16(r, ~value)
             return
         self.MOVZ_r_u16(r, value & 0xFFFF, 0)
         value = value >> 16
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to