[pypy-commit] pypy arm64: same as
fijal
pypy.commits at gmail.com
Wed May 15 06:32:35 EDT 2019
Author: Maciej Fijalkowski <fijall at gmail.com>
Branch: arm64
Changeset: r96617:4ba2f313407e
Date: 2019-05-15 10:31 +0000
http://bitbucket.org/pypy/pypy/changeset/4ba2f313407e/
Log: same as
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
@@ -157,6 +157,17 @@
self.mc.ADD_ri(value_loc.value, value_loc.value, 1)
self.mc.STR_ri(value_loc.value, base_loc.value, 0)
+ def _genop_same_as(self, op, arglocs):
+ argloc, resloc = arglocs
+ if argloc is not resloc:
+ self.mov_loc_loc(argloc, resloc)
+
+ emit_op_same_as_i = _genop_same_as
+ emit_op_same_as_r = _genop_same_as
+ emit_op_same_as_f = _genop_same_as
+ emit_op_cast_ptr_to_int = _genop_same_as
+ emit_op_cast_int_to_ptr = _genop_same_as
+
# -------------------------------- fields -------------------------------
def emit_op_gc_store(self, op, arglocs):
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
@@ -675,6 +675,24 @@
prepare_op_nursery_ptr_increment = prepare_op_int_add
prepare_comp_op_int_add_ovf = prepare_int_ri
+ def _prepare_op_same_as(self, op):
+ arg = op.getarg(0)
+ imm_arg = check_imm_box(arg)
+ if imm_arg:
+ argloc = self.convert_to_imm(arg)
+ else:
+ argloc = self.make_sure_var_in_reg(arg)
+ self.possibly_free_vars_for_op(op)
+ self.free_temp_vars()
+ resloc = self.force_allocate_reg(op)
+ return [argloc, resloc]
+
+ prepare_op_cast_ptr_to_int = _prepare_op_same_as
+ prepare_op_cast_int_to_ptr = _prepare_op_same_as
+ prepare_op_same_as_i = _prepare_op_same_as
+ prepare_op_same_as_r = _prepare_op_same_as
+ prepare_op_same_as_f = _prepare_op_same_as
+
def prepare_op_jump(self, op):
assert self.jump_target_descr is None
descr = op.getdescr()
More information about the pypy-commit
mailing list