* 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-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
--- /dev/null
+#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)
+ \.\.\.
--- /dev/null
+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
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*"] )
--- /dev/null
+#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\*)
+ \.\.\.
--- /dev/null
+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
# 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*-*"
# 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
.set noreorder
.set noat
- .globl text_label .text
+ .text
text_label:
# unprivileged CPU instructions
.set noreorder
.set noat
- .globl text_label .text
+ .text
text_label:
addr.ps $f4, $f8, $f19
#...
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
.*: +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