.set noat .set noreorder .set nomacro .text .align 2 .align 4 .globl bar .ent bar $bar..ng: bar: .frame $30,0,$26,0 .prologue 0 mov $31,$0 ret $31,($26),1 .end bar .align 2 .align 4 .globl baz .ent baz $baz..ng: baz: .frame $30,0,$26,0 .prologue 0 mov $31,$0 ret $31,($26),1 .end baz .align 2 .align 4 .globl do_check .ent do_check do_check: .frame $30,0,$26,0 .mask 0x4000000,0 ldah $29,0($27) !gpdisp!1 lda $29,0($29) !gpdisp!1 $do_check..ng: lda $30,-16($30) cpys $f31,$f31,$f31 lda $3,16($16) ldq $1,0($16) stq $26,0($30) .prologue 1 bne $1,$L7 ldl $1,8($16) beq $1,$L8 $L7: ldq $27,abort($29) !literal!2 jsr $26,($27),abort !lituse_jsr!2 .align 4 $L8: ldq $2,16($16) cmpeq $2,$3,$1 beq $1,$L7 ldq $1,24($16) cmpeq $1,$2,$1 beq $1,$L7 ldq $26,0($30) lda $30,16($30) ret $31,($26),1 .end do_check .set macro ___checkme: pushl %eax; pushl %ebx; pushl %ecx; pushl %edx; pushl %esi; pushl %edi pushl $0; pushl $0; pushl $0; pushl $0; pushl $0 pushl $0; pushl $0; pushl $0; pushl $0; pushl $0 movl %ecx, %eax call do_check popl %eax; popl %eax; popl %eax; popl %eax; popl %eax popl %eax; popl %eax; popl %eax; popl %eax; popl %eax popl %edi; popl %esi; popl %edx; popl %ecx; popl %ebx; popl %eax ret .set nomacro .align 2 .align 4 .globl foo .ent foo $foo..ng: foo: .frame $30,0,$26,0 lda $30,-32($30) .prologue 0 lda $1,16($30) stl $31,4($30) mov $30,$27 stl $31,0($30) stq $1,24($30) stl $31,8($30) stq $1,16($30) .set macro call ___checkme call ___checkme .set nomacro mov $31,$0 lda $30,32($30) ret $31,($26),1 .end foo .align 2 .align 4 .globl main .ent main main: .frame $30,0,$26,0 .mask 0x4000000,0 ldah $29,0($27) !gpdisp!3 lda $29,0($29) !gpdisp!3 $main..ng: lda $30,-16($30) stq $26,0($30) .prologue 1 bsr $26,$foo..ng mov $31,$16 ldq $27,exit($29) !literal!4 jsr $26,($27),exit !lituse_jsr!4 .end main .ident "GCC: (GNU) 3.3.2"