Annotation of researchv10no/cmd/lcc/gen2/sparc-sun/tst/fields.s, revision 1.1.1.1

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"

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.