[pypy-commit] pypy arm64: I think fix the loading of TID
fijal
pypy.commits at gmail.com
Thu Jul 4 04:01:08 EDT 2019
Author: fijal
Branch: arm64
Changeset: r96944:ba8b89938369
Date: 2019-07-04 10:00 +0200
http://bitbucket.org/pypy/pypy/changeset/ba8b89938369/
Log: I think fix the loading of TID
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
@@ -594,7 +594,7 @@
# Note that the typeid half-word is at offset 0 on a little-endian
# machine; it would be at offset 2 or 4 on a big-endian machine.
assert self.cpu.supports_guard_gc_type
- self.mc.LDRH_ri(r.ip0.value, loc_ptr.value, 0)
+ self.mc.LDR_uint32_ri(r.ip0.value, loc_ptr.value, 0)
self.mc.gen_load_int(r.ip1.value, expected_typeid)
self.mc.CMP_rr(r.ip0.value, r.ip1.value)
@@ -629,7 +629,7 @@
loc_object = arglocs[0]
# idea: read the typeid, fetch one byte of the field 'infobits' from
# the big typeinfo table, and check the flag 'T_IS_RPYTHON_INSTANCE'.
- self.mc.LDRH_ri(r.ip0.value, loc_object.value, 0)
+ self.mc.LDR_uint32_ri(r.ip0.value, loc_object.value, 0)
#
base_type_info, shift_by, sizeof_ti = (
@@ -658,7 +658,7 @@
self.mc.LDR_ri(r.ip0.value, r.ip0.value, offset2)
else:
# read the typeid
- self.mc.LDRH_ri(r.ip0.value, loc_object.value, 0)
+ self.mc.LDR_uint32_ri(r.ip0.value, loc_object.value, 0)
# read the vtable's subclassrange_min field, as a single
# step with the correct offset
base_type_info, shift_by, sizeof_ti = (
More information about the pypy-commit
mailing list