123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310 |
- .section ".data"
- .global x
- .type x,#object
- .size x,16
- .align 4
- x:
- .word 0x1
- .byte 0x2
- .skip 3
- .byte 0x0
- .byte 0x34
- .skip 2
- .byte 0xa
- .byte 0x6
- .skip 2
- .global i
- .type i,#object
- .size i,4
- .align 4
- i:
- .word 0x10
- .global y
- .type y,#object
- .size y,8
- .align 4
- y:
- .byte 0xe0
- .skip 3
- .byte 0x0
- .byte 0x0
- .byte 0x0
- .byte 0x9
- .global main
- .section ".text"
- .align 4
- main:
- save %sp,-96,%sp
- set .L4,%o0
- set x,%i5
- ld [%i5],%o1
- set x+4,%i5
- ldsb [%i5],%o2
- set x+8,%i5
- ld [%i5],%i5
- sra %i5,20,%o3
- set x+8,%i5
- ld [%i5],%i5
- sll %i5,12,%i5
- sra %i5,28,%o4
- set x+12,%i5
- ld [%i5],%i5
- sll %i5,4,%i5
- sra %i5,29,%o5
- set x+13,%i5
- ldsb [%i5],%i5
- st %i5,[%sp+4*6+68]
- call printf; nop
- set .L10,%o0
- set y,%i5
- ld [%i5],%i5
- srl %i5,30,%i4
- set 3,%i3
- and %i4,%i3,%o1
- srl %i5,26,%i5
- set 15,%i4
- and %i5,%i4,%o2
- set y+4,%i5
- ld [%i5],%o3
- call printf; nop
- set x+8,%i5
- ld [%i5],%i4
- set 0xfff0ffff,%i3
- and %i4,%i3,%i4
- set i,%i3
- ld [%i3],%i3
- sll %i3,28,%i3
- sra %i3,28,%i3
- sll %i3,16,%i3
- set 0xf0000,%i2
- and %i3,%i2,%i3
- or %i4,%i3,%i4
- st %i4,[%i5]
- set x+12,%i5
- ld [%i5],%i4
- set 0xf1ffffff,%i3
- and %i4,%i3,%i4
- st %i4,[%i5]
- set .L4,%o0
- set x,%i5
- ld [%i5],%o1
- set x+4,%i5
- ldsb [%i5],%o2
- set x+8,%i5
- ld [%i5],%i5
- sra %i5,20,%o3
- set x+8,%i5
- ld [%i5],%i5
- sll %i5,12,%i5
- sra %i5,28,%o4
- set x+12,%i5
- ld [%i5],%i5
- sll %i5,4,%i5
- sra %i5,29,%o5
- set x+13,%i5
- ldsb [%i5],%i5
- st %i5,[%sp+4*6+68]
- call printf; nop
- set y,%i5
- ld [%i5],%i4
- set 0x3fffffff,%i3
- and %i4,%i3,%i4
- set 0x80000000,%i3
- or %i4,%i3,%i4
- st %i4,[%i5]
- set y+4,%i5
- set i,%i4
- ld [%i4],%i4
- st %i4,[%i5]
- set .L10,%o0
- set y,%i5
- ld [%i5],%i5
- srl %i5,30,%i4
- set 3,%i3
- and %i4,%i3,%o1
- srl %i5,26,%i5
- set 15,%i4
- and %i5,%i4,%o2
- set y+4,%i5
- ld [%i5],%o3
- call printf; nop
- set x,%o0
- call f2; nop
- mov %g0,%i0
- .L3:
- ret; restore
- .type main,#function
- .size main,.-main
- .global f1
- .align 4
- f1:
- save %sp,-96,%sp
- ld [%i0],%i5
- set 0xc3ffffff,%i4
- and %i5,%i4,%i5
- st %i5,[%i0]
- ld [%i0],%i5
- set 0x3fffffff,%i4
- and %i5,%i4,%i5
- set 3,%i4
- and %g0,%i4,%i4
- sll %i4,30,%i4
- set 0xc0000000,%i3
- and %i4,%i3,%i4
- or %i5,%i4,%i5
- st %i5,[%i0]
- ld [%i0],%i5
- set 0x3c000000,%i4
- and %i5,%i4,%i5
- cmp %i5,%g0; be .L22; nop
- set .L24,%o0
- call printf; nop
- .L22:
- ld [%i0],%i5
- set 0xc0000000,%i4
- or %i5,%i4,%i5
- st %i5,[%i0]
- ld [%i0],%i5
- set 0x3c000000,%i4
- or %i5,%i4,%i5
- st %i5,[%i0]
- set .L25,%o0
- ld [%i0],%i5
- srl %i5,30,%i4
- set 3,%i3
- and %i4,%i3,%o1
- srl %i5,26,%i5
- set 15,%i4
- and %i5,%i4,%o2
- call printf; nop
- mov %g0,%i0
- .L21:
- ret; restore
- .type f1,#function
- .size f1,.-f1
- .global f2
- .align 4
- f2:
- save %sp,-96,%sp
- set i,%i4
- ld [%i4],%i4
- cmp %i4,0; bne .L28; nop
- set 1,%i5
- ba .L29; nop
- .L28:
- mov %g0,%i5
- .L29:
- ld [%i0],%i4
- set 0x3fffffff,%i3
- and %i4,%i3,%i4
- mov %i5,%i3
- set 3,%i2
- and %i3,%i2,%i3
- sll %i3,30,%i3
- set 0xc0000000,%i2
- and %i3,%i2,%i3
- or %i4,%i3,%i4
- st %i4,[%i0]
- mov %i0,%o0
- call f1; nop
- ld [%i0],%i4
- set 0xc3ffffff,%i3
- and %i4,%i3,%i4
- mov %g0,%i3
- set 15,%i2
- and %i3,%i2,%i3
- sll %i3,26,%i3
- set 0x3c000000,%i2
- and %i3,%i2,%i3
- or %i4,%i3,%i4
- st %i4,[%i0]
- mov %g0,%i0
- .L26:
- ret; restore
- .type f2,#function
- .size f2,.-f2
- .section ".rodata"
- .align 1
- .L25:
- .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 1
- .L24:
- .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 1
- .L10:
- .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 1
- .L4:
- .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
|