305 lines
3.7 KiB
Text
305 lines
3.7 KiB
Text
|
.set reorder
|
||
|
.globl x
|
||
|
.data
|
||
|
.align 2
|
||
|
x:
|
||
|
.word 0x1
|
||
|
.byte 0x2
|
||
|
.space 3
|
||
|
.byte 0x0
|
||
|
.byte 0x34
|
||
|
.space 2
|
||
|
.byte 0xa
|
||
|
.byte 0x6
|
||
|
.space 2
|
||
|
.globl i
|
||
|
.sdata
|
||
|
.align 2
|
||
|
i:
|
||
|
.word 0x10
|
||
|
.globl y
|
||
|
.sdata
|
||
|
.align 2
|
||
|
y:
|
||
|
.byte 0xe0
|
||
|
.space 3
|
||
|
.byte 0x0
|
||
|
.byte 0x0
|
||
|
.byte 0x0
|
||
|
.byte 0x9
|
||
|
.globl main
|
||
|
.text
|
||
|
.text
|
||
|
.align 2
|
||
|
.ent main
|
||
|
main:
|
||
|
.frame $sp,40,$31
|
||
|
.set noreorder
|
||
|
.cpload $25
|
||
|
.set reorder
|
||
|
addu $sp,$sp,-40
|
||
|
.mask 0x82000000,-8
|
||
|
.cprestore 28
|
||
|
sw $31,32($sp)
|
||
|
la $4,L.4
|
||
|
lw $5,x
|
||
|
lb $6,x+4
|
||
|
lw $24,x+8
|
||
|
sra $7,$24,20
|
||
|
lw $24,x+8
|
||
|
sll $24,$24,12
|
||
|
sra $24,$24,28
|
||
|
sw $24,16($sp)
|
||
|
lw $24,x+12
|
||
|
sll $24,$24,4
|
||
|
sra $24,$24,29
|
||
|
sw $24,20($sp)
|
||
|
lb $24,x+13
|
||
|
sw $24,24($sp)
|
||
|
jal printf
|
||
|
la $4,L.10
|
||
|
lw $24,y
|
||
|
srl $15,$24,30
|
||
|
and $5,$15,3
|
||
|
srl $24,$24,26
|
||
|
and $6,$24,15
|
||
|
lw $7,y+4
|
||
|
jal printf
|
||
|
lw $24,x+8
|
||
|
and $24,$24,0xfff0ffff
|
||
|
lw $15,i
|
||
|
sll $15,$15,28
|
||
|
sra $15,$15,28
|
||
|
sll $15,$15,16
|
||
|
and $15,$15,0xf0000
|
||
|
or $24,$24,$15
|
||
|
sw $24,x+8
|
||
|
lw $24,x+12
|
||
|
and $24,$24,0xf1ffffff
|
||
|
sw $24,x+12
|
||
|
la $4,L.4
|
||
|
lw $5,x
|
||
|
lb $6,x+4
|
||
|
lw $24,x+8
|
||
|
sra $7,$24,20
|
||
|
lw $24,x+8
|
||
|
sll $24,$24,12
|
||
|
sra $24,$24,28
|
||
|
sw $24,16($sp)
|
||
|
lw $24,x+12
|
||
|
sll $24,$24,4
|
||
|
sra $24,$24,29
|
||
|
sw $24,20($sp)
|
||
|
lb $24,x+13
|
||
|
sw $24,24($sp)
|
||
|
jal printf
|
||
|
lw $24,y
|
||
|
and $24,$24,0x3fffffff
|
||
|
or $24,$24,0x80000000
|
||
|
sw $24,y
|
||
|
lw $24,i
|
||
|
sw $24,y+4
|
||
|
la $4,L.10
|
||
|
lw $24,y
|
||
|
srl $15,$24,30
|
||
|
and $5,$15,3
|
||
|
srl $24,$24,26
|
||
|
and $6,$24,15
|
||
|
lw $7,y+4
|
||
|
jal printf
|
||
|
la $4,x
|
||
|
jal f2
|
||
|
move $2,$0
|
||
|
L.3:
|
||
|
lw $25,28($sp)
|
||
|
lw $31,32($sp)
|
||
|
addu $sp,$sp,40
|
||
|
j $31
|
||
|
.end main
|
||
|
.globl f1
|
||
|
.text
|
||
|
.align 2
|
||
|
.ent f1
|
||
|
f1:
|
||
|
.frame $sp,32,$31
|
||
|
.set noreorder
|
||
|
.cpload $25
|
||
|
.set reorder
|
||
|
addu $sp,$sp,-32
|
||
|
.mask 0xc2000000,-8
|
||
|
.cprestore 16
|
||
|
sw $30,20($sp)
|
||
|
sw $31,24($sp)
|
||
|
move $30,$4
|
||
|
lw $24,($30)
|
||
|
and $24,$24,0xc3ffffff
|
||
|
sw $24,($30)
|
||
|
lw $24,($30)
|
||
|
and $24,$24,0x3fffffff
|
||
|
and $15,$0,3
|
||
|
sll $15,$15,30
|
||
|
and $15,$15,0xc0000000
|
||
|
or $24,$24,$15
|
||
|
sw $24,($30)
|
||
|
lw $24,($30)
|
||
|
and $24,$24,0x3c000000
|
||
|
beq $24,$0,L.22
|
||
|
la $4,L.24
|
||
|
jal printf
|
||
|
L.22:
|
||
|
lw $24,($30)
|
||
|
or $24,$24,0xc0000000
|
||
|
sw $24,($30)
|
||
|
lw $24,($30)
|
||
|
or $24,$24,0x3c000000
|
||
|
sw $24,($30)
|
||
|
la $4,L.25
|
||
|
lw $24,($30)
|
||
|
srl $15,$24,30
|
||
|
and $5,$15,3
|
||
|
srl $24,$24,26
|
||
|
and $6,$24,15
|
||
|
jal printf
|
||
|
move $2,$0
|
||
|
L.21:
|
||
|
lw $25,16($sp)
|
||
|
lw $30,20($sp)
|
||
|
lw $31,24($sp)
|
||
|
addu $sp,$sp,32
|
||
|
j $31
|
||
|
.end f1
|
||
|
.globl f2
|
||
|
.text
|
||
|
.align 2
|
||
|
.ent f2
|
||
|
f2:
|
||
|
.frame $sp,32,$31
|
||
|
.set noreorder
|
||
|
.cpload $25
|
||
|
.set reorder
|
||
|
addu $sp,$sp,-32
|
||
|
.mask 0xc2800000,-4
|
||
|
sw $23,16($sp)
|
||
|
.cprestore 20
|
||
|
sw $30,24($sp)
|
||
|
sw $31,28($sp)
|
||
|
move $30,$4
|
||
|
lw $24,i
|
||
|
bne $24,$0,L.28
|
||
|
la $23,1
|
||
|
b L.29
|
||
|
L.28:
|
||
|
move $23,$0
|
||
|
L.29:
|
||
|
lw $24,($30)
|
||
|
and $24,$24,0x3fffffff
|
||
|
move $15,$23
|
||
|
and $15,$15,3
|
||
|
sll $15,$15,30
|
||
|
and $15,$15,0xc0000000
|
||
|
or $24,$24,$15
|
||
|
sw $24,($30)
|
||
|
move $4,$30
|
||
|
jal f1
|
||
|
lw $24,($30)
|
||
|
and $24,$24,0xc3ffffff
|
||
|
move $15,$0
|
||
|
and $15,$15,15
|
||
|
sll $15,$15,26
|
||
|
and $15,$15,0x3c000000
|
||
|
or $24,$24,$15
|
||
|
sw $24,($30)
|
||
|
move $2,$0
|
||
|
L.26:
|
||
|
lw $23,16($sp)
|
||
|
lw $25,20($sp)
|
||
|
lw $30,24($sp)
|
||
|
lw $31,28($sp)
|
||
|
addu $sp,$sp,32
|
||
|
j $31
|
||
|
.end f2
|
||
|
.rdata
|
||
|
.align 0
|
||
|
L.25:
|
||
|
.byte 112
|
||
|
.byte 45
|
||
|
.byte 62
|
||
|
.byte 97
|
||
|
.byte 32
|
||
|
.byte 61
|
||
|
.byte 32
|
||
|
.byte 48
|
||
|
.byte 120
|
||
|
.byte 37
|
||
|
.byte 120
|
||
|
.byte 44
|
||
|
.byte 32
|
||
|
.byte 112
|
||
|
.byte 45
|
||
|
.byte 62
|
||
|
.byte 98
|
||
|
.byte 32
|
||
|
.byte 61
|
||
|
.byte 32
|
||
|
.byte 48
|
||
|
.byte 120
|
||
|
.byte 37
|
||
|
.byte 120
|
||
|
.byte 10
|
||
|
.byte 0
|
||
|
.align 0
|
||
|
L.24:
|
||
|
.byte 112
|
||
|
.byte 45
|
||
|
.byte 62
|
||
|
.byte 98
|
||
|
.byte 32
|
||
|
.byte 33
|
||
|
.byte 61
|
||
|
.byte 32
|
||
|
.byte 48
|
||
|
.byte 33
|
||
|
.byte 10
|
||
|
.byte 0
|
||
|
.align 0
|
||
|
L.10:
|
||
|
.byte 121
|
||
|
.byte 32
|
||
|
.byte 61
|
||
|
.byte 32
|
||
|
.byte 37
|
||
|
.byte 100
|
||
|
.byte 32
|
||
|
.byte 37
|
||
|
.byte 100
|
||
|
.byte 32
|
||
|
.byte 37
|
||
|
.byte 100
|
||
|
.byte 10
|
||
|
.byte 0
|
||
|
.align 0
|
||
|
L.4:
|
||
|
.byte 120
|
||
|
.byte 32
|
||
|
.byte 61
|
||
|
.byte 32
|
||
|
.byte 37
|
||
|
.byte 100
|
||
|
.byte 32
|
||
|
.byte 37
|
||
|
.byte 100
|
||
|
.byte 32
|
||
|
.byte 37
|
||
|
.byte 100
|
||
|
.byte 32
|
||
|
.byte 37
|
||
|
.byte 100
|
||
|
.byte 32
|
||
|
.byte 37
|
||
|
.byte 100
|
||
|
.byte 32
|
||
|
.byte 37
|
||
|
.byte 100
|
||
|
.byte 10
|
||
|
.byte 0
|