.set noat .set noreorder .set nomacro .text .align 2 .align 4 .globl do_something .ent do_something $do_something..ng: do_something: .frame $30,0,$26,0 .prologue 0 mov $16,$0 ret $31,($26),1 .end do_something .align 2 .align 4 .globl call_unref .ent call_unref call_unref: .frame $30,0,$26,0 ldah $29,0($27) !gpdisp!1 lda $29,0($29) !gpdisp!1 $call_unref..ng: .prologue 1 ldq $2,unref_val($29) !literal ldl $1,0($2) beq $1,$L3 lda $1,2($31) stl $1,0($2) $L3: addl $1,4,$1 stl $1,0($2) ret $31,($26),1 .end call_unref .align 2 .align 4 .globl test_for1 .ent test_for1 test_for1: .frame $30,0,$26,0 ldah $29,0($27) !gpdisp!2 lda $29,0($29) !gpdisp!2 $test_for1..ng: .prologue 1 lda $1,1($31) mov $31,$3 ldq $5,for_temp($29) !literal stl $1,0($5) ble $16,$L13 lda $4,1($31) .align 4 $L11: addl $3,1,$3 lda $2,1($4) cmplt $3,$16,$1 cpys $f31,$f31,$f31 bis $31,$2,$4 bne $1,$L11 stl $2,0($5) $L13: ldl $0,0($5) ret $31,($26),1 .end test_for1 .align 2 .align 4 .globl test_for2 .ent test_for2 test_for2: .frame $30,0,$26,0 ldah $29,0($27) !gpdisp!3 lda $29,0($29) !gpdisp!3 $test_for2..ng: .prologue 1 lda $1,1($31) mov $31,$8 ldq $7,for_temp($29) !literal stl $1,0($7) ble $17,$L32 cmplt $31,$16,$22 $L30: mov $31,$5 beq $22,$L34 cmplt $31,$18,$6 .align 4 $L29: mov $31,$4 beq $6,$L36 ldl $3,0($7) .align 4 $L28: addl $4,1,$4 lda $2,1($3) cmplt $4,$18,$1 cpys $f31,$f31,$f31 bis $31,$2,$3 bne $1,$L28 stl $2,0($7) $L36: addl $5,1,$5 cmplt $5,$16,$1 bne $1,$L29 $L34: addl $8,1,$8 cmplt $8,$17,$1 bne $1,$L30 $L32: ldl $0,0($7) ret $31,($26),1 .end test_for2 .align 2 .align 4 .globl call_for .ent call_for call_for: .frame $30,0,$26,0 .mask 0x4000600,0 ldah $29,0($27) !gpdisp!4 lda $29,0($29) !gpdisp!4 $call_for..ng: lda $30,-32($30) mov $31,$16 stq $9,8($30) ldq $9,for_val1($29) !literal stq $26,0($30) stq $10,16($30) .prologue 1 bsr $26,$test_for1..ng ldq $10,for_val2($29) !literal lda $16,2($31) ldl $1,0($9) addq $0,$1,$0 stl $0,0($9) bsr $26,$test_for1..ng lda $16,7($31) ldl $1,0($9) addq $0,$1,$0 stl $0,0($9) cpys $f31,$f31,$f31 bsr $26,$test_for1..ng mov $31,$16 mov $31,$17 ldl $1,0($9) mov $31,$18 addq $0,$1,$0 stl $0,0($9) cpys $f31,$f31,$f31 bsr $26,$test_for2..ng mov $31,$18 lda $16,1($31) ldl $1,0($10) mov $31,$17 addq $0,$1,$0 stl $0,0($10) cpys $f31,$f31,$f31 bsr $26,$test_for2..ng mov $31,$18 lda $16,1($31) ldl $1,0($10) lda $17,3($31) addq $0,$1,$0 stl $0,0($10) cpys $f31,$f31,$f31 bsr $26,$test_for2..ng lda $18,1($31) lda $16,1($31) ldl $1,0($10) lda $17,3($31) addq $0,$1,$0 stl $0,0($10) cpys $f31,$f31,$f31 bsr $26,$test_for2..ng lda $18,5($31) lda $16,3($31) ldl $1,0($10) lda $17,1($31) addq $0,$1,$0 stl $0,0($10) cpys $f31,$f31,$f31 bsr $26,$test_for2..ng lda $18,3($31) lda $16,3($31) ldl $1,0($10) lda $17,7($31) addq $0,$1,$0 stl $0,0($10) cpys $f31,$f31,$f31 bsr $26,$test_for2..ng ldq $9,8($30) ldl $1,0($10) ldq $26,0($30) addq $0,$1,$0 stl $0,0($10) ldq $10,16($30) lda $30,32($30) ret $31,($26),1 .end call_for .align 2 .align 4 .globl test_goto1 .ent test_goto1 $test_goto1..ng: test_goto1: .frame $30,0,$26,0 .prologue 0 $L41: cmpult $31,$16,$0 lda $0,1($0) ret $31,($26),1 .end test_goto1 .align 2 .align 4 .globl test_goto2 .ent test_goto2 $test_goto2..ng: test_goto2: .frame $30,0,$26,0 .prologue 0 mov $31,$2 .align 4 $L49: cmpeq $2,$16,$1 addl $2,1,$2 cmple $2,9,$3 cpys $f31,$f31,$f31 lda $0,8($31) bne $1,$L42 lda $0,4($31) bne $3,$L49 $L48: $L42: ret $31,($26),1 .end test_goto2 .align 2 .align 4 .globl call_goto .ent call_goto call_goto: .frame $30,0,$26,0 .mask 0x4000600,0 ldah $29,0($27) !gpdisp!5 lda $29,0($29) !gpdisp!5 $call_goto..ng: lda $30,-32($30) mov $31,$16 stq $9,8($30) ldq $9,goto_val($29) !literal stq $26,0($30) stq $10,16($30) .prologue 1 bsr $26,$test_goto1..ng ldl $1,0($9) lda $16,1($31) cpys $f31,$f31,$f31 addq $0,$1,$10 bsr $26,$test_goto1..ng lda $16,3($31) addq $0,$10,$0 stl $0,0($9) cpys $f31,$f31,$f31 bsr $26,$test_goto2..ng lda $16,30($31) ldl $1,0($9) addq $0,$1,$0 stl $0,0($9) cpys $f31,$f31,$f31 bsr $26,$test_goto2..ng ldq $10,16($30) ldl $1,0($9) ldq $26,0($30) addq $0,$1,$0 stl $0,0($9) ldq $9,8($30) lda $30,32($30) ret $31,($26),1 .end call_goto .align 2 .align 4 .globl test_ifelse1 .ent test_ifelse1 test_ifelse1: .frame $30,0,$26,0 .mask 0x4000600,0 ldah $29,0($27) !gpdisp!6 lda $29,0($29) !gpdisp!6 $test_ifelse1..ng: lda $30,-32($30) stq $9,8($30) mov $16,$9 stq $10,16($30) mov $17,$10 stq $26,0($30) .prologue 1 bis $31,$31,$31 beq $16,$L54 lda $16,4($31) bne $17,$L63 lda $16,1024($31) .align 4 $L63: bsr $26,$do_something..ng cmple $9,$10,$1 bne $1,$L60 addl $0,$0,$16 bsr $26,$do_something..ng $L60: cmple $9,10,$1 bne $1,$L61 cmple $10,10,$1 bne $1,$L61 s4addl $0,0,$16 bsr $26,$do_something..ng .align 4 $L61: ldq $26,0($30) ldq $9,8($30) ldq $10,16($30) lda $30,32($30) ret $31,($26),1 .align 4 $L54: lda $16,1($31) bne $17,$L63 lda $16,2($31) br $31,$L63 .end test_ifelse1 .align 2 .align 4 .globl test_ifelse2 .ent test_ifelse2 test_ifelse2: .frame $30,0,$26,0 .mask 0x4000200,0 ldah $29,0($27) !gpdisp!7 lda $29,0($29) !gpdisp!7 $test_ifelse2..ng: lda $30,-16($30) mov $31,$0 stq $9,8($30) mov $16,$9 stq $26,0($30) .prologue 1 bne $16,$L65 lda $16,1($31) bsr $26,$do_something..ng $L65: cmpeq $9,1,$1 bne $1,$L71 $L66: cmpeq $9,2,$1 bne $1,$L72 $L67: cmpeq $9,3,$1 cpys $f31,$f31,$f31 lda $16,8($31) bne $1,$L70 cmpeq $9,4,$1 bne $1,$L73 ldq $26,0($30) ldq $9,8($30) lda $30,16($30) ret $31,($26),1 .align 4 $L73: lda $16,2048($31) $L70: ldq $26,0($30) ldq $9,8($30) lda $30,16($30) br $31,$do_something..ng .align 4 $L72: lda $16,2($31) bsr $26,$do_something..ng br $31,$L67 .align 4 $L71: lda $16,1024($31) bsr $26,$do_something..ng br $31,$L66 .end test_ifelse2 .align 2 .align 4 .globl test_ifelse3 .ent test_ifelse3 test_ifelse3: .frame $30,0,$26,0 .mask 0x4000600,0 ldah $29,0($27) !gpdisp!8 lda $29,0($29) !gpdisp!8 $test_ifelse3..ng: lda $1,10($31) cmplt $1,$16,$1 cmplt $16,$17,$2 lda $30,-32($30) and $1,$2,$1 stq $9,8($30) lda $0,1($31) stq $10,16($30) mov $16,$9 stq $26,0($30) .prologue 1 mov $17,$10 beq $1,$L75 cmple $17,19,$1 beq $1,$L75 lda $16,16($31) bsr $26,$do_something..ng .align 4 $L75: cmple $9,20,$1 bne $1,$L76 cmple $10,$9,$1 bne $1,$L76 cmple $10,29,$1 beq $1,$L76 lda $16,32($31) bsr $26,$do_something..ng .align 4 $L76: cmpeq $9,3,$1 cmpeq $10,47,$2 bis $1,$2,$1 bne $1,$L80 cmpeq $9,$10,$1 bne $1,$L80 $L79: ldq $26,0($30) ldq $9,8($30) ldq $10,16($30) lda $30,32($30) ret $31,($26),1 .align 4 $L80: lda $16,64($31) bsr $26,$do_something..ng br $31,$L79 .end test_ifelse3 .align 2 .align 4 .globl call_ifelse .ent call_ifelse call_ifelse: .frame $30,0,$26,0 .mask 0x4001e00,0 ldah $29,0($27) !gpdisp!9 lda $29,0($29) !gpdisp!9 $call_ifelse..ng: lda $30,-48($30) mov $31,$16 stq $9,8($30) lda $17,2($31) ldq $9,ifelse_val1($29) !literal stq $26,0($30) stq $10,16($30) stq $11,24($30) stq $12,32($30) .prologue 1 cpys $f31,$f31,$f31 bsr $26,$test_ifelse1..ng ldq $10,ifelse_val2($29) !literal mov $31,$16 ldl $1,0($9) mov $31,$17 ldq $11,ifelse_val3($29) !literal addq $0,$1,$12 bsr $26,$test_ifelse1..ng lda $16,1($31) lda $17,2($31) addq $0,$12,$12 bsr $26,$test_ifelse1..ng lda $16,10($31) lda $17,2($31) addq $0,$12,$12 bsr $26,$test_ifelse1..ng lda $17,11($31) lda $16,11($31) addq $0,$12,$12 bsr $26,$test_ifelse1..ng mov $31,$16 addq $0,$12,$0 stl $0,0($9) cpys $f31,$f31,$f31 bsr $26,$test_ifelse2..ng lda $16,2($31) ldl $1,0($10) bis $31,$31,$31 addq $0,$1,$9 bsr $26,$test_ifelse2..ng lda $16,3($31) addq $0,$9,$1 addq $0,$1,$1 cpys $f31,$f31,$f31 addq $0,$1,$9 bsr $26,$test_ifelse2..ng lda $17,19($31) addq $0,$9,$1 addq $0,$1,$0 stl $0,0($10) lda $16,11($31) cpys $f31,$f31,$f31 bsr $26,$test_ifelse3..ng lda $17,27($31) lda $16,25($31) ldl $1,0($11) addq $0,$1,$9 bsr $26,$test_ifelse3..ng lda $16,11($31) lda $17,22($31) addq $0,$9,$9 bsr $26,$test_ifelse3..ng lda $16,11($31) lda $17,10($31) addq $0,$9,$9 bsr $26,$test_ifelse3..ng lda $16,21($31) lda $17,32($31) addq $0,$9,$9 bsr $26,$test_ifelse3..ng lda $16,21($31) lda $17,20($31) addq $0,$9,$9 bsr $26,$test_ifelse3..ng lda $16,1($31) lda $17,2($31) addq $0,$9,$9 bsr $26,$test_ifelse3..ng lda $16,32($31) lda $17,31($31) addq $0,$9,$9 bsr $26,$test_ifelse3..ng lda $16,3($31) mov $31,$17 addq $0,$9,$9 bsr $26,$test_ifelse3..ng mov $31,$16 lda $17,47($31) addq $0,$9,$9 bsr $26,$test_ifelse3..ng lda $16,65($31) lda $17,65($31) addq $0,$9,$9 bsr $26,$test_ifelse3..ng ldq $26,0($30) bis $31,$31,$31 addq $0,$9,$0 ldq $10,16($30) stl $0,0($11) ldq $9,8($30) ldq $11,24($30) ldq $12,32($30) lda $30,48($30) ret $31,($26),1 .end call_ifelse .align 2 .align 4 .globl test_switch .ent test_switch test_switch: .frame $30,0,$26,0 .mask 0x4000000,0 ldah $29,0($27) !gpdisp!10 lda $29,0($29) !gpdisp!10 $test_switch..ng: lda $30,-16($30) cmpeq $16,2,$1 stq $26,0($30) .prologue 1 bne $1,$L85 cmple $16,2,$1 beq $1,$L91 cmpeq $16,1,$1 bne $1,$L84 $L89: lda $16,32($31) bsr $26,$do_something..ng ldq $2,switch_m($29) !literal ldl $1,0($2) lda $1,1($1) stl $1,0($2) $L83: ldq $26,0($30) lda $30,16($30) ret $31,($26),1 .align 4 $L84: lda $16,2($31) .align 4 $L92: bsr $26,$do_something..ng br $31,$L83 .align 4 $L91: cmple $16,4,$1 beq $1,$L89 cmpeq $17,2,$1 cpys $f31,$f31,$f31 lda $16,8($31) beq $1,$L92 lda $16,4($31) ldq $26,0($30) lda $30,16($30) br $31,$do_something..ng .align 4 $L85: lda $16,1024($31) br $31,$L92 .end test_switch .align 2 .align 4 .globl call_switch .ent call_switch call_switch: .frame $30,0,$26,0 .mask 0x4000200,0 ldah $29,0($27) !gpdisp!11 lda $29,0($29) !gpdisp!11 $call_switch..ng: lda $30,-16($30) lda $16,1($31) stq $9,8($30) mov $31,$17 ldq $9,switch_val($29) !literal stq $26,0($30) .prologue 1 bsr $26,$test_switch..ng mov $31,$17 lda $16,3($31) ldl $1,0($9) addq $0,$1,$0 stl $0,0($9) bsr $26,$test_switch..ng lda $17,2($31) lda $16,3($31) ldl $1,0($9) addq $0,$1,$0 stl $0,0($9) bsr $26,$test_switch..ng mov $31,$17 lda $16,4($31) ldl $1,0($9) addq $0,$1,$0 stl $0,0($9) bsr $26,$test_switch..ng mov $31,$17 lda $16,16($31) ldl $1,0($9) addq $0,$1,$0 stl $0,0($9) bsr $26,$test_switch..ng ldq $26,0($30) ldq $1,switch_m($29) !literal ldl $3,0($9) ldl $2,0($1) addq $0,$3,$0 addq $0,$2,$0 stl $0,0($9) ldq $9,8($30) lda $30,16($30) ret $31,($26),1 .end call_switch .align 2 .align 4 .globl main .ent main main: .frame $30,0,$26,0 .mask 0x4000000,0 ldah $29,0($27) !gpdisp!12 lda $29,0($29) !gpdisp!12 $main..ng: lda $30,-16($30) stq $26,0($30) .prologue 1 bsr $26,$call_for..ng bsr $26,$call_goto..ng bsr $26,$call_ifelse..ng bsr $26,$call_switch..ng bsr $26,$call_unref..ng ldq $2,for_val1($29) !literal ldl $1,0($2) cmpeq $1,12,$1 beq $1,$L96 ldq $2,for_val2($29) !literal ldl $1,0($2) cmpeq $1,87,$1 bne $1,$L97 $L96: ldq $27,abort($29) !literal!13 jsr $26,($27),abort !lituse_jsr!13 .align 4 $L97: ldq $1,goto_val($29) !literal ldl $2,0($1) cmpeq $2,15,$2 beq $2,$L96 ldq $1,ifelse_val1($29) !literal ldl $2,0($1) cmpeq $2,31,$2 beq $2,$L96 ldq $1,ifelse_val2($29) !literal ldl $2,0($1) cmpeq $2,23,$2 beq $2,$L96 ldq $1,ifelse_val3($29) !literal ldl $2,0($1) cmpeq $2,246,$2 beq $2,$L96 ldq $1,switch_val($29) !literal ldl $2,0($1) cmpeq $2,55,$2 beq $2,$L96 ldq $1,unref_val($29) !literal ldl $2,0($1) cmpeq $2,4,$2 beq $2,$L96 mov $31,$0 ldq $26,0($30) lda $30,16($30) ret $31,($26),1 .end main .comm unref_val,4,4 .comm for_val1,4,4 .comm for_val2,4,4 .comm for_temp,4,4 .comm goto_val,4,4 .comm ifelse_val1,4,4 .comm ifelse_val2,4,4 .comm ifelse_val3,4,4 .comm switch_val,4,4 .comm switch_m,4,4 .ident "GCC: (GNU) 3.3.2"