gas/testsuite/ChangeLog

* gas/i386/general.{s,l}: Move 16 bit jmp and call tests from here
	* gas/i386/jump16.{s,d}: To here.
	* gas/i386/jump.{s,d}: New files.  Duplicate 32 bit jmp and call
	tests in general.s so that objdump is exercised.

	* gas/i386/i386.exp: Call new tests.
This commit is contained in:
Alan Modra
2000-01-21 10:18:33 +00:00
parent 06b53c1bff
commit a3d1c52b07
8 changed files with 175 additions and 187 deletions

View File

@ -1,3 +1,12 @@
2000-01-21 Alan Modra <alan@spri.levels.unisa.edu.au>
* gas/i386/general.{s,l}: Move 16 bit jmp and call tests from here
* gas/i386/jump16.{s,d}: To here.
* gas/i386/jump.{s,d}: New files. Duplicate 32 bit jmp and call
tests in general.s so that objdump is exercised.
* gas/i386/i386.exp: Call new tests.
2000-01-15 Alan Modra <alan@spri.levels.unisa.edu.au> 2000-01-15 Alan Modra <alan@spri.levels.unisa.edu.au>
* gas/i386/general.{s,l}: Add jmp and call tests for .code16gcc, * gas/i386/general.{s,l}: Add jmp and call tests for .code16gcc,

View File

@ -35,26 +35,6 @@
.*:180: Warning:.* .*:180: Warning:.*
.*:182: Warning:.* .*:182: Warning:.*
.*:184: Warning:.* .*:184: Warning:.*
.*:191: Warning:.*
.*:193: Warning:.*
.*:195: Warning:.*
.*:197: Warning:.*
.*:199: Warning:.*
.*:205: Warning:.*
.*:207: Warning:.*
.*:209: Warning:.*
.*:211: Warning:.*
.*:213: Warning:.*
.*:220: Warning:.*
.*:222: Warning:.*
.*:224: Warning:.*
.*:226: Warning:.*
.*:228: Warning:.*
.*:234: Warning:.*
.*:236: Warning:.*
.*:238: Warning:.*
.*:240: Warning:.*
.*:242: Warning:.*
1 .psize 0 1 .psize 0
2 .text 2 .text
3 # test various segment reg insns 3 # test various segment reg insns
@ -239,123 +219,45 @@
156 0160 67668984 248C0000 movl %eax,140\(%esp\) 156 0160 67668984 248C0000 movl %eax,140\(%esp\)
156 00 156 00
157 157
158 .extern xxx 158 .code32
159 0169 EB98 jmp 1b 159 0169 EB98 jmp 1b
160 016b E9FEFF jmp xxx 160 016b E9FCFFFF FF jmp xxx
161 016e FF260000 jmp \*xxx 161 0170 FF250000 0000 jmp \*xxx
162 0172 FF260000 jmp xxx\(,1\) 162 0176 FF250000 0000 jmp xxx\(,1\)
.*Warning:.* .*Warning:.*
163 0176 66FFE7 jmp \*%edi 163 017c FFE7 jmp \*%edi
164 0179 66FFE7 jmp %edi 164 017e FFE7 jmp %edi
.*Warning:.* .*Warning:.*
165 017c 67FF27 jmp \*\(%edi\) 165 0180 FF27 jmp \*\(%edi\)
166 017f 67FF27 jmp \(%edi\) 166 0182 FF27 jmp \(%edi\)
.*Warning:.* .*Warning:.*
167 0182 67FFAF00 000000 ljmp \*xxx\(%edi\) 167 0184 FF2CBD00 000000 ljmp \*xxx\(,%edi,4\)
168 0189 67FFAF00 000000 ljmp xxx\(%edi\) 168 018b FF2CBD00 000000 ljmp xxx\(,%edi,4\)
.*Warning:.* .*Warning:.*
169 0190 FF2E0000 ljmp \*xxx 169 0192 FF2D0000 0000 ljmp \*xxx
170 0194 FF2E0000 ljmp xxx\(,1\) 170 0198 FF2D0000 0000 ljmp xxx\(,1\)
.*Warning:.* .*Warning:.*
171 0198 EA000034 12 ljmp \$0x1234,\$xxx 171 019e EA000000 003412 ljmp \$0x1234,\$xxx
172 172
173 019d 66E860FF FFFF call 1b 173 01a5 E859FFFF FF call 1b
174 01a3 66E8FCFF FFFF call xxx 174 01aa E8FCFFFF FF call xxx
175 01a9 66FF1600 00 call \*xxx 175 01af FF150000 0000 call \*xxx
176 01ae 66FF1600 00 call xxx\(,1\) 176 01b5 FF150000 0000 call xxx\(,1\)
.*Warning:.* .*Warning:.*
177 01b3 66FFD7 call \*%edi 177 01bb FFD7 call \*%edi
178 01b6 66FFD7 call %edi 178 01bd FFD7 call %edi
.*Warning:.* .*Warning:.*
179 01b9 6766FF17 call \*\(%edi\) 179 01bf FF17 call \*\(%edi\)
180 01bd 6766FF17 call \(%edi\) 180 01c1 FF17 call \(%edi\)
.*Warning:.* .*Warning:.*
181 01c1 6766FF9F 00000000 lcall \*xxx\(%edi\) 181 01c3 FF1CBD00 000000 lcall \*xxx\(,%edi,4\)
182 01c9 6766FF9F 00000000 lcall xxx\(%edi\) 182 01ca FF1CBD00 000000 lcall xxx\(,%edi,4\)
.*Warning:.* .*Warning:.*
183 01d1 66FF1E00 00 lcall \*xxx 183 01d1 FF1D0000 0000 lcall \*xxx
184 01d6 66FF1E00 00 lcall xxx\(,1\) 184 01d7 FF1D0000 0000 lcall xxx\(,1\)
.*Warning:.* .*Warning:.*
185 01db 669A0000 00003412 lcall \$0x1234,\$xxx 185 01dd 9A000000 003412 lcall \$0x1234,\$xxx
186 186
187 .code16 187 # Force a good alignment.
188 01e3 E91DFF jmp 1b 188 01e4 00000000 00000000 .p2align 4,0
189 01e6 E9FEFF jmp xxx 188 00000000
190 01e9 FF260000 jmp \*xxx
191 01ed FF260000 jmp xxx\(,1\)
.*Warning:.*
192 01f1 FFE7 jmp \*%di
193 01f3 FFE7 jmp %di
.*Warning:.*
194 01f5 FF25 jmp \*\(%di\)
195 01f7 FF25 jmp \(%di\)
.*Warning:.*
196 01f9 FFAD0000 ljmp \*xxx\(%di\)
197 01fd FFAD0000 ljmp xxx\(%di\)
.*Warning:.*
198 0201 FF2E0000 ljmp \*xxx
199 0205 FF2E0000 ljmp xxx\(,1\)
.*Warning:.*
200 0209 EA000034 12 ljmp \$0x1234,\$xxx
201
202 020e E8F2FE call 1b
203 0211 E8FEFF call xxx
204 0214 FF160000 call \*xxx
205 0218 FF160000 call xxx\(,1\)
.*Warning:.*
206 021c FFD7 call \*%di
207 021e FFD7 call %di
.*Warning:.*
208 0220 FF15 call \*\(%di\)
209 0222 FF15 call \(%di\)
.*Warning:.*
210 0224 FF9D0000 lcall \*xxx\(%di\)
211 0228 FF9D0000 lcall xxx\(%di\)
.*Warning:.*
212 022c FF1E0000 lcall \*xxx
213 0230 FF1E0000 lcall xxx\(,1\)
.*Warning:.*
214 0234 9A000034 12 lcall \$0x1234,\$xxx
215
216 .code32
217 0239 E9C5FEFF FF jmp 1b
218 023e E9FCFFFF FF jmp xxx
219 0243 FF250000 0000 jmp \*xxx
220 0249 FF250000 0000 jmp xxx\(,1\)
.*Warning:.*
221 024f FFE7 jmp \*%edi
222 0251 FFE7 jmp %edi
.*Warning:.*
223 0253 FF27 jmp \*\(%edi\)
224 0255 FF27 jmp \(%edi\)
.*Warning:.*
225 0257 FF2CBD00 000000 ljmp \*xxx\(,%edi,4\)
226 025e FF2CBD00 000000 ljmp xxx\(,%edi,4\)
.*Warning:.*
227 0265 FF2D0000 0000 ljmp \*xxx
228 026b FF2D0000 0000 ljmp xxx\(,1\)
.*Warning:.*
229 0271 EA000000 003412 ljmp \$0x1234,\$xxx
230
231 0278 E886FEFF FF call 1b
232 027d E8FCFFFF FF call xxx
233 0282 FF150000 0000 call \*xxx
234 0288 FF150000 0000 call xxx\(,1\)
.*Warning:.*
235 028e FFD7 call \*%edi
236 0290 FFD7 call %edi
.*Warning:.*
237 0292 FF17 call \*\(%edi\)
238 0294 FF17 call \(%edi\)
.*Warning:.*
239 0296 FF1CBD00 000000 lcall \*xxx\(,%edi,4\)
240 029d FF1CBD00 000000 lcall xxx\(,%edi,4\)
.*Warning:.*
241 02a4 FF1D0000 0000 lcall \*xxx
242 02aa FF1D0000 0000 lcall xxx\(,1\)
.*Warning:.*
243 02b0 9A000000 003412 lcall \$0x1234,\$xxx
244
245 # Force a good alignment.
246 02b7 00000000 00000000 .p2align 4,0
246 00

View File

@ -155,64 +155,6 @@
leal -1760(%ebp),%ebx leal -1760(%ebp),%ebx
movl %eax,140(%esp) movl %eax,140(%esp)
.extern xxx
jmp 1b
jmp xxx
jmp *xxx
jmp xxx(,1)
jmp *%edi
jmp %edi
jmp *(%edi)
jmp (%edi)
ljmp *xxx(%edi)
ljmp xxx(%edi)
ljmp *xxx
ljmp xxx(,1)
ljmp $0x1234,$xxx
call 1b
call xxx
call *xxx
call xxx(,1)
call *%edi
call %edi
call *(%edi)
call (%edi)
lcall *xxx(%edi)
lcall xxx(%edi)
lcall *xxx
lcall xxx(,1)
lcall $0x1234,$xxx
.code16
jmp 1b
jmp xxx
jmp *xxx
jmp xxx(,1)
jmp *%di
jmp %di
jmp *(%di)
jmp (%di)
ljmp *xxx(%di)
ljmp xxx(%di)
ljmp *xxx
ljmp xxx(,1)
ljmp $0x1234,$xxx
call 1b
call xxx
call *xxx
call xxx(,1)
call *%di
call %di
call *(%di)
call (%di)
lcall *xxx(%di)
lcall xxx(%di)
lcall *xxx
lcall xxx(,1)
lcall $0x1234,$xxx
.code32 .code32
jmp 1b jmp 1b
jmp xxx jmp xxx

View File

@ -26,11 +26,13 @@ if [istarget "i*86-*-*"] then {
run_dump_test "prefix" run_dump_test "prefix"
run_dump_test "amd" run_dump_test "amd"
run_dump_test "katmai" run_dump_test "katmai"
run_dump_test "jump"
# The reloc and white tests require support for 8 and 16 bit # These tests require support for 8 and 16 bit relocs,
# relocs, so we only run them for ELF and COFF targets. # so we only run them for ELF and COFF targets.
if {[istarget "*-*-elf*"] || [istarget "*-*-linux*"] || [istarget "*-*-coff*"]} then { if {[istarget "*-*-elf*"] || [istarget "*-*-linux*"] || [istarget "*-*-coff*"]} then {
run_dump_test "reloc" run_dump_test "reloc"
run_dump_test "jump16"
run_list_test "white" "-al --listing-lhs-width=3" run_list_test "white" "-al --listing-lhs-width=3"
} }
} }

View File

@ -0,0 +1,26 @@
#name: i386 jump
#objdump: -drw
.*: +file format .*i386.*
Disassembly of section .text:
0+000 <.text>:
0: eb fe [ ]*jmp (0x0|0 <.text>)
2: e9 (fc|f9) ff ff ff [ ]*jmp (0x3|0 <.text>) 3: (R_386_PC)?(DISP)?32 xxx
7: ff 25 00 00 00 00 [ ]*jmp \*0x0 9: (R_386_)?(dir)?32 xxx
d: ff e7 [ ]*jmp \*%edi
f: ff 27 [ ]*jmp \*\(%edi\)
11: ff 2c bd 00 00 00 00 [ ]*ljmp \*0x0\(,%edi,4\) 14: (R_386_)?(dir)?32 xxx
18: ff 2d 00 00 00 00 [ ]*ljmp \*0x0 1a: (R_386_)?(dir)?32 xxx
1e: ea 00 00 00 00 34 12 [ ]*ljmp \$0x1234,\$0x0 1f: (R_386_)?(dir)?32 xxx
25: e8 d6 ff ff ff [ ]*call (0x0|0 <.text>)
2a: e8 (fc|d1) ff ff ff [ ]*call (0x2b|0 <.text>) 2b: (R_386_PC)?(DISP)?32 xxx
2f: ff 15 00 00 00 00 [ ]*call \*0x0 31: (R_386_)?(dir)?32 xxx
35: ff d7 [ ]*call \*%edi
37: ff 17 [ ]*call \*\(%edi\)
39: ff 1c bd 00 00 00 00 [ ]*lcall \*0x0\(,%edi,4\) 3c: (R_386_)?(dir)?32 xxx
40: ff 1d 00 00 00 00 [ ]*lcall \*0x0 42: (R_386_)?(dir)?32 xxx
46: 9a 00 00 00 00 34 12 [ ]*lcall \$0x1234,\$0x0 47: (R_386_)?(dir)?32 xxx
4d:.*
.*

View File

@ -0,0 +1,24 @@
.psize 0
.text
.extern xxx
1: jmp 1b
jmp xxx
jmp *xxx
jmp *%edi
jmp *(%edi)
ljmp *xxx(,%edi,4)
ljmp *xxx
ljmp $0x1234,$xxx
call 1b
call xxx
call *xxx
call *%edi
call *(%edi)
lcall *xxx(,%edi,4)
lcall *xxx
lcall $0x1234,$xxx
# Force a good alignment.
.p2align 4,0

View File

@ -0,0 +1,40 @@
#name: i386 jump16
#objdump: -drw -mi8086
.*: file format .*i386.*
Disassembly of section .text:
0+000 <.text>:
0: eb fe [ ]*jmp (0x0|0 <.text>)
2: e9 (fe|fb) ff [ ]*jmp (0x3|0 <.text>) 3: (R_386_PC)?(DISP)?16 xxx
5: ff 26 00 00 [ ]*jmp \*0 7: (R_386_)?(dir)?16 xxx
9: 66 ff e7 [ ]*jmpl \*%edi
c: 67 ff 27 [ ]*addr32 jmp \*\(%edi\)
f: 67 ff af 00 00 00 00 [ ]*addr32 ljmp \*0x0\(%edi\) 12: (R_386_)?(dir)?32 xxx
16: ff 2e 00 00 [ ]*ljmp \*0 18: (R_386_)?(dir)?16 xxx
1a: ea 00 00 34 12 [ ]*ljmp \$0x1234,\$0x0 1b: (R_386_)?(dir)?16 xxx
1f: 66 e8 db ff ff ff [ ]*calll (0x0|0 <.text>)
25: 66 e8 (fc|d5) ff ff ff [ ]*calll (0x27|0 <.text>) 27: (R_386_PC)?(DISP)?32 xxx
2b: 66 ff 16 00 00 [ ]*calll \*0 2e: (R_386_)?(dir)?16 xxx
30: 66 ff d7 [ ]*calll \*%edi
33: 67 66 ff 17 [ ]*addr32 calll \*\(%edi\)
37: 67 66 ff 9f 00 00 00 00 [ ]*addr32 lcalll \*0x0\(%edi\) 3b: (R_386_)?(dir)?32 xxx
3f: 66 ff 1e 00 00 [ ]*lcalll \*0 42: (R_386_)?(dir)?16 xxx
44: 66 9a 00 00 00 00 34 12 [ ]*lcalll \$0x1234,\$0x0 46: (R_386_)?(dir)?32 xxx
4c: eb b2 [ ]*jmp (0x0|0 <.text>)
4e: ff 26 00 00 [ ]*jmp \*0 50: (R_386_)?(dir)?16 xxx
52: ff e7 [ ]*jmp \*%di
54: ff 25 [ ]*jmp \*\(%di\)
56: ff ad 00 00 [ ]*ljmp \*0\(%di\) 58: (R_386_)?(dir)?16 xxx
5a: ff 2e 00 00 [ ]*ljmp \*0 5c: (R_386_)?(dir)?16 xxx
5e: ea 00 00 34 12 [ ]*ljmp \$0x1234,\$0x0 5f: (R_386_)?(dir)?16 xxx
63: e8 9a ff [ ]*call (0x0|0 <.text>)
66: e8 (fe|97) ff [ ]*call (0x67|0 <.text>) 67: (R_386_PC)?(DISP)?16 xxx
69: ff 16 00 00 [ ]*call \*0 6b: (R_386_)?(dir)?16 xxx
6d: ff d7 [ ]*call \*%di
6f: ff 15 [ ]*call \*\(%di\)
71: ff 9d 00 00 [ ]*lcall \*0\(%di\) 73: (R_386_)?(dir)?16 xxx
75: ff 1e 00 00 [ ]*lcall \*0 77: (R_386_)?(dir)?16 xxx
79: 9a 00 00 34 12 [ ]*lcall \$0x1234,\$0x0 7a: (R_386_)?(dir)?16 xxx
...

View File

@ -0,0 +1,43 @@
.psize 0
.text
.extern xxx
.code16gcc
1: jmp 1b
jmp xxx
jmp *xxx
jmp *%edi
jmp *(%edi)
ljmp *xxx(%edi)
ljmp *xxx
ljmp $0x1234,$xxx
call 1b
call xxx
call *xxx
call *%edi
call *(%edi)
lcall *xxx(%edi)
lcall *xxx
lcall $0x1234,$xxx
.code16
jmp 1b
jmp *xxx
jmp *%di
jmp *(%di)
ljmp *xxx(%di)
ljmp *xxx
ljmp $0x1234,$xxx
call 1b
call xxx
call *xxx
call *%di
call *(%di)
lcall *xxx(%di)
lcall *xxx
lcall $0x1234,$xxx
# Force a good alignment.
.p2align 4,0