* gas/i386/absrel.s: New.

* gas/i386/absrel.d: New.
	* gas/i386/pcrel.s: New.
	* gas/i386/pcrel.d: New.
	* gas/i386/i386.exp: Run them.
	* gas/testsuite/gas/mmix/comment-1.d: Don't test the symbol
	index, the name will do.
	* gas/mri/moveml.d: Escape dots.
	* gas/macros/macros.exp (strings): Add rs6000-*-* to xfails.
	* gas/mips/beq.s: Don't make text_label global.
	* gas/mips/mips32.s: Likewise.
	* gas/mips/mips64-mips3d.s: Likewise.
This commit is contained in:
Alan Modra 2002-09-05 00:05:44 +00:00
parent a161fe5320
commit 63ba7a1cc2
12 changed files with 252 additions and 18 deletions

View File

@ -1,3 +1,18 @@
2002-09-05 Alan Modra <amodra@bigpond.net.au>
* gas/i386/absrel.s: New.
* gas/i386/absrel.d: New.
* gas/i386/pcrel.s: New.
* gas/i386/pcrel.d: New.
* gas/i386/i386.exp: Run them.
* gas/testsuite/gas/mmix/comment-1.d: Don't test the symbol
index, the name will do.
* gas/mri/moveml.d: Escape dots.
* gas/macros/macros.exp (strings): Add rs6000-*-* to xfails.
* gas/mips/beq.s: Don't make text_label global.
* gas/mips/mips32.s: Likewise.
* gas/mips/mips64-mips3d.s: Likewise.
2002-08-28 Alan Modra <amodra@bigpond.net.au>
* gas/mcore/allinsn.d: Escape dots. Pass -z to objdump and adjust

View File

@ -0,0 +1,49 @@
#objdump: -drw
#name: i386 abs reloc
.*: +file format .*i386.*
Disassembly of section \.text:
0+000 <loc>:
0: a1 34 12 00 00[ ]*mov 0x1234,%eax
0+005 <glob>:
5: a1 00 00 00 00[ ]*mov 0x0,%eax 6: (R_386_|dir)?32 ext
a: a1 00 00 00 00[ ]*mov 0x0,%eax b: (R_386_|dir)?32 weak
f: (a1 00 00 00 00[ ]*mov 0x0,%eax 10: (R_386_)?32 comm|a1 04 00 00 00[ ]*mov 0x4,%eax 10: dir32 comm.*)
14: a1 00 00 00 00[ ]*mov 0x0,%eax 15: (R_386_|dir)?32 \.text
19: (a1 00 00 00 00[ ]*mov 0x0,%eax 1a: R_386_32 glob|a1 05 00 00 00[ ]*mov 0x5,%eax 1a: (dir)?32 \.text)
1e: a1 76 98 00 00[ ]*mov 0x9876,%eax
23: a1 00 01 00 00[ ]*mov 0x100,%eax 24: (R_386_|dir)?32 \.text
28: (a1 00 00 00 00[ ]*mov 0x0,%eax 29: R_386_32 glob2|a1 05 01 00 00[ ]*mov 0x105,%eax 29: (dir)?32 \.text)
2d: (a1 00 00 00 00[ ]*mov 0x0,%eax 2e: (R_386_|dir)32 \.data|a1 00 01 00 00[ ]*mov 0x100,%eax 2e: 32 \.data.*)
32: (a1 04 00 00 00[ ]*mov 0x4,%eax 33: (R_386_|dir)32 \.data|a1 04 01 00 00[ ]*mov 0x104,%eax 33: 32 \.data.*)
37: a1 00 00 00 00[ ]*mov 0x0,%eax
3c: a1 cc ed ff ff[ ]*mov 0xffffedcc,%eax 3d: (R_386_|dir)?32 ext
41: a1 cc ed ff ff[ ]*mov 0xffffedcc,%eax 42: (R_386_|dir)?32 weak
46: (a1 cc ed ff ff[ ]*mov 0xffffedcc,%eax 47: (R_386_)?32 comm|a1 d0 ed ff ff[ ]*mov 0xffffedd0,%eax 47: dir32 comm.*)
4b: a1 cc ed ff ff[ ]*mov 0xffffedcc,%eax 4c: (R_386_|dir)?32 \.text
50: (a1 cc ed ff ff[ ]*mov 0xffffedcc,%eax 51: R_386_32 glob|a1 d1 ed ff ff[ ]*mov 0xffffedd1,%eax 51: (dir)?32 \.text)
55: a1 42 86 00 00[ ]*mov 0x8642,%eax
5a: a1 cc ee ff ff[ ]*mov 0xffffeecc,%eax 5b: (R_386_|dir)?32 \.text
5f: (a1 cc ed ff ff[ ]*mov 0xffffedcc,%eax 60: R_386_32 glob2|a1 d1 ee ff ff[ ]*mov 0xffffeed1,%eax 60: (dir)?32 \.text)
64: (a1 cc ed ff ff[ ]*mov 0xffffedcc,%eax 65: (R_386_|dir)32 \.data|a1 cc ee ff ff[ ]*mov 0xffffeecc,%eax 65: 32 \.data.*)
69: (a1 d0 ed ff ff[ ]*mov 0xffffedd0,%eax 6a: (R_386_|dir)32 \.data|a1 d0 ee ff ff[ ]*mov 0xffffeed0,%eax 6a: 32 \.data.*)
6e: a1 be 79 ff ff[ ]*mov 0xffff79be,%eax
73: a1 8a 67 ff ff[ ]*mov 0xffff678a,%eax 74: (R_386_|dir)?32 ext
78: a1 8a 67 ff ff[ ]*mov 0xffff678a,%eax 79: (R_386_|dir)?32 weak
7d: (a1 8a 67 ff ff[ ]*mov 0xffff678a,%eax 7e: (R_386_)?32 comm|a1 8e 67 ff ff[ ]*mov 0xffff678e,%eax 7e: dir32 comm.*)
82: a1 8a 67 ff ff[ ]*mov 0xffff678a,%eax 83: (R_386_|dir)?32 \.text
87: (a1 8a 67 ff ff[ ]*mov 0xffff678a,%eax 88: R_386_32 glob|a1 8f 67 ff ff[ ]*mov 0xffff678f,%eax 88: (dir)?32 \.text)
8c: a1 00 00 00 00[ ]*mov 0x0,%eax
91: a1 8a 68 ff ff[ ]*mov 0xffff688a,%eax 92: (R_386_|dir)?32 \.text
96: (a1 8a 67 ff ff[ ]*mov 0xffff678a,%eax 97: R_386_32 glob2|a1 8f 68 ff ff[ ]*mov 0xffff688f,%eax 97: (dir)?32 \.text)
9b: (a1 8a 67 ff ff[ ]*mov 0xffff678a,%eax 9c: (R_386_|dir)32 \.data|a1 8a 68 ff ff[ ]*mov 0xffff688a,%eax 9c: 32 \.data.*)
a0: (a1 8e 67 ff ff[ ]*mov 0xffff678e,%eax a1: (R_386_|dir)32 \.data|a1 8e 68 ff ff[ ]*mov 0xffff688e,%eax a1: 32 \.data.*)
a5: a1 00 01 00 00[ ]*mov 0x100,%eax
aa: (a1 ab 00 00 00[ ]*mov 0xab,%eax ab: R_386_PC32 glob|a1 05 00 00 00[ ]*mov 0x5,%eax)
af: (a1 b0 ff ff ff[ ]*mov 0xffffffb0,%eax b0: R_386_PC32 glob|a1 05 ff ff ff[ ]*mov 0xffffff05,%eax)
b4: (a1 b5 00 00 00[ ]*mov 0xb5,%eax b5: R_386_PC32 glob2|a1 05 01 00 00[ ]*mov 0x105,%eax)
b9: (a1 ba ff ff ff[ ]*mov 0xffffffba,%eax ba: R_386_PC32 glob2|a1 05 00 00 00[ ]*mov 0x5,%eax)
\.\.\.

View File

@ -0,0 +1,59 @@
abs = 0x1234
.extern ext
.weak weak
.comm comm,4
.global glob
.data
data: .long 0
.text
loc:
mov abs, %eax
glob:
mov ext, %eax
mov weak, %eax
mov comm, %eax
mov loc, %eax
mov glob, %eax
mov abs2, %eax
mov loc2, %eax
mov glob2,%eax
mov data, %eax
mov data2,%eax
mov abs - abs, %eax
mov ext - abs, %eax
mov weak - abs, %eax
mov comm - abs, %eax
mov loc - abs, %eax
mov glob - abs, %eax
mov abs2 - abs, %eax
mov loc2 - abs, %eax
mov glob2 - abs, %eax
mov data - abs, %eax
mov data2 - abs, %eax
mov abs - abs2,%eax
mov ext - abs2,%eax
mov weak - abs2,%eax
mov comm - abs2,%eax
mov loc - abs2,%eax
mov glob - abs2,%eax
mov abs2 - abs2,%eax
mov loc2 - abs2,%eax
mov glob2 - abs2,%eax
mov data - abs2,%eax
mov data2 - abs2,%eax
mov loc2 - loc, %eax
mov glob - loc, %eax
mov glob - loc2,%eax
mov glob2 - loc, %eax
mov glob2 - loc2,%eax
.org 0x100
loc2:
.global glob2
glob2 = loc2 + 5
abs2 = 0x9876
.data
data2: .long 0

View File

@ -53,6 +53,8 @@ if [expr ([istarget "i*86-*-*"] || [istarget "x86_64-*-*"]) && [gas_32_check]]
run_dump_test "jump"
run_dump_test "ssemmx2"
run_dump_test "sse2"
run_dump_test "absrel"
run_dump_test "pcrel"
# PIC is only supported on ELF targets.
if { ([istarget "*-*-elf*"] || [istarget "*-*-linux*"] )

View File

@ -0,0 +1,49 @@
#objdump: -drw
#name: i386 pcrel reloc
.*: +file format .*i386.*
Disassembly of section \.text:
0+000 <loc>:
( 0: e9 30 12 00 00[ ]*jmp 1235 .*1: R_386_PC32 \*ABS\*| 0: e9 2f 12 00 00[ ]*jmp 1234 .*1: DISP32 \*ABS\*)
0+005 <glob>:
( 5: e9 fc ff ff ff[ ]*jmp 6 .*6: R_386_PC32 ext| 5: e9 f6 ff ff ff[ ]*jmp 0 .*6: DISP32 ext)
( a: e9 fc ff ff ff[ ]*jmp b .*b: R_386_PC32 weak| a: e9 f1 ff ff ff[ ]*jmp 0 .*b: DISP32 weak)
( f: e9 fc ff ff ff[ ]*jmp 10 .*10: R_386_PC32 comm| f: e9 ec ff ff ff[ ]*jmp 0 .*10: DISP32 comm| f: e9 f0 ff ff ff jmp 4 .*10: DISP32 comm.*)
(14: eb ea [ ]*jmp 0 .*|14: eb ea[ ]*jmp 0 .*)
(16: e9 fc ff ff ff[ ]*jmp 17 .*17: R_386_PC32 glob|16: eb ed[ ]*jmp 5 .*)
(1b: e9 72 98 00 00[ ]*jmp 9892 .*1c: R_386_PC32 \*ABS\*|18: e9 59 98 00 00[ ]*jmp 9876 .*19: DISP32 \*ABS\*)
(20: e9 db 00 00 00[ ]*jmp 100 .*|1d: e9 de 00 00 00[ ]*jmp 100 .*)
(25: e9 fc ff ff ff[ ]*jmp 26 .*26: R_386_PC32 glob2|22: e9 de 00 00 00[ ]*jmp 105 .*)
(2a: e9 fc ff ff ff[ ]*jmp 2b .*2b: R_386_PC32 \.data|27: e9 d4 00 00 00[ ]*jmp 100 .*28: DISP32 \.data.*|27: e9 d4 ff ff ff jmp 0 .*28: DISP32 \.data)
(2f: e9 00 00 00 00[ ]*jmp 34 .*30: R_386_PC32 \.data|2c: e9 d3 00 00 00[ ]*jmp 104 .*2d: DISP32 \.data.*|2c: e9 d3 ff ff ff jmp 4 .*2d: DISP32 \.data)
(34: e9 fc ff ff ff[ ]*jmp 35 .*35: R_386_PC32 \*ABS\*|31: e9 ca ff ff ff[ ]*jmp 0 .*32: DISP32 \*ABS\*)
(39: e9 c8 ed ff ff[ ]*jmp ffffee06 .*3a: R_386_PC32 ext|36: e9 91 ed ff ff[ ]*jmp ffffedcc .*37: DISP32 ext)
(3e: e9 c8 ed ff ff[ ]*jmp ffffee0b .*3f: R_386_PC32 weak|3b: e9 8c ed ff ff[ ]*jmp ffffedcc .*3c: DISP32 weak)
(43: e9 c8 ed ff ff[ ]*jmp ffffee10 .*44: R_386_PC32 comm|40: e9 87 ed ff ff[ ]*jmp ffffedcc .*41: DISP32 comm|40: e9 8b ed ff ff jmp ffffedd0 .*41: DISP32 comm.*)
(48: e9 7f ed ff ff[ ]*jmp ffffedcc .*|45: e9 82 ed ff ff[ ]*jmp ffffedcc .*)
(4d: e9 c8 ed ff ff[ ]*jmp ffffee1a .*4e: R_386_PC32 glob|4a: e9 82 ed ff ff[ ]*jmp ffffedd1 .*)
(52: e9 3e 86 00 00[ ]*jmp 8695 .*53: R_386_PC32 \*ABS\*|4f: e9 ee 85 00 00[ ]*jmp 8642 .*50: DISP32 \*ABS\*)
(57: e9 70 ee ff ff[ ]*jmp ffffeecc .*|54: e9 73 ee ff ff[ ]*jmp ffffeecc .*)
(5c: e9 c8 ed ff ff[ ]*jmp ffffee29 .*5d: R_386_PC32 glob2|59: e9 73 ee ff ff[ ]*jmp ffffeed1 .*)
(61: e9 c8 ed ff ff[ ]*jmp ffffee2e .*62: R_386_PC32 \.data|5e: e9 69 ee ff ff[ ]*jmp ffffeecc .*5f: DISP32 \.data.*|5e: e9 69 ed ff ff jmp ffffedcc .*5f: DISP32 \.data)
(66: e9 cc ed ff ff[ ]*jmp ffffee37 .*67: R_386_PC32 \.data|63: e9 68 ee ff ff[ ]*jmp ffffeed0 .*64: DISP32 \.data.*|63: e9 68 ed ff ff jmp ffffedd0 .*64: DISP32 \.data)
(6b: e9 ba 79 ff ff[ ]*jmp ffff7a2a .*6c: R_386_PC32 \*ABS\*|68: e9 51 79 ff ff[ ]*jmp ffff79be .*69: DISP32 \*ABS\*)
(70: e9 86 67 ff ff[ ]*jmp ffff67fb .*71: R_386_PC32 ext|6d: e9 18 67 ff ff[ ]*jmp ffff678a .*6e: DISP32 ext)
(75: e9 86 67 ff ff[ ]*jmp ffff6800 .*76: R_386_PC32 weak|72: e9 13 67 ff ff[ ]*jmp ffff678a .*73: DISP32 weak)
(7a: e9 86 67 ff ff[ ]*jmp ffff6805 .*7b: R_386_PC32 comm|77: e9 0e 67 ff ff[ ]*jmp ffff678a .*78: DISP32 comm|77: e9 12 67 ff ff jmp ffff678e .*78: DISP32 comm.*)
(7f: e9 06 67 ff ff[ ]*jmp ffff678a .*|7c: e9 09 67 ff ff[ ]*jmp ffff678a .*)
(84: e9 06 67 ff ff[ ]*jmp ffff678f .*|81: e9 09 67 ff ff[ ]*jmp ffff678f .*)
(89: e9 fc ff ff ff[ ]*jmp 8a .*8a: R_386_PC32 \*ABS\*|86: e9 75 ff ff ff[ ]*jmp 0 .*87: DISP32 \*ABS\*)
(8e: e9 f7 67 ff ff[ ]*jmp ffff688a .*|8b: e9 fa 67 ff ff[ ]*jmp ffff688a .*)
(93: e9 f7 67 ff ff[ ]*jmp ffff688f .*|90: e9 fa 67 ff ff[ ]*jmp ffff688f .*)
(98: e9 86 67 ff ff[ ]*jmp ffff6823 .*99: R_386_PC32 \.data|95: e9 f0 67 ff ff[ ]*jmp ffff688a .*96: DISP32 \.data.*|95: e9 f0 66 ff ff jmp ffff678a .*96: DISP32 \.data)
(9d: e9 8a 67 ff ff[ ]*jmp ffff682c .*9e: R_386_PC32 \.data|9a: e9 ef 67 ff ff[ ]*jmp ffff688e .*9b: DISP32 \.data.*|9a: e9 ef 66 ff ff jmp ffff678e .*9b: DISP32 \.data)
(a2: e9 fc 00 00 00[ ]*jmp 1a3 .*a3: R_386_PC32 \*ABS\*|9f: e9 5c 00 00 00[ ]*jmp 100 .*a0: DISP32 \*ABS\*)
(a7: e9 01 00 00 00[ ]*jmp ad .*a8: R_386_PC32 \*ABS\*|a4: e9 5c ff ff ff[ ]*jmp 5 .*a5: DISP32 \*ABS\*)
(ac: e9 01 ff ff ff[ ]*jmp ffffffb2 .*ad: R_386_PC32 \*ABS\*|a9: e9 57 fe ff ff[ ]*jmp ffffff05 .*aa: DISP32 \*ABS\*)
(b1: e9 01 01 00 00[ ]*jmp 1b7 .*b2: R_386_PC32 \*ABS\*|ae: e9 52 00 00 00[ ]*jmp 105 .*af: DISP32 \*ABS\*)
(b6: e9 01 00 00 00[ ]*jmp bc .*b7: R_386_PC32 \*ABS\*|b3: e9 4d ff ff ff[ ]*jmp 5 .*b4: DISP32 \*ABS\*)
\.\.\.

View File

@ -0,0 +1,59 @@
abs = 0x1234
.extern ext
.weak weak
.comm comm,4
.global glob
.data
data: .long 0
.text
loc:
jmp abs
glob:
jmp ext
jmp weak
jmp comm
jmp loc
jmp glob
jmp abs2
jmp loc2
jmp glob2
jmp data
jmp data2
jmp abs - abs
jmp ext - abs
jmp weak - abs
jmp comm - abs
jmp loc - abs
jmp glob - abs
jmp abs2 - abs
jmp loc2 - abs
jmp glob2 - abs
jmp data - abs
jmp data2 - abs
jmp abs - abs2
jmp ext - abs2
jmp weak - abs2
jmp comm - abs2
jmp loc - abs2
jmp glob - abs2
jmp abs2 - abs2
jmp loc2 - abs2
jmp glob2 - abs2
jmp data - abs2
jmp data2 - abs2
jmp loc2 - loc
jmp glob - loc
jmp glob - loc2
jmp glob2 - loc
jmp glob2 - loc2
.org 0x100
loc2:
.global glob2
glob2 = loc2 + 5
abs2 = 0x9876
.data
data2: .long 0

View File

@ -33,6 +33,7 @@ if { ![istarget hppa*-*-*] || [istarget *-*-linux*]} {
# These fail due to NO_STRING_ESCAPES
setup_xfail "powerpc*-*-aix*" "powerpc*-*-beos*" "powerpc*-*-macos*"
setup_xfail "powerpc*-*-mpw*" "powerpc*-*-pe" "powerpc*-*-*win*"
setup_xfail "rs6000-*-*"
# FIXME: Due to difference in what "consecutive octets" means.
setup_xfail "*c54x*-*"

View File

@ -1,5 +1,5 @@
# Source file used to test the beq macro.
.globl text_label .text
.text
text_label:
beq $4,$5,text_label
beq $4,0,text_label

View File

@ -3,7 +3,7 @@
.set noreorder
.set noat
.globl text_label .text
.text
text_label:
# unprivileged CPU instructions

View File

@ -3,7 +3,7 @@
.set noreorder
.set noat
.globl text_label .text
.text
text_label:
addr.ps $f4, $f8, $f19

View File

@ -9,11 +9,11 @@ There are 10 section headers, starting at offset 0x...:
#...
Relocation section '\.rela\.text' at offset 0x... contains 5 entries:
.*
0+34 0+90000001e R_MMIX_ADDR19 +0+ +target +\+ 2c
0+46 0+a00000002 R_MMIX_16 +0+ +target2 +\+ 30
0+48 0+b0000001f R_MMIX_ADDR27 +0+ +target3 +\+ 38
0+54 0+b0000001e R_MMIX_ADDR19 +0+ +target3 +\+ 0
0+78 0+23 R_MMIX_LOCAL +0+30
0+34 .* R_MMIX_ADDR19 +0+ +target +\+ 2c
0+46 .* R_MMIX_16 +0+ +target2 +\+ 30
0+48 .* R_MMIX_ADDR27 +0+ +target3 +\+ 38
0+54 .* R_MMIX_ADDR19 +0+ +target3 +\+ 0
0+78 .* R_MMIX_LOCAL +0+30
Symbol table '\.symtab' contains 12 entries:
Num: Value Size Type Bind Vis Ndx Name

View File

@ -4,24 +4,24 @@
.*: +file format .*
Disassembly of section .text:
Disassembly of section \.text:
0+000 <.text>:
0+000 <\.text>:
0: 4cdf 07fc moveml %sp@\+,%d2-%a2
4: 4cdf 07fc moveml %sp@\+,%d2-%a2
8: 48f9 07fc 0000 moveml %d2-%a2,0 <.text>
8: 48f9 07fc 0000 moveml %d2-%a2,0 <\.text>
e: 0000
10: 48f9 07fc 0000 moveml %d2-%a2,0 <.text>
10: 48f9 07fc 0000 moveml %d2-%a2,0 <\.text>
16: 0000
18: 4cf9 07fc 0000 moveml 0 <.text>,%d2-%a2
18: 4cf9 07fc 0000 moveml 0 <\.text>,%d2-%a2
1e: 0000
20: 4cf9 07fc 0000 moveml 0 <.text>,%d2-%a2
20: 4cf9 07fc 0000 moveml 0 <\.text>,%d2-%a2
26: 0000
28: 4cf9 07fc 0001 moveml 16000 <fdsa>,%d2-%a2
28: 4cf9 07fc 0001 moveml 16000 <.*>,%d2-%a2
2e: 6000
30: 4cf9 07fc 0001 moveml 16000 <fdsa>,%d2-%a2
30: 4cf9 07fc 0001 moveml 16000 <.*>,%d2-%a2
36: 6000
38: 48f9 07fc 0001 moveml %d2-%a2,16000 <fdsa>
38: 48f9 07fc 0001 moveml %d2-%a2,16000 <.*>
3e: 6000
40: 48f9 07fc 0001 moveml %d2-%a2,16000 <fdsa>
40: 48f9 07fc 0001 moveml %d2-%a2,16000 <.*>
46: 6000