Commit | Line | Data |
---|---|---|
6c381eeb KK |
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 |