[pypy-commit] pypy vmprof: (arigo, antocuni): 1) we need to put TABs instead of spaces, else trackgcroots gets confused; 2) use a normal call but use @PLT, instead of movabs+call *%rax; tell asmgcc that the frame we push is a GCROOT

antocuni noreply at buildbot.pypy.org
Sat Oct 25 16:03:39 CEST 2014


Author: Antonio Cuni <anto.cuni at gmail.com>
Branch: vmprof
Changeset: r74213:836ddd6ad747
Date: 2014-10-25 14:20 +0100
http://bitbucket.org/pypy/pypy/changeset/836ddd6ad747/

Log:	(arigo, antocuni): 1) we need to put TABs instead of spaces, else
	trackgcroots gets confused; 2) use a normal call but use @PLT,
	instead of movabs+call *%rax; tell asmgcc that the frame we push is
	a GCROOT

diff --git a/pypy/module/_vmprof/src/trampoline.s b/pypy/module/_vmprof/src/trampoline.s
--- a/pypy/module/_vmprof/src/trampoline.s
+++ b/pypy/module/_vmprof/src/trampoline.s
@@ -1,15 +1,17 @@
+// NOTE: you need to use TABs, not spaces!
+        
 	.text
-    .p2align 4,,-1
+	.p2align 4,,-1
 	.globl	pypy_execute_frame_trampoline
 	.type	pypy_execute_frame_trampoline, @function
 pypy_execute_frame_trampoline:
 	.cfi_startproc
-    pushq   %rdi
+	pushq	%rdi
 	.cfi_def_cfa_offset 16
-    movabs  $pypy_pyframe_execute_frame, %rax
-	callq	*%rax
-    popq    %rdi
+	call pypy_pyframe_execute_frame at PLT
+	/* GCROOT 0(%rsp) */
+	popq	%rdi
 	.cfi_def_cfa_offset 8
-    ret
+	ret
 	.cfi_endproc
 	.size	pypy_execute_frame_trampoline, .-pypy_execute_frame_trampoline


More information about the pypy-commit mailing list