Author: Antonio Cuni <[email protected]>
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@PLT
+       /* GCROOT 0(%rsp) */
+       popq    %rdi
        .cfi_def_cfa_offset 8
-    ret
+       ret
        .cfi_endproc
        .size   pypy_execute_frame_trampoline, .-pypy_execute_frame_trampoline
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to