Annotation of researchv10no/cmd/lcc/gen2/sparc-sun/tst/fields.s, revision 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.