Upload Tizen:Base source
[external/binutils.git] / gas / testsuite / gas / i386 / reloc32.s
1  .macro bad args:vararg
2   .ifdef _bad_
3         \args
4   .endif
5  .endm
6
7  .macro ill args:vararg
8   # This is used to mark entries that aren't handled consistently,
9   # and thus shouldn't currently be checked for.
10   #     \args
11  .endm
12
13  .text
14 _start:
15         mov     $xtrn, %eax
16         mov     $xtrn, %ax
17         mov     $xtrn, %al
18         mov     xtrn(%ebx), %eax
19         mov     xtrn(%bx), %eax
20
21         mov     $(xtrn - .), %eax
22         mov     $(xtrn - .), %ax
23         mov     $(xtrn - .), %al
24         mov     xtrn - .(%ebx), %eax
25         mov     xtrn - .(%bx), %eax
26         call    xtrn
27         jecxz   xtrn
28
29         mov     $xtrn@got, %eax
30 bad     mov     $xtrn@got, %ax
31 bad     mov     $xtrn@got, %al
32         mov     xtrn@got(%ebx), %eax
33 bad     mov     xtrn@got(%bx), %eax
34 bad     call    xtrn@got
35
36         mov     $xtrn@gotoff, %eax
37 bad     mov     $xtrn@gotoff, %ax
38 bad     mov     $xtrn@gotoff, %al
39         mov     xtrn@gotoff(%ebx), %eax
40 bad     mov     xtrn@gotoff(%bx), %eax
41 bad     call    xtrn@gotoff
42
43         add     $_GLOBAL_OFFSET_TABLE_, %eax
44 ill     add     $_GLOBAL_OFFSET_TABLE_, %ax
45 ill     add     $_GLOBAL_OFFSET_TABLE_, %al
46         add     $(_GLOBAL_OFFSET_TABLE_ - .), %eax
47 ill     add     $(_GLOBAL_OFFSET_TABLE_ - .), %ax
48 ill     add     $(_GLOBAL_OFFSET_TABLE_ - .), %al
49
50         mov     $xtrn@plt, %eax
51 bad     mov     $xtrn@plt, %ax
52 bad     mov     $xtrn@plt, %al
53         mov     xtrn@plt(%ebx), %eax
54 bad     mov     xtrn@plt(%bx), %eax
55         call    xtrn@plt
56 bad     jecxz   xtrn@plt
57
58         mov     $xtrn@tlsgd, %eax
59 bad     mov     $xtrn@tlsgd, %ax
60 bad     mov     $xtrn@tlsgd, %al
61         mov     xtrn@tlsgd(%ebx), %eax
62 bad     mov     xtrn@tlsgd(%bx), %eax
63 bad     call    xtrn@tlsgd
64
65         mov     $xtrn@gotntpoff, %eax
66 bad     mov     $xtrn@gotntpoff, %ax
67 bad     mov     $xtrn@gotntpoff, %al
68         mov     xtrn@gotntpoff(%ebx), %eax
69 bad     mov     xtrn@gotntpoff(%bx), %eax
70 bad     call    xtrn@gotntpoff
71
72         mov     $xtrn@indntpoff, %eax
73 bad     mov     $xtrn@indntpoff, %ax
74 bad     mov     $xtrn@indntpoff, %al
75         mov     xtrn@indntpoff(%ebx), %eax
76 bad     mov     xtrn@indntpoff(%bx), %eax
77 bad     call    xtrn@indntpoff
78
79         mov     $xtrn@gottpoff, %eax
80 bad     mov     $xtrn@gottpoff, %ax
81 bad     mov     $xtrn@gottpoff, %al
82         mov     xtrn@gottpoff(%ebx), %eax
83 bad     mov     xtrn@gottpoff(%bx), %eax
84 bad     call    xtrn@gottpoff
85
86         mov     $xtrn@tlsldm, %eax
87 bad     mov     $xtrn@tlsldm, %ax
88 bad     mov     $xtrn@tlsldm, %al
89         mov     xtrn@tlsldm(%ebx), %eax
90 bad     mov     xtrn@tlsldm(%bx), %eax
91 bad     call    xtrn@tlsldm
92
93         mov     $xtrn@dtpoff, %eax
94 bad     mov     $xtrn@dtpoff, %ax
95 bad     mov     $xtrn@dtpoff, %al
96         mov     xtrn@dtpoff(%ebx), %eax
97 bad     mov     xtrn@dtpoff(%bx), %eax
98 bad     call    xtrn@dtpoff
99
100         mov     $xtrn@ntpoff, %eax
101 bad     mov     $xtrn@ntpoff, %ax
102 bad     mov     $xtrn@ntpoff, %al
103         mov     xtrn@ntpoff(%ebx), %eax
104 bad     mov     xtrn@ntpoff(%bx), %eax
105 bad     call    xtrn@ntpoff
106
107         mov     $xtrn@tpoff, %eax
108 bad     mov     $xtrn@tpoff, %ax
109 bad     mov     $xtrn@tpoff, %al
110         mov     xtrn@tpoff(%ebx), %eax
111 bad     mov     xtrn@tpoff(%bx), %eax
112 bad     call    xtrn@tpoff
113
114  .data
115         .long   xtrn
116         .long   xtrn - .
117         .long   xtrn@got
118         .long   xtrn@gotoff
119         .long   _GLOBAL_OFFSET_TABLE_
120         .long   _GLOBAL_OFFSET_TABLE_ - .
121         .long   xtrn@plt
122         .long   xtrn@tlsgd
123         .long   xtrn@gotntpoff
124         .long   xtrn@indntpoff
125         .long   xtrn@gottpoff
126         .long   xtrn@tlsldm
127         .long   xtrn@dtpoff
128         .long   xtrn@ntpoff
129         .long   xtrn@tpoff
130         
131         .word   xtrn
132         .word   xtrn - .
133 bad     .word   xtrn@got
134 bad     .word   xtrn@gotoff
135 ill     .word   _GLOBAL_OFFSET_TABLE_
136 ill     .word   _GLOBAL_OFFSET_TABLE_ - .
137 bad     .word   xtrn@plt
138 bad     .word   xtrn@tlsgd
139 bad     .word   xtrn@gotntpoff
140 bad     .word   xtrn@indntpoff
141 bad     .word   xtrn@gottpoff
142 bad     .word   xtrn@tlsldm
143 bad     .word   xtrn@dtpoff
144 bad     .word   xtrn@ntpoff
145 bad     .word   xtrn@tpoff
146
147         .byte   xtrn
148         .byte   xtrn - .
149 bad     .byte   xtrn@got
150 bad     .byte   xtrn@gotoff
151 ill     .byte   _GLOBAL_OFFSET_TABLE_
152 ill     .byte   _GLOBAL_OFFSET_TABLE_ - .
153 bad     .byte   xtrn@plt
154 bad     .byte   xtrn@tlsgd
155 bad     .byte   xtrn@gotntpoff
156 bad     .byte   xtrn@indntpoff
157 bad     .byte   xtrn@gottpoff
158 bad     .byte   xtrn@tlsldm
159 bad     .byte   xtrn@dtpoff
160 bad     .byte   xtrn@ntpoff
161 bad     .byte   xtrn@tpoff