| 1 | .text |
| 2 | |
| 3 | # some data |
| 4 | .word 0xdeadbeef |
| 5 | .word 0xdeadbeef |
| 6 | .word 0xdeadbeef |
| 7 | .word 0xdeadbeef |
| 8 | |
| 9 | # some real code, compiled from a toy C program |
| 10 | .globl main |
| 11 | .ent main |
| 12 | main: |
| 13 | .frame $fp,24,$31 # vars= 16, regs= 2/0, args= 0, extra= 0 |
| 14 | .mask 0xc0000000,-8 |
| 15 | .fmask 0x00000000,0 |
| 16 | subu $sp,$sp,24 |
| 17 | sw $31,20($sp) |
| 18 | sw $fp,16($sp) |
| 19 | move $fp,$sp |
| 20 | jal __main |
| 21 | li $2,2 # 0x2 |
| 22 | sw $2,0($fp) |
| 23 | lw $2,0($fp) |
| 24 | move $3,$2 |
| 25 | sll $4,$3,1 |
| 26 | addu $2,$4,$2 |
| 27 | sw $2,4($fp) |
| 28 | lw $4,4($fp) |
| 29 | jal g |
| 30 | lw $3,0($fp) |
| 31 | move $2,$3 |
| 32 | b $L1 |
| 33 | $L1: |
| 34 | move $sp,$fp |
| 35 | lw $31,20($sp) |
| 36 | lw $fp,16($sp) |
| 37 | addu $sp,$sp,24 |
| 38 | j $31 |
| 39 | .end main |
| 40 | .align 2 |
| 41 | .globl g |
| 42 | .ent g |
| 43 | g: |
| 44 | .frame $fp,24,$31 # vars= 16, regs= 1/0, args= 0, extra= 0 |
| 45 | .mask 0x40000000,-16 |
| 46 | .fmask 0x00000000,0 |
| 47 | subu $sp,$sp,24 |
| 48 | sw $fp,16($sp) |
| 49 | move $fp,$sp |
| 50 | sw $4,0($fp) |
| 51 | lw $2,0($fp) |
| 52 | addu $3,$2,1 |
| 53 | move $2,$3 |
| 54 | b $L2 |
| 55 | $L2: |
| 56 | move $sp,$fp |
| 57 | lw $fp,16($sp) |
| 58 | addu $sp,$sp,24 |
| 59 | j $31 |
| 60 | .end g |