Author: Richard Plangger <[email protected]>
Branch: s390x-backend
Changeset: r81878:1dcc4c9a8961
Date: 2016-01-20 14:17 +0100
http://bitbucket.org/pypy/pypy/changeset/1dcc4c9a8961/
Log: did not write pool entires to the right location
diff --git a/rpython/jit/backend/zarch/assembler.py
b/rpython/jit/backend/zarch/assembler.py
--- a/rpython/jit/backend/zarch/assembler.py
+++ b/rpython/jit/backend/zarch/assembler.py
@@ -1181,7 +1181,7 @@
self.mc.b_offset(descr._ll_loop_code + self.mc.LARL_byte_count)
else:
# restore the pool address
- offset = self.pool.get_offset(descr) + \
+ offset = self.pool.get_descr_offset(descr) + \
JUMPABS_TARGET_ADDR__POOL_OFFSET
offset_pool = offset + JUMPABS_POOL_ADDR_POOL_OFFSET
self.mc.LG(r.SCRATCH, l.pool(offset))
diff --git a/rpython/jit/backend/zarch/pool.py
b/rpython/jit/backend/zarch/pool.py
--- a/rpython/jit/backend/zarch/pool.py
+++ b/rpython/jit/backend/zarch/pool.py
@@ -92,6 +92,9 @@
if arg.is_constant():
self.reserve_literal(8, arg)
+ def get_descr_offset(self, descr):
+ return self.offset_descr[descr]
+
def get_offset(self, box):
assert box.is_constant()
uvalue = self.unique_value(box)
@@ -171,18 +174,17 @@
if self.constant_64_zeros != -1:
self.constant_64_zeros = self.ensure_value(0x0)
if self.constant_64_sign_bit != -1:
- self.constant_64_zeros = self.ensure_value(-2**63) # ==
0x8000000000000000
+ self.constant_64_sign_bit = self.ensure_value(-2**63) # ==
0x8000000000000000
if self.constant_max_64_positive != -1:
self.constant_max_64_positive =
self.ensure_value(0x7fffFFFFffffFFFF)
+ asm.mc.write('\x00' * self.size)
wrote = 0
for val, offset in self.offset_map.items():
if not we_are_translated():
print('pool: %s at offset: %d' % (val, offset))
- asm.mc.write_i64(val)
+ self.overwrite_64(asm.mc, offset, val)
wrote += 8
- self.offset_map = {}
# for the descriptors
- asm.mc.write('\x00' * (self.size - wrote))
if not we_are_translated():
print "pool with %d quad words" % (self.size // 8)
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit