[pypy-commit] pypy branch-prediction: malloc_cond_varsize_frame
arigo
pypy.commits at gmail.com
Thu Apr 6 10:45:57 EDT 2017
Author: Armin Rigo <arigo at tunes.org>
Branch: branch-prediction
Changeset: r90990:e3f48fca698e
Date: 2017-04-06 16:30 +0200
http://bitbucket.org/pypy/pypy/changeset/e3f48fca698e/
Log: malloc_cond_varsize_frame
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
@@ -2508,13 +2508,11 @@
else:
self.mc.LEA_ra(edx.value, (ecx.value, sizeloc.value, 0, 0))
self.mc.CMP(edx, heap(nursery_top_adr))
- # PPP FIX ME
- jna_location = self.mc.emit_forward_jump('NA') # patched later
- # save the gcmap
- self.push_gcmap(self.mc, gcmap, store=True)
- self.mc.CALL(imm(follow_jump(self.malloc_slowpath)))
- self.mc.patch_forward_jump(jna_location)
+ sp = self.MallocCondSlowPath(self.mc, rx86.Conditions['A'])
+ sp.gcmap = gcmap
self.mc.MOV(heap(nursery_free_adr), edx)
+ sp.set_continue_addr(self.mc)
+ self.pending_slowpaths.append(sp)
def malloc_cond_varsize(self, kind, nursery_free_adr, nursery_top_adr,
lengthloc, itemsize, maxlength, gcmap,
More information about the pypy-commit
mailing list