|
|
1.1 root 1: .seg "data"
2: .global _x
3: .align 4; _x:.word 1
4: .byte 2
5: .skip 3
6: .byte 0
7: .byte 52
8: .skip 2
9: .byte 10
10: .byte 6
11: .skip 2
12: .global _i
13: .align 4; _i:.word 16
14: .global _y
15: .align 4; _y:.byte 224
16: .skip 3
17: .byte 0
18: .byte 0
19: .byte 0
20: .byte 9
21: .seg "text"
22: .global _main
23: .align 4
24: .proc 4
25: _main:save %sp,-96,%sp
26: set L4,%r8
27: set _x,%r29
28: ld [%r29],%r9
29: set _x+4,%r29
30: ldsb [%r29],%r10
31: set _x+8,%r29
32: ld [%r29],%r29
33: sra %r29,20,%r11
34: set _x+8,%r29
35: ld [%r29],%r29
36: sll %r29,12,%r29
37: sra %r29,28,%r12
38: set _x+12,%r29
39: ld [%r29],%r29
40: sll %r29,4,%r29
41: sra %r29,29,%r13
42: set _x+13,%r29
43: ldsb [%r29],%r29
44: st %r29,[%sp+4*6+68]
45: call _printf; nop
46: set L10,%r8
47: set _y,%r29
48: ld [%r29],%r29
49: srl %r29,30,%r9
50: sll %r29,2,%r29
51: srl %r29,28,%r10
52: set _y+4,%r29
53: ld [%r29],%r11
54: call _printf; nop
55: set _x+8,%r29
56: ld [%r29],%r28
57: set 0xfff0ffff,%r27
58: and %r28,%r27,%r28
59: set _i,%r27
60: ld [%r27],%r27
61: sll %r27,28,%r27
62: sra %r27,28,%r27
63: sll %r27,16,%r27
64: set 0xf0000,%r26
65: and %r27,%r26,%r27
66: or %r28,%r27,%r28
67: st %r28,[%r29]
68: set _x+12,%r29
69: ld [%r29],%r28
70: set 0xf1ffffff,%r27
71: and %r28,%r27,%r28
72: st %r28,[%r29]
73: set L4,%r8
74: set _x,%r29
75: ld [%r29],%r9
76: set _x+4,%r29
77: ldsb [%r29],%r10
78: set _x+8,%r29
79: ld [%r29],%r29
80: sra %r29,20,%r11
81: set _x+8,%r29
82: ld [%r29],%r29
83: sll %r29,12,%r29
84: sra %r29,28,%r12
85: set _x+12,%r29
86: ld [%r29],%r29
87: sll %r29,4,%r29
88: sra %r29,29,%r13
89: set _x+13,%r29
90: ldsb [%r29],%r29
91: st %r29,[%sp+4*6+68]
92: call _printf; nop
93: set _y,%r29
94: ld [%r29],%r28
95: set 0x3fffffff,%r27
96: and %r28,%r27,%r28
97: set 0x80000000,%r27
98: or %r28,%r27,%r28
99: st %r28,[%r29]
100: set _i,%r29
101: ld [%r29],%r29
102: set _y+4,%r28
103: st %r29,[%r28]
104: set L10,%r8
105: set _y,%r29
106: ld [%r29],%r29
107: srl %r29,30,%r9
108: sll %r29,2,%r29
109: srl %r29,28,%r10
110: set _y+4,%r29
111: ld [%r29],%r11
112: call _printf; nop
113: set _x,%r8
114: call _f2; nop
115: L3:
116: ret; restore
117: .global _f1
118: .align 4
119: .proc 4
120: _f1:save %sp,-96,%sp
121: ld [%r24],%r29
122: set 0xc3ffffff,%r28
123: and %r29,%r28,%r29
124: st %r29,[%r24]
125: ld [%r24],%r29
126: set 0x3fffffff,%r28
127: and %r29,%r28,%r29
128: and %r0,3,%r28
129: sll %r28,30,%r28
130: set 0xc0000000,%r27
131: and %r28,%r27,%r28
132: or %r29,%r28,%r29
133: st %r29,[%r24]
134: ld [%r24],%r29
135: set 0x3c000000,%r28
136: and %r29,%r28,%r29
137: cmp %r29,%r0; be L22; nop
138: set L24,%r8
139: call _printf; nop
140: L22:
141: ld [%r24],%r29
142: set 0xc0000000,%r28
143: or %r29,%r28,%r29
144: st %r29,[%r24]
145: ld [%r24],%r29
146: set 0x3c000000,%r28
147: or %r29,%r28,%r29
148: st %r29,[%r24]
149: set L25,%r8
150: ld [%r24],%r29
151: srl %r29,30,%r9
152: sll %r29,2,%r29
153: srl %r29,28,%r10
154: call _printf; nop
155: L21:
156: ret; restore
157: .global _f2
158: .align 4
159: .proc 4
160: _f2:save %sp,-96,%sp
161: set _i,%r28
162: ld [%r28],%r28
163: cmp %r28,%r0; bne L28; nop
164: set 1,%r29
165: ba L29; nop
166: L28:
167: mov %r0,%r29
168: L29:
169: ld [%r24],%r28
170: set 0x3fffffff,%r27
171: and %r28,%r27,%r28
172: and %r29,3,%r27
173: sll %r27,30,%r27
174: set 0xc0000000,%r26
175: and %r27,%r26,%r27
176: or %r28,%r27,%r28
177: st %r28,[%r24]
178: mov %r24,%r8
179: call _f1; nop
180: ld [%r24],%r29
181: set 0xc3ffffff,%r28
182: and %r29,%r28,%r29
183: and %r0,15,%r28
184: sll %r28,26,%r28
185: set 0x3c000000,%r27
186: and %r28,%r27,%r28
187: or %r29,%r28,%r29
188: st %r29,[%r24]
189: L26:
190: ret; restore
191: .seg "text"
192: L25:.ascii "p->a = 0x%x, p->b = 0x%x\012\000"
193: L24:.ascii "p->b != 0!\012\000"
194: L10:.ascii "y = %d %d %d\012\000"
195: L4:.ascii "x = %d %d %d %d %d %d\012\000"
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.