[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