1 .section ".tbss", "awT", @nobits 2 .globl bg1, bg2 3 bg1: .space 4 4 bg2: .space 4 5 bl1: .space 4 6 bl2: .space 4 7 .text 8 .globl _start 9 .type _start,@function 10 _start: 11 mov.l r12,@-r15 12 mov.l r14,@-r15 13 mov r15,r14 14 ! Set up .GOT pointer for non-pic @gottpoff sequences 15 mova .L3,r0 16 mov.l .L3,r12 17 add r0,r12 18 nop;nop;nop;nop 19 20 ! @GOTTPOFF IE against global var 21 mov.l 1f,r0 22 stc gbr,r1 23 mov.l @(r0,r12),r0 24 bra 2f 25 add r0,r1 26 .align 2 27 1: .long sG3@GOTTPOFF 28 2: 29 nop;nop;nop;nop 30 31 ! @GOTTPOFF IE -> LE against global var defined in exec 32 mov.l 1f,r0 33 stc gbr,r1 34 mov.l @(r0,r12),r0 35 bra 2f 36 add r0,r1 37 .align 2 38 1: .long bg1@GOTTPOFF 39 2: 40 nop;nop;nop;nop 41 42 ! @GOTTPOFF IE -> LE against local var 43 mov.l 1f,r0 44 stc gbr,r1 45 mov.l @(r0,r12),r0 46 bra 2f 47 add r0,r1 48 .align 2 49 1: .long bl2@GOTTPOFF 50 2: 51 nop;nop;nop;nop 52 53 ! @GOTTPOFF IE -> LE against hidden but not local var 54 mov.l 1f,r0 55 stc gbr,r1 56 mov.l @(r0,r12),r0 57 bra 2f 58 add r0,r1 59 .align 2 60 1: .long sh2@GOTTPOFF 61 2: 62 nop;nop;nop;nop 63 64 ! LE @TPOFF, global var defined in exec 65 stc gbr,r1 66 mov.l .L4,r0 67 add r1,r0 68 nop;nop;nop;nop 69 70 ! LE @TPOFF, local var 71 stc gbr,r1 72 mov.l .L5,r0 73 add r1,r0 74 nop;nop;nop;nop 75 76 ! LE @TPOFF, hidden var defined in exec 77 stc gbr,r1 78 mov.l .L6,r0 79 add r1,r0 80 nop;nop;nop;nop 81 82 mov r14,r15 83 rts 84 mov.l @r15+,r14 85 86 .align 2 87 .L3: .long _GLOBAL_OFFSET_TABLE_ 88 .L4: .long sg1@TPOFF 89 .L5: .long bl1@TPOFF 90 .L6: .long sh1@TPOFF 91