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