Author: Richard Plangger <[email protected]>
Branch: s390x-backend
Changeset: r80735:a26c3ac249bd
Date: 2015-11-18 08:11 +0100
http://bitbucket.org/pypy/pypy/changeset/a26c3ac249bd/
Log: fixed test that called renamed method on the pool object, guard now
compare to zero if condition code is not set
diff --git a/rpython/jit/backend/test/runner_test.py
b/rpython/jit/backend/test/runner_test.py
--- a/rpython/jit/backend/test/runner_test.py
+++ b/rpython/jit/backend/test/runner_test.py
@@ -211,7 +211,7 @@
if hasattr(looptoken, '_ppc_ops_offset'):
del looptoken._ppc_ops_offset # else it's kept alive
if hasattr(looptoken, '_zarch_ops_offset'):
- del looptoken._ppc_ops_offset # else it's kept alive
+ del looptoken._zarch_ops_offset # else it's kept alive
del loop
gc.collect()
assert not wr_i1() and not wr_guard()
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
@@ -6,6 +6,7 @@
from rpython.rtyper.lltypesystem import lltype, rffi, llmemory
from rpython.jit.backend.zarch.arch import (WORD,
RECOVERY_GCMAP_POOL_OFFSET, RECOVERY_TARGET_POOL_OFFSET)
+from rpython.rlib.longlong2float import float2longlong
class LiteralPool(object):
def __init__(self):
@@ -55,22 +56,23 @@
def get_descr_offset(self, descr):
return self.offset_map[descr]
+ def get_offset(self, box):
+ return self.offset_map[box]
+
def reserve_literal(self, size):
self.size += size
- print "resized to", self.size, "(+",size,")"
def reset(self):
self.pool_start = 0
self.label_offset = 0
self.size = 0
- self.offset_map.clear()
+ self.offset_map = {}
self.constant_64_zeros = -1
self.constant_64_ones = -1
self.constant_64_sign_bit = -1
self.constant_max_64_positive -1
def pre_assemble(self, asm, operations, bridge=False):
- self.reset()
# O(len(operations)). I do not think there is a way
# around this.
#
@@ -117,7 +119,6 @@
def overwrite_64(self, mc, index, value):
index += self.pool_start
- print("value", hex(value), "at", index - self.pool_start)
mc.overwrite(index, chr(value >> 56 & 0xff))
mc.overwrite(index+1, chr(value >> 48 & 0xff))
mc.overwrite(index+2, chr(value >> 40 & 0xff))
@@ -151,3 +152,4 @@
ptr = rffi.cast(lltype.Signed, guard_token.gcmap)
self.overwrite_64(mc, offset + RECOVERY_GCMAP_POOL_OFFSET, ptr)
+ self.reset()
diff --git a/rpython/jit/backend/zarch/regalloc.py
b/rpython/jit/backend/zarch/regalloc.py
--- a/rpython/jit/backend/zarch/regalloc.py
+++ b/rpython/jit/backend/zarch/regalloc.py
@@ -74,12 +74,11 @@
return r.f1
def place_in_pool(self, var):
- offset = self.assembler.pool.place(var)
+ offset = self.assembler.pool.get_offset(var)
return l.pool(offset, r.POOL)
def ensure_reg(self, box):
if isinstance(box, Const):
- # TODO, allocate in a register or just load it straight from pool?
return self.place_in_pool(box)
else:
assert box in self.temp_boxes
@@ -659,7 +658,6 @@
def load_condition_into_cc(self, box):
if self.assembler.guard_success_cc == c.cond_none:
- xxx
loc = self.ensure_reg(box)
mc = self.assembler.mc
mc.cmp_op(loc, l.imm(0), imm=True)
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit