Author: Armin Rigo <[email protected]>
Branch: asmmemmgr-for-code-only
Changeset: r86251:940d3c45a1c5
Date: 2016-08-17 17:32 +0200
http://bitbucket.org/pypy/pypy/changeset/940d3c45a1c5/
Log: fixes
diff --git a/rpython/jit/backend/llsupport/asmmemmgr.py
b/rpython/jit/backend/llsupport/asmmemmgr.py
--- a/rpython/jit/backend/llsupport/asmmemmgr.py
+++ b/rpython/jit/backend/llsupport/asmmemmgr.py
@@ -275,9 +275,7 @@
size = self.get_relative_pos()
align = self.ALIGN_MATERIALIZE
size = (size + align - 1) & ~(align - 1) # round up
- malloced = cpu.asmmemmgr.malloc_code(size)
- rawstart = malloced[0]
- rawstop = malloced[1]
+ rawstart, rawstop = cpu.asmmemmgr.malloc_code(size)
assert (rawstart & (align - 1)) == 0, (
"malloc_code() not aligned to a multiple of ALIGN_MATERIALIZE")
assert (rawstart & 1) == 0
diff --git a/rpython/jit/backend/x86/assembler.py
b/rpython/jit/backend/x86/assembler.py
--- a/rpython/jit/backend/x86/assembler.py
+++ b/rpython/jit/backend/x86/assembler.py
@@ -507,7 +507,7 @@
self.write_pending_failure_recoveries(regalloc)
full_size = self.mc.get_relative_pos()
#
- rawstart = self.materialize_loop(looptoken)
+ rawstart = self.materialize_loop()
self.patch_gcref_table(looptoken, rawstart)
self.patch_stack_checks(frame_depth_no_fixed_size +
JITFRAME_FIXED_SIZE,
rawstart)
@@ -588,7 +588,7 @@
self.write_pending_failure_recoveries(regalloc)
fullsize = self.mc.get_relative_pos()
#
- rawstart = self.materialize_loop(original_loop_token)
+ rawstart = self.materialize_loop()
self.patch_gcref_table(original_loop_token, rawstart)
self.patch_stack_checks(frame_depth_no_fixed_size +
JITFRAME_FIXED_SIZE,
rawstart)
@@ -642,6 +642,7 @@
assert isinstance(faildescr, ResumeGuardDescr)
assert asminfo.rawstart != 0
self.mc = codebuf.MachineCodeBlockWrapper()
+ self.allblocks = self.get_asmmemmgr_blocks(looptoken)
frame_info = self.malloc_aligned(jitframe.JITFRAMEINFO_SIZE)
self.mc.force_frame_size(DEFAULT_FRAME_BYTES)
@@ -676,11 +677,12 @@
self.mc.JMP_l(0)
self.mc.writeimm32(0)
self.mc.force_frame_size(DEFAULT_FRAME_BYTES)
- rawstart = self.materialize_loop(looptoken)
+ rawstart = self.materialize_loop()
# update the jump (above) to the real trace
self._patch_jump_to(rawstart + offset, asminfo.rawstart)
# update the guard to jump right to this custom piece of assembler
self.patch_jump_for_descr(faildescr, rawstart)
+ self.allblocks = None
def _patch_jump_to(self, adr_jump_offset, adr_new_target):
assert adr_jump_offset != 0
@@ -843,7 +845,7 @@
mc.writeimm32(allocated_depth)
mc.copy_to_raw_memory(adr)
- def materialize_loop(self, looptoken):
+ def materialize_loop(self):
size = self.mc.get_relative_pos()
res = self.mc.materialize(self.cpu, self.allblocks,
self.cpu.gc_ll_descr.gcrootmap)
diff --git a/rpython/jit/backend/x86/test/test_x86vector.py
b/rpython/jit/backend/x86/test/test_x86vector.py
--- a/rpython/jit/backend/x86/test/test_x86vector.py
+++ b/rpython/jit/backend/x86/test/test_x86vector.py
@@ -31,7 +31,7 @@
class TestAssembler(BaseTestAssembler):
def imm_4_int32(self, a, b, c, d):
- adr = self.xrm.assembler.datablockwrapper.malloc_aligned(16, 16)
+ adr = self.xrm.assembler.malloc_aligned(16, 16)
ptr = rffi.cast(rffi.CArrayPtr(rffi.INT), adr)
ptr[0] = rffi.r_int(a)
ptr[1] = rffi.r_int(b)
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit