aboutsummaryrefslogtreecommitdiffstats
path: root/lcc/mips/irix/tst/fields.sbk
diff options
context:
space:
mode:
Diffstat (limited to 'lcc/mips/irix/tst/fields.sbk')
-rwxr-xr-xlcc/mips/irix/tst/fields.sbk304
1 files changed, 304 insertions, 0 deletions
diff --git a/lcc/mips/irix/tst/fields.sbk b/lcc/mips/irix/tst/fields.sbk
new file mode 100755
index 0000000..cd60540
--- /dev/null
+++ b/lcc/mips/irix/tst/fields.sbk
@@ -0,0 +1,304 @@
+.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