[pypy-svn] r78399 - in pypy/trunk/pypy/translator/c/gcc: . test/darwin64
afa at codespeak.net
afa at codespeak.net
Thu Oct 28 15:15:38 CEST 2010
Author: afa
Date: Thu Oct 28 15:15:36 2010
New Revision: 78399
Added:
pypy/trunk/pypy/translator/c/gcc/test/darwin64/track1.s
Modified:
pypy/trunk/pypy/translator/c/gcc/trackgcroot.py
Log:
On darwin 64bit, fix pattern to recognise items of table-based switches
Added: pypy/trunk/pypy/translator/c/gcc/test/darwin64/track1.s
==============================================================================
--- (empty file)
+++ pypy/trunk/pypy/translator/c/gcc/test/darwin64/track1.s Thu Oct 28 15:15:36 2010
@@ -0,0 +1,785 @@
+_pypy_g_PyObject_RichCompare:
+LFB302:
+ movq %rbx, -48(%rsp)
+LCFI297:
+ movq %rbp, -40(%rsp)
+LCFI298:
+ movq %r12, -32(%rsp)
+LCFI299:
+ movq %r13, -24(%rsp)
+LCFI300:
+ movq %r14, -16(%rsp)
+LCFI301:
+ movq %r15, -8(%rsp)
+LCFI302:
+ subq $88, %rsp
+LCFI303:
+ movq %rdi, %rbx
+ movq %rsi, %rbp
+L970:
+ cmpl $5, %edx
+ jbe L1056
+L971:
+ movq _pypy_g_pypy_rpython_memory_gc_minimark_MiniMarkGC at GOTPCREL(%rip), %rdi
+ movq 16(%rdi), %rdx
+ leaq 16(%rdx), %rax
+ movq %rax, 16(%rdi)
+ cmpq 24(%rdi), %rax
+ ja L1034
+ movq %rdx, %rbx
+ movq _pypy_g_ExcData at GOTPCREL(%rip), %r11
+L1036:
+ movq $61224, (%rbx)
+ movq $0, 8(%rdx)
+L1037:
+ movq %r11, (%rsp)
+ call _pypy_g_PyErr_BadInternalCall
+ ;; expected {88(%rsp) | 40(%rsp), 56(%rsp), 64(%rsp), 72(%rsp), 80(%rsp), 48(%rsp) | %rbx}
+ movq ___gcmapend at GOTPCREL(%rip), %rax
+ /* GCROOT %rbx */
+ movq (%rsp), %r11
+ movq (%r11), %rbp
+ testq %rbp, %rbp
+ je L1057
+L1038:
+ movq 8(%r11), %r12
+ movq _pypydtcount at GOTPCREL(%rip), %r10
+ movl (%r10), %eax
+ movq _pypy_debug_tracebacks at GOTPCREL(%rip), %r9
+ movslq %eax,%rdx
+ salq $4, %rdx
+ leaq _loc.235055(%rip), %rcx
+ movq %rcx, (%rdx,%r9)
+ movq %rbp, 8(%rdx,%r9)
+ incl %eax
+ andl $127, %eax
+ movl %eax, (%r10)
+ movq _pypy_g_typeinfo at GOTPCREL(%rip), %r8
+ leaq 59688(%r8), %rax
+ cmpq %rax, %rbp
+ je L1040
+ leaq 59544(%r8), %rax
+ cmpq %rax, %rbp
+ je L1040
+L1042:
+ movq $0, 8(%r11)
+ movq $0, (%r11)
+ /* keepalive %r12 */
+ /* keepalive %rbx */
+L1043:
+L1044:
+ /* GC_NOCOLLECT pypy_g_ll_issubclass */
+L1046:
+L1047:
+ /* keepalive %rbx */
+ cmpq $0, 8(%rbx)
+ jle L1048
+L1049:
+ /* keepalive %rbx */
+L1050:
+ leaq 59688(%r8), %rcx
+ movq %rcx, (%r11)
+ movq _pypy_g_exceptions_AssertionError_6 at GOTPCREL(%rip), %rax
+ movq %rax, 8(%r11)
+ movl (%r10), %edx
+ movslq %edx,%rax
+ salq $4, %rax
+ movq $0, (%rax,%r9)
+ movq %rcx, 8(%rax,%r9)
+ incl %edx
+ andl $127, %edx
+ /* GC_NOCOLLECT pypy_g_RPyRaiseException */
+ movslq %edx,%rax
+ salq $4, %rax
+ leaq _loc.235061(%rip), %rbx
+ movq %rbx, (%rax,%r9)
+ movq $0, 8(%rax,%r9)
+ incl %edx
+ andl $127, %edx
+ movl %edx, (%r10)
+ xorl %eax, %eax
+ .align 4,0x90
+L981:
+ movq 40(%rsp), %rbx
+ movq 48(%rsp), %rbp
+ movq 56(%rsp), %r12
+ movq 64(%rsp), %r13
+ movq 72(%rsp), %r14
+ movq 80(%rsp), %r15
+ addq $88, %rsp
+ ret
+ .align 4,0x90
+L1056:
+ mov %edx, %eax
+ leaq L978(%rip), %rdx
+ movslq (%rdx,%rax,4),%rax
+ addq %rdx, %rax
+ jmp *%rax
+ .align 2,0x90
+L978:
+ .long L972-L978
+ .long L973-L978
+ .long L974-L978
+ .long L975-L978
+ .long L976-L978
+ .long L977-L978
+L972:
+ /* keepalive %rdi */
+ /* keepalive %rsi */
+ call _pypy_g___mm_lt_0_perform_call
+ ;; expected {88(%rsp) | 40(%rsp), 56(%rsp), 64(%rsp), 72(%rsp), 80(%rsp), 48(%rsp) | %rbx, %rbp}
+ movq ___gcmapend at GOTPCREL(%rip), %rdx
+ movq %rbx, %r15
+ /* GCROOT %r15 */
+ movq %rbp, %r14
+ /* GCROOT %r14 */
+ movq %rbx, %r12
+ /* GCROOT %r12 */
+ /* GCROOT %rbp */
+ movq _pypy_g_ExcData at GOTPCREL(%rip), %r11
+ movq (%r11), %rbx
+ testq %rbx, %rbx
+ je L981
+L979:
+ movq 8(%r11), %r13
+ movq _pypydtcount at GOTPCREL(%rip), %r10
+ movl (%r10), %eax
+ movq _pypy_debug_tracebacks at GOTPCREL(%rip), %r9
+ movslq %eax,%rdx
+ salq $4, %rdx
+ leaq _loc.234970(%rip), %rcx
+ movq %rcx, (%rdx,%r9)
+ movq %rbx, 8(%rdx,%r9)
+ incl %eax
+ andl $127, %eax
+ movl %eax, (%r10)
+ movq _pypy_g_typeinfo at GOTPCREL(%rip), %r8
+ leaq 59688(%r8), %rax
+ cmpq %rax, %rbx
+ je L982
+ leaq 59544(%r8), %rax
+ cmpq %rax, %rbx
+ je L982
+L984:
+ movq $0, 8(%r11)
+ movq $0, (%r11)
+ /* keepalive %r13 */
+ /* keepalive %r15 */
+ /* keepalive %r14 */
+ /* keepalive %r12 */
+ /* keepalive %rbp */
+L985:
+ movq 1712(%r8), %rcx
+ movq (%rbx), %rdx
+ subq %rcx, %rdx
+ movq 1720(%r8), %rax
+L986:
+ /* GC_NOCOLLECT pypy_g_ll_issubclass */
+ subq %rcx, %rax
+ cmpq %rax, %rdx
+ jae L1058
+L987:
+ /* keepalive %r12 */
+ /* keepalive %rbp */
+ movq %rbp, %rsi
+ movq %r12, %rdi
+ movq 40(%rsp), %rbx
+ movq 48(%rsp), %rbp
+ movq 56(%rsp), %r12
+ movq 64(%rsp), %r13
+ movq 72(%rsp), %r14
+ movq 80(%rsp), %r15
+ addq $88, %rsp
+ jmp _pypy_g_comparison_lt_impl
+L973:
+ /* keepalive %rdi */
+ /* keepalive %rsi */
+ call _pypy_g___mm_le_0_perform_call
+ ;; expected {88(%rsp) | 40(%rsp), 56(%rsp), 64(%rsp), 72(%rsp), 80(%rsp), 48(%rsp) | %rbx, %rbp}
+ movq ___gcmapend at GOTPCREL(%rip), %rdx
+ movq %rbx, %r15
+ /* GCROOT %r15 */
+ movq %rbp, %r14
+ /* GCROOT %r14 */
+ movq %rbx, %r12
+ /* GCROOT %r12 */
+ /* GCROOT %rbp */
+ movq _pypy_g_ExcData at GOTPCREL(%rip), %r11
+ movq (%r11), %rbx
+ testq %rbx, %rbx
+ je L981
+L989:
+ movq 8(%r11), %r13
+ movq _pypydtcount at GOTPCREL(%rip), %r10
+ movl (%r10), %eax
+ movq _pypy_debug_tracebacks at GOTPCREL(%rip), %r9
+ movslq %eax,%rdx
+ salq $4, %rdx
+ leaq _loc.234982(%rip), %rcx
+ movq %rcx, (%rdx,%r9)
+ movq %rbx, 8(%rdx,%r9)
+ incl %eax
+ andl $127, %eax
+ movl %eax, (%r10)
+ movq _pypy_g_typeinfo at GOTPCREL(%rip), %r8
+ leaq 59688(%r8), %rax
+ cmpq %rax, %rbx
+ je L991
+ leaq 59544(%r8), %rax
+ cmpq %rax, %rbx
+ je L991
+L993:
+ movq $0, 8(%r11)
+ movq $0, (%r11)
+ /* keepalive %r13 */
+ /* keepalive %r15 */
+ /* keepalive %r14 */
+ /* keepalive %r12 */
+ /* keepalive %rbp */
+L994:
+ movq 1712(%r8), %rcx
+ movq (%rbx), %rdx
+ subq %rcx, %rdx
+ movq 1720(%r8), %rax
+L995:
+ /* GC_NOCOLLECT pypy_g_ll_issubclass */
+ subq %rcx, %rax
+ cmpq %rax, %rdx
+ jae L1059
+L996:
+ /* keepalive %r12 */
+ /* keepalive %rbp */
+ movq %rbp, %rsi
+ movq %r12, %rdi
+ movq 40(%rsp), %rbx
+ movq 48(%rsp), %rbp
+ movq 56(%rsp), %r12
+ movq 64(%rsp), %r13
+ movq 72(%rsp), %r14
+ movq 80(%rsp), %r15
+ addq $88, %rsp
+ jmp _pypy_g_comparison_le_impl
+L974:
+ /* keepalive %rdi */
+ /* keepalive %rsi */
+ call _pypy_g___mm_eq_0_perform_call
+ ;; expected {88(%rsp) | 40(%rsp), 56(%rsp), 64(%rsp), 72(%rsp), 80(%rsp), 48(%rsp) | %rbx, %rbp}
+ movq ___gcmapend at GOTPCREL(%rip), %rdx
+ movq %rbx, %r15
+ /* GCROOT %r15 */
+ movq %rbp, %r14
+ /* GCROOT %r14 */
+ movq %rbx, %r12
+ /* GCROOT %r12 */
+ /* GCROOT %rbp */
+ movq _pypy_g_ExcData at GOTPCREL(%rip), %r11
+ movq (%r11), %rbx
+ testq %rbx, %rbx
+ je L981
+L998:
+ movq 8(%r11), %r13
+ movq _pypydtcount at GOTPCREL(%rip), %r10
+ movl (%r10), %eax
+ movq _pypy_debug_tracebacks at GOTPCREL(%rip), %r9
+ movslq %eax,%rdx
+ salq $4, %rdx
+ leaq _loc.234994(%rip), %rcx
+ movq %rcx, (%rdx,%r9)
+ movq %rbx, 8(%rdx,%r9)
+ incl %eax
+ andl $127, %eax
+ movl %eax, (%r10)
+ movq _pypy_g_typeinfo at GOTPCREL(%rip), %r8
+ leaq 59688(%r8), %rax
+ cmpq %rax, %rbx
+ je L1000
+ leaq 59544(%r8), %rax
+ cmpq %rax, %rbx
+ je L1000
+L1002:
+ movq $0, 8(%r11)
+ movq $0, (%r11)
+ /* keepalive %r13 */
+ /* keepalive %r15 */
+ /* keepalive %r14 */
+ /* keepalive %rbp */
+ /* keepalive %r12 */
+L1003:
+ movq 1712(%r8), %rcx
+ movq (%rbx), %rdx
+ subq %rcx, %rdx
+ movq 1720(%r8), %rax
+L1004:
+ /* GC_NOCOLLECT pypy_g_ll_issubclass */
+ subq %rcx, %rax
+ cmpq %rax, %rdx
+ jae L1060
+L1005:
+ /* keepalive %r12 */
+ /* keepalive %rbp */
+ movq %rbp, %rsi
+ movq %r12, %rdi
+ movq 40(%rsp), %rbx
+ movq 48(%rsp), %rbp
+ movq 56(%rsp), %r12
+ movq 64(%rsp), %r13
+ movq 72(%rsp), %r14
+ movq 80(%rsp), %r15
+ addq $88, %rsp
+ jmp _pypy_g_comparison_eq_impl
+L975:
+ /* keepalive %rdi */
+ /* keepalive %rsi */
+ call _pypy_g___mm_ne_0_perform_call
+ ;; expected {88(%rsp) | 40(%rsp), 56(%rsp), 64(%rsp), 72(%rsp), 80(%rsp), 48(%rsp) | %rbx, %rbp}
+ movq ___gcmapend at GOTPCREL(%rip), %rdx
+ movq %rbx, %r15
+ /* GCROOT %r15 */
+ movq %rbp, %r14
+ /* GCROOT %r14 */
+ movq %rbx, %r12
+ /* GCROOT %r12 */
+ /* GCROOT %rbp */
+ movq _pypy_g_ExcData at GOTPCREL(%rip), %r11
+ movq (%r11), %rbx
+ testq %rbx, %rbx
+ je L981
+L1007:
+ movq 8(%r11), %r13
+ movq _pypydtcount at GOTPCREL(%rip), %r10
+ movl (%r10), %eax
+ movq _pypy_debug_tracebacks at GOTPCREL(%rip), %r9
+ movslq %eax,%rdx
+ salq $4, %rdx
+ leaq _loc.235006(%rip), %rcx
+ movq %rcx, (%rdx,%r9)
+ movq %rbx, 8(%rdx,%r9)
+ incl %eax
+ andl $127, %eax
+ movl %eax, (%r10)
+ movq _pypy_g_typeinfo at GOTPCREL(%rip), %r8
+ leaq 59688(%r8), %rax
+ cmpq %rax, %rbx
+ je L1009
+ leaq 59544(%r8), %rax
+ cmpq %rax, %rbx
+ je L1009
+L1011:
+ movq $0, 8(%r11)
+ movq $0, (%r11)
+ /* keepalive %r13 */
+ /* keepalive %r15 */
+ /* keepalive %r14 */
+ /* keepalive %r12 */
+ /* keepalive %rbp */
+L1012:
+ movq 1712(%r8), %rcx
+ movq (%rbx), %rdx
+ subq %rcx, %rdx
+ movq 1720(%r8), %rax
+L1013:
+ /* GC_NOCOLLECT pypy_g_ll_issubclass */
+ subq %rcx, %rax
+ cmpq %rax, %rdx
+ jae L1061
+L1014:
+ /* keepalive %r12 */
+ /* keepalive %rbp */
+ movq %rbp, %rsi
+ movq %r12, %rdi
+ movq 40(%rsp), %rbx
+ movq 48(%rsp), %rbp
+ movq 56(%rsp), %r12
+ movq 64(%rsp), %r13
+ movq 72(%rsp), %r14
+ movq 80(%rsp), %r15
+ addq $88, %rsp
+ jmp _pypy_g_comparison_ne_impl
+L976:
+ /* keepalive %rdi */
+ /* keepalive %rsi */
+ call _pypy_g___mm_gt_0_perform_call
+ ;; expected {88(%rsp) | 40(%rsp), 56(%rsp), 64(%rsp), 72(%rsp), 80(%rsp), 48(%rsp) | %rbx, %rbp}
+ movq ___gcmapend at GOTPCREL(%rip), %rdx
+ movq %rbx, %r15
+ /* GCROOT %r15 */
+ movq %rbp, %r14
+ /* GCROOT %r14 */
+ movq %rbx, %r12
+ /* GCROOT %r12 */
+ /* GCROOT %rbp */
+ movq _pypy_g_ExcData at GOTPCREL(%rip), %r11
+ movq (%r11), %rbx
+ testq %rbx, %rbx
+ je L981
+L1016:
+ movq 8(%r11), %r13
+ movq _pypydtcount at GOTPCREL(%rip), %r10
+ movl (%r10), %eax
+ movq _pypy_debug_tracebacks at GOTPCREL(%rip), %r9
+ movslq %eax,%rdx
+ salq $4, %rdx
+ leaq _loc.235018(%rip), %rcx
+ movq %rcx, (%rdx,%r9)
+ movq %rbx, 8(%rdx,%r9)
+ incl %eax
+ andl $127, %eax
+ movl %eax, (%r10)
+ movq _pypy_g_typeinfo at GOTPCREL(%rip), %r8
+ leaq 59688(%r8), %rax
+ cmpq %rax, %rbx
+ je L1018
+ leaq 59544(%r8), %rax
+ cmpq %rax, %rbx
+ je L1018
+L1020:
+ movq $0, 8(%r11)
+ movq $0, (%r11)
+ /* keepalive %r13 */
+ /* keepalive %r15 */
+ /* keepalive %r14 */
+ /* keepalive %rbp */
+ /* keepalive %r12 */
+L1021:
+ movq 1712(%r8), %rcx
+ movq (%rbx), %rdx
+ subq %rcx, %rdx
+ movq 1720(%r8), %rax
+L1022:
+ /* GC_NOCOLLECT pypy_g_ll_issubclass */
+ subq %rcx, %rax
+ cmpq %rax, %rdx
+ jae L1062
+L1023:
+ /* keepalive %r12 */
+ /* keepalive %rbp */
+ movq %rbp, %rsi
+ movq %r12, %rdi
+ movq 40(%rsp), %rbx
+ movq 48(%rsp), %rbp
+ movq 56(%rsp), %r12
+ movq 64(%rsp), %r13
+ movq 72(%rsp), %r14
+ movq 80(%rsp), %r15
+ addq $88, %rsp
+ jmp _pypy_g_comparison_gt_impl
+L977:
+ /* keepalive %rdi */
+ /* keepalive %rsi */
+ call _pypy_g___mm_ge_0_perform_call
+ ;; expected {88(%rsp) | 40(%rsp), 56(%rsp), 64(%rsp), 72(%rsp), 80(%rsp), 48(%rsp) | %rbx, %rbp}
+ movq ___gcmapend at GOTPCREL(%rip), %rdx
+ movq %rbx, %r15
+ /* GCROOT %r15 */
+ movq %rbp, %r14
+ /* GCROOT %r14 */
+ movq %rbx, %r12
+ /* GCROOT %r12 */
+ /* GCROOT %rbp */
+ movq _pypy_g_ExcData at GOTPCREL(%rip), %r11
+ movq (%r11), %rbx
+ testq %rbx, %rbx
+ je L981
+L1025:
+ movq 8(%r11), %r13
+ movq _pypydtcount at GOTPCREL(%rip), %r10
+ movl (%r10), %eax
+ movq _pypy_debug_tracebacks at GOTPCREL(%rip), %r9
+ movslq %eax,%rdx
+ salq $4, %rdx
+ leaq _loc.235030(%rip), %rcx
+ movq %rcx, (%rdx,%r9)
+ movq %rbx, 8(%rdx,%r9)
+ incl %eax
+ andl $127, %eax
+ movl %eax, (%r10)
+ movq _pypy_g_typeinfo at GOTPCREL(%rip), %r8
+ leaq 59688(%r8), %rax
+ cmpq %rax, %rbx
+ je L1027
+ leaq 59544(%r8), %rax
+ cmpq %rax, %rbx
+ je L1027
+L1029:
+ movq $0, 8(%r11)
+ movq $0, (%r11)
+ /* keepalive %r13 */
+ /* keepalive %r15 */
+ /* keepalive %r14 */
+ /* keepalive %r12 */
+ /* keepalive %rbp */
+L1030:
+ movq 1712(%r8), %rcx
+ movq (%rbx), %rdx
+ subq %rcx, %rdx
+ movq 1720(%r8), %rax
+L1031:
+ /* GC_NOCOLLECT pypy_g_ll_issubclass */
+ subq %rcx, %rax
+ cmpq %rax, %rdx
+ jae L1063
+L1032:
+ /* keepalive %r12 */
+ /* keepalive %rbp */
+ movq %rbp, %rsi
+ movq %r12, %rdi
+ movq 40(%rsp), %rbx
+ movq 48(%rsp), %rbp
+ movq 56(%rsp), %r12
+ movq 64(%rsp), %r13
+ movq 72(%rsp), %r14
+ movq 80(%rsp), %r15
+ addq $88, %rsp
+ jmp _pypy_g_comparison_ge_impl
+L1045:
+L1034:
+ movl $16, %esi
+ call _pypy_g_MiniMarkGC_collect_and_reserve
+ ;; expected {88(%rsp) | 40(%rsp), 56(%rsp), 64(%rsp), 72(%rsp), 80(%rsp), 48(%rsp) | }
+ movq _pypy_g_ExcData at GOTPCREL(%rip), %r11
+ movq %rax, %rdx
+ movq %rax, %rbx
+ cmpq $0, (%r11)
+ je L1036
+L1053:
+ movq _pypydtcount at GOTPCREL(%rip), %rsi
+ movl (%rsi), %edx
+ movq _pypy_debug_tracebacks at GOTPCREL(%rip), %rcx
+ movslq %edx,%rax
+ salq $4, %rax
+ leaq _loc.235064(%rip), %rbx
+ movq %rbx, (%rax,%rcx)
+ movq $0, 8(%rcx,%rax)
+ incl %edx
+ andl $127, %edx
+L1052:
+ movslq %edx,%rax
+ salq $4, %rax
+ leaq _loc.235062(%rip), %rbx
+ movq %rbx, (%rax,%rcx)
+ movq $0, 8(%rax,%rcx)
+ incl %edx
+ andl $127, %edx
+ movl %edx, (%rsi)
+ xorl %eax, %eax
+ jmp L981
+L1027:
+ movq %r8, 24(%rsp)
+ movq %r9, 16(%rsp)
+ movq %r10, 8(%rsp)
+ movq %r11, (%rsp)
+ call _pypy_debug_catch_fatal_exception
+ ;; expected {88(%rsp) | 40(%rsp), 56(%rsp), 64(%rsp), 72(%rsp), 80(%rsp), 48(%rsp) | }
+ movq (%rsp), %r11
+ movq 8(%rsp), %r10
+ movq 16(%rsp), %r9
+ movq 24(%rsp), %r8
+ jmp L1029
+L1018:
+ movq %r8, 24(%rsp)
+ movq %r9, 16(%rsp)
+ movq %r10, 8(%rsp)
+ movq %r11, (%rsp)
+ call _pypy_debug_catch_fatal_exception
+ ;; expected {88(%rsp) | 40(%rsp), 56(%rsp), 64(%rsp), 72(%rsp), 80(%rsp), 48(%rsp) | }
+ movq (%rsp), %r11
+ movq 8(%rsp), %r10
+ movq 16(%rsp), %r9
+ movq 24(%rsp), %r8
+ jmp L1020
+L1009:
+ movq %r8, 24(%rsp)
+ movq %r9, 16(%rsp)
+ movq %r10, 8(%rsp)
+ movq %r11, (%rsp)
+ call _pypy_debug_catch_fatal_exception
+ ;; expected {88(%rsp) | 40(%rsp), 56(%rsp), 64(%rsp), 72(%rsp), 80(%rsp), 48(%rsp) | }
+ movq (%rsp), %r11
+ movq 8(%rsp), %r10
+ movq 16(%rsp), %r9
+ movq 24(%rsp), %r8
+ jmp L1011
+L1000:
+ movq %r8, 24(%rsp)
+ movq %r9, 16(%rsp)
+ movq %r10, 8(%rsp)
+ movq %r11, (%rsp)
+ call _pypy_debug_catch_fatal_exception
+ ;; expected {88(%rsp) | 40(%rsp), 56(%rsp), 64(%rsp), 72(%rsp), 80(%rsp), 48(%rsp) | }
+ movq (%rsp), %r11
+ movq 8(%rsp), %r10
+ movq 16(%rsp), %r9
+ movq 24(%rsp), %r8
+ jmp L1002
+L991:
+ movq %r8, 24(%rsp)
+ movq %r9, 16(%rsp)
+ movq %r10, 8(%rsp)
+ movq %r11, (%rsp)
+ call _pypy_debug_catch_fatal_exception
+ ;; expected {88(%rsp) | 40(%rsp), 56(%rsp), 64(%rsp), 72(%rsp), 80(%rsp), 48(%rsp) | }
+ movq (%rsp), %r11
+ movq 8(%rsp), %r10
+ movq 16(%rsp), %r9
+ movq 24(%rsp), %r8
+ jmp L993
+L982:
+ movq %r8, 24(%rsp)
+ movq %r9, 16(%rsp)
+ movq %r10, 8(%rsp)
+ movq %r11, (%rsp)
+ call _pypy_debug_catch_fatal_exception
+ ;; expected {88(%rsp) | 40(%rsp), 56(%rsp), 64(%rsp), 72(%rsp), 80(%rsp), 48(%rsp) | }
+ movq (%rsp), %r11
+ movq 8(%rsp), %r10
+ movq 16(%rsp), %r9
+ movq 24(%rsp), %r8
+ jmp L984
+L1059:
+L997:
+ movq %rbx, (%r11)
+ movq %r13, 8(%r11)
+ movl (%r10), %edx
+ movslq %edx,%rax
+ salq $4, %rax
+ movq $-1, (%rax,%r9)
+ movq %rbx, 8(%rax,%r9)
+ incl %edx
+ andl $127, %edx
+ movl %edx, (%r10)
+ /* GC_NOCOLLECT pypy_g_RPyReRaiseException */
+ xorl %eax, %eax
+ jmp L981
+L1058:
+L988:
+ movq %rbx, (%r11)
+ movq %r13, 8(%r11)
+ movl (%r10), %edx
+ movslq %edx,%rax
+ salq $4, %rax
+ movq $-1, (%rax,%r9)
+ movq %rbx, 8(%rax,%r9)
+ incl %edx
+ andl $127, %edx
+ movl %edx, (%r10)
+ /* GC_NOCOLLECT pypy_g_RPyReRaiseException */
+ xorl %eax, %eax
+ jmp L981
+L1061:
+L1015:
+ movq %rbx, (%r11)
+ movq %r13, 8(%r11)
+ movl (%r10), %edx
+ movslq %edx,%rax
+ salq $4, %rax
+ movq $-1, (%rax,%r9)
+ movq %rbx, 8(%rax,%r9)
+ incl %edx
+ andl $127, %edx
+ movl %edx, (%r10)
+ /* GC_NOCOLLECT pypy_g_RPyReRaiseException */
+ xorl %eax, %eax
+ jmp L981
+L1060:
+L1006:
+ movq %rbx, (%r11)
+ movq %r13, 8(%r11)
+ movl (%r10), %edx
+ movslq %edx,%rax
+ salq $4, %rax
+ movq $-1, (%rax,%r9)
+ movq %rbx, 8(%rax,%r9)
+ incl %edx
+ andl $127, %edx
+ movl %edx, (%r10)
+ /* GC_NOCOLLECT pypy_g_RPyReRaiseException */
+ xorl %eax, %eax
+ jmp L981
+L1063:
+L1033:
+ movq %rbx, (%r11)
+ movq %r13, 8(%r11)
+ movl (%r10), %edx
+ movslq %edx,%rax
+ salq $4, %rax
+ movq $-1, (%rax,%r9)
+ movq %rbx, 8(%rax,%r9)
+ incl %edx
+ andl $127, %edx
+ movl %edx, (%r10)
+ /* GC_NOCOLLECT pypy_g_RPyReRaiseException */
+ xorl %eax, %eax
+ jmp L981
+L1062:
+L1024:
+ movq %rbx, (%r11)
+ movq %r13, 8(%r11)
+ movl (%r10), %edx
+ movslq %edx,%rax
+ salq $4, %rax
+ movq $-1, (%rax,%r9)
+ movq %rbx, 8(%rax,%r9)
+ incl %edx
+ andl $127, %edx
+ movl %edx, (%r10)
+ /* GC_NOCOLLECT pypy_g_RPyReRaiseException */
+ xorl %eax, %eax
+ jmp L981
+L1040:
+ movq %r8, 24(%rsp)
+ movq %r9, 16(%rsp)
+ movq %r10, 8(%rsp)
+ movq %r11, (%rsp)
+ call _pypy_debug_catch_fatal_exception
+ ;; expected {88(%rsp) | 40(%rsp), 56(%rsp), 64(%rsp), 72(%rsp), 80(%rsp), 48(%rsp) | }
+ movq (%rsp), %r11
+ movq 8(%rsp), %r10
+ movq 16(%rsp), %r9
+ movq 24(%rsp), %r8
+ jmp L1042
+L1048:
+ /* keepalive %rbx */
+ /* keepalive %r12 */
+L1051:
+ movq %rbp, (%r11)
+ movq %r12, 8(%r11)
+ movl (%r10), %edx
+ movslq %edx,%rax
+ salq $4, %rax
+ movq $-1, (%rax,%r9)
+ movq %rbp, 8(%rax,%r9)
+ incl %edx
+ andl $127, %edx
+ movl %edx, (%r10)
+ /* GC_NOCOLLECT pypy_g_RPyReRaiseException */
+ xorl %eax, %eax
+ jmp L981
+L1057:
+L1039:
+ movq _pypy_g_typeinfo at GOTPCREL(%rip), %rsi
+ addq $59688, %rsi
+ movq %rsi, (%r11)
+ movq _pypy_g_exceptions_AssertionError_5 at GOTPCREL(%rip), %rax
+ movq %rax, 8(%r11)
+ movq _pypydtcount at GOTPCREL(%rip), %rdi
+ movl (%rdi), %edx
+ movq _pypy_debug_tracebacks at GOTPCREL(%rip), %rcx
+ movslq %edx,%rax
+ salq $4, %rax
+ movq $0, (%rax,%rcx)
+ movq %rsi, 8(%rcx,%rax)
+ incl %edx
+ andl $127, %edx
+ /* GC_NOCOLLECT pypy_g_RPyRaiseException */
+ movslq %edx,%rax
+ salq $4, %rax
+ leaq _loc.235054(%rip), %rbx
+ movq %rbx, (%rax,%rcx)
+ movq $0, 8(%rcx,%rax)
+ incl %edx
+ andl $127, %edx
+ movl %edx, (%rdi)
+ xorl %eax, %eax
+ jmp L981
+LFE302:
+ .align 4,0x90
Modified: pypy/trunk/pypy/translator/c/gcc/trackgcroot.py
==============================================================================
--- pypy/trunk/pypy/translator/c/gcc/trackgcroot.py (original)
+++ pypy/trunk/pypy/translator/c/gcc/trackgcroot.py Thu Oct 28 15:15:36 2010
@@ -1106,6 +1106,9 @@
format = 'darwin64'
function_names_prefix = '_'
+ LABEL = ElfFunctionGcRootTracker32.LABEL
+ r_jmptable_item = re.compile(r"\t.(?:long|quad)\t"+LABEL+"(-\"?[A-Za-z0-9$]+\"?)?\s*$")
+
r_functionstart = re.compile(r"_(\w+):\s*$")
OFFSET_LABELS = 0
More information about the Pypy-commit
mailing list