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

Reply via email to