This is the mail archive of the binutils@sources.redhat.com mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[testsuite patch RFA] Re: MIPS md_apply_fix()(?) problem.


"Richard Sandiford" <rsandifo@redhat.com> writes:
> I'll try to come up with a test case next week, if Chris doesn't beat
> me to it.

Here's one.

I verified that:

(0) it actually looks correct.  8-)

(1) it passed w/targets mips-elf and mips-linux w/ sources dated
    2001-08-03 00:00 UTC.

(2) it failed in the expected way w/ targets
    mips{,64}{,el}-{elf,linux} with current sources as of "a few
    minutes ago."  Specifically that, the la's and lw's from dg2+12
    got the wrong addresses.  (The rest of the relocations in the file
    are all fine.)

    mips-ecoff and mipsel-ecoff were also built, for good measure.
    same failures as normal there.  8-)

(3) The best part: with Richard's patch applied, it passed in the
    current sources (same source tree as in (2), but with the patch
    applied) for the same set of targets.  Yay!


BTW, as part of this i noticed ChangeLog entries like:

	* gas/tic54x/sections.[sd]: ...

I thought that was verboten (because file names should be exact, and
not wild-carded)...



chris
===================================================================

[ gas/testsuite/ChangeLog ]

2001-11-16  Chris Demetriou  <cgd@broadcom.cOm>

	* gas/mips/elf-rel5.s, gas/mips/elf-rel5.s: New test
	to test symbol plus offset relocations in various ways.
	* gas/mips/mips.exp: Run new test.

Index: gas/mips/elf-rel5.d
===================================================================
RCS file: elf-rel5.d
diff -N elf-rel5.d
--- /dev/null	Tue May  5 13:32:27 1998
+++ elf-rel5.d	Fri Nov 16 18:50:43 2001
@@ -0,0 +1,151 @@
+#objdump: -dr --prefix-addresses --show-raw-insn
+#name: MIPS ELF reloc 5
+
+.*: +file format elf.*mips.*
+
+Disassembly of section \.text:
+0+000000 <[^>]*> 3c050000 	lui	a1,0x0
+[ 	]*0: R_MIPS_HI16	dg1
+0+000004 <[^>]*> [26]4a50000 	(|d)addiu	a1,a1,0
+[ 	]*4: R_MIPS_LO16	dg1
+0+000008 <[^>]*> 3c050000 	lui	a1,0x0
+[ 	]*8: R_MIPS_HI16	dg1
+0+00000c <[^>]*> [26]4a5000c 	(|d)addiu	a1,a1,12
+[ 	]*c: R_MIPS_LO16	dg1
+0+000010 <[^>]*> 3c050000 	lui	a1,0x0
+[ 	]*10: R_MIPS_HI16	dg1
+0+000014 <[^>]*> [26]4a50000 	(|d)addiu	a1,a1,0
+[ 	]*14: R_MIPS_LO16	dg1
+0+000018 <[^>]*> 00b1282[1d] 	(|d)addu	a1,a1,s1
+0+00001c <[^>]*> 3c050000 	lui	a1,0x0
+[ 	]*1c: R_MIPS_HI16	dg1
+0+000020 <[^>]*> [26]4a5000c 	(|d)addiu	a1,a1,12
+[ 	]*20: R_MIPS_LO16	dg1
+0+000024 <[^>]*> 00b1282[1d] 	(|d)addu	a1,a1,s1
+0+000028 <[^>]*> 3c050000 	lui	a1,0x0
+[ 	]*28: R_MIPS_HI16	dg1
+0+00002c <[^>]*> 8ca50000 	lw	a1,0\(a1\)
+[ 	]*2c: R_MIPS_LO16	dg1
+0+000030 <[^>]*> 3c050000 	lui	a1,0x0
+[ 	]*30: R_MIPS_HI16	dg1
+0+000034 <[^>]*> 8ca5000c 	lw	a1,12\(a1\)
+[ 	]*34: R_MIPS_LO16	dg1
+0+000038 <[^>]*> 3c050000 	lui	a1,0x0
+[ 	]*38: R_MIPS_HI16	dg1
+0+00003c <[^>]*> 00b1282[1d] 	(|d)addu	a1,a1,s1
+0+000040 <[^>]*> 8ca50000 	lw	a1,0\(a1\)
+[ 	]*40: R_MIPS_LO16	dg1
+0+000044 <[^>]*> 3c050000 	lui	a1,0x0
+[ 	]*44: R_MIPS_HI16	dg1
+0+000048 <[^>]*> 00b1282[1d] 	(|d)addu	a1,a1,s1
+0+00004c <[^>]*> 8ca5000c 	lw	a1,12\(a1\)
+[ 	]*4c: R_MIPS_LO16	dg1
+0+000050 <[^>]*> 3c050000 	lui	a1,0x0
+[ 	]*50: R_MIPS_HI16	\.data
+0+000054 <[^>]*> [26]4a5003c 	(|d)addiu	a1,a1,60
+[ 	]*54: R_MIPS_LO16	\.data
+0+000058 <[^>]*> 3c050000 	lui	a1,0x0
+[ 	]*58: R_MIPS_HI16	\.data
+0+00005c <[^>]*> [26]4a50048 	(|d)addiu	a1,a1,72
+[ 	]*5c: R_MIPS_LO16	\.data
+0+000060 <[^>]*> 3c050000 	lui	a1,0x0
+[ 	]*60: R_MIPS_HI16	\.data
+0+000064 <[^>]*> [26]4a5003c 	(|d)addiu	a1,a1,60
+[ 	]*64: R_MIPS_LO16	\.data
+0+000068 <[^>]*> 00b1282[1d] 	(|d)addu	a1,a1,s1
+0+00006c <[^>]*> 3c050000 	lui	a1,0x0
+[ 	]*6c: R_MIPS_HI16	\.data
+0+000070 <[^>]*> [26]4a50048 	(|d)addiu	a1,a1,72
+[ 	]*70: R_MIPS_LO16	\.data
+0+000074 <[^>]*> 00b1282[1d] 	(|d)addu	a1,a1,s1
+0+000078 <[^>]*> 3c050000 	lui	a1,0x0
+[ 	]*78: R_MIPS_HI16	\.data
+0+00007c <[^>]*> 8ca5003c 	lw	a1,60\(a1\)
+[ 	]*7c: R_MIPS_LO16	\.data
+0+000080 <[^>]*> 3c050000 	lui	a1,0x0
+[ 	]*80: R_MIPS_HI16	\.data
+0+000084 <[^>]*> 8ca50048 	lw	a1,72\(a1\)
+[ 	]*84: R_MIPS_LO16	\.data
+0+000088 <[^>]*> 3c050000 	lui	a1,0x0
+[ 	]*88: R_MIPS_HI16	\.data
+0+00008c <[^>]*> 00b1282[1d] 	(|d)addu	a1,a1,s1
+0+000090 <[^>]*> 8ca5003c 	lw	a1,60\(a1\)
+[ 	]*90: R_MIPS_LO16	\.data
+0+000094 <[^>]*> 3c050000 	lui	a1,0x0
+[ 	]*94: R_MIPS_HI16	\.data
+0+000098 <[^>]*> 00b1282[1d] 	(|d)addu	a1,a1,s1
+0+00009c <[^>]*> 8ca50048 	lw	a1,72\(a1\)
+[ 	]*9c: R_MIPS_LO16	\.data
+0+0000a0 <[^>]*> 3c050000 	lui	a1,0x0
+[ 	]*a0: R_MIPS_HI16	dg2
+0+0000a4 <[^>]*> [26]4a50000 	(|d)addiu	a1,a1,0
+[ 	]*a4: R_MIPS_LO16	dg2
+0+0000a8 <[^>]*> 3c050000 	lui	a1,0x0
+[ 	]*a8: R_MIPS_HI16	dg2
+0+0000ac <[^>]*> [26]4a5000c 	(|d)addiu	a1,a1,12
+[ 	]*ac: R_MIPS_LO16	dg2
+0+0000b0 <[^>]*> 3c050000 	lui	a1,0x0
+[ 	]*b0: R_MIPS_HI16	dg2
+0+0000b4 <[^>]*> [26]4a50000 	(|d)addiu	a1,a1,0
+[ 	]*b4: R_MIPS_LO16	dg2
+0+0000b8 <[^>]*> 00b1282[1d] 	(|d)addu	a1,a1,s1
+0+0000bc <[^>]*> 3c050000 	lui	a1,0x0
+[ 	]*bc: R_MIPS_HI16	dg2
+0+0000c0 <[^>]*> [26]4a5000c 	(|d)addiu	a1,a1,12
+[ 	]*c0: R_MIPS_LO16	dg2
+0+0000c4 <[^>]*> 00b1282[1d] 	(|d)addu	a1,a1,s1
+0+0000c8 <[^>]*> 3c050000 	lui	a1,0x0
+[ 	]*c8: R_MIPS_HI16	dg2
+0+0000cc <[^>]*> 8ca50000 	lw	a1,0\(a1\)
+[ 	]*cc: R_MIPS_LO16	dg2
+0+0000d0 <[^>]*> 3c050000 	lui	a1,0x0
+[ 	]*d0: R_MIPS_HI16	dg2
+0+0000d4 <[^>]*> 8ca5000c 	lw	a1,12\(a1\)
+[ 	]*d4: R_MIPS_LO16	dg2
+0+0000d8 <[^>]*> 3c050000 	lui	a1,0x0
+[ 	]*d8: R_MIPS_HI16	dg2
+0+0000dc <[^>]*> 00b1282[1d] 	(|d)addu	a1,a1,s1
+0+0000e0 <[^>]*> 8ca50000 	lw	a1,0\(a1\)
+[ 	]*e0: R_MIPS_LO16	dg2
+0+0000e4 <[^>]*> 3c050000 	lui	a1,0x0
+[ 	]*e4: R_MIPS_HI16	dg2
+0+0000e8 <[^>]*> 00b1282[1d] 	(|d)addu	a1,a1,s1
+0+0000ec <[^>]*> 8ca5000c 	lw	a1,12\(a1\)
+[ 	]*ec: R_MIPS_LO16	dg2
+0+0000f0 <[^>]*> 3c050000 	lui	a1,0x0
+[ 	]*f0: R_MIPS_HI16	\.data
+0+0000f4 <[^>]*> [26]4a500b4 	(|d)addiu	a1,a1,180
+[ 	]*f4: R_MIPS_LO16	\.data
+0+0000f8 <[^>]*> 3c050000 	lui	a1,0x0
+[ 	]*f8: R_MIPS_HI16	\.data
+0+0000fc <[^>]*> [26]4a500c0 	(|d)addiu	a1,a1,192
+[ 	]*fc: R_MIPS_LO16	\.data
+0+000100 <[^>]*> 3c050000 	lui	a1,0x0
+[ 	]*100: R_MIPS_HI16	\.data
+0+000104 <[^>]*> [26]4a500b4 	(|d)addiu	a1,a1,180
+[ 	]*104: R_MIPS_LO16	\.data
+0+000108 <[^>]*> 00b1282[1d] 	(|d)addu	a1,a1,s1
+0+00010c <[^>]*> 3c050000 	lui	a1,0x0
+[ 	]*10c: R_MIPS_HI16	\.data
+0+000110 <[^>]*> [26]4a500c0 	(|d)addiu	a1,a1,192
+[ 	]*110: R_MIPS_LO16	\.data
+0+000114 <[^>]*> 00b1282[1d] 	(|d)addu	a1,a1,s1
+0+000118 <[^>]*> 3c050000 	lui	a1,0x0
+[ 	]*118: R_MIPS_HI16	\.data
+0+00011c <[^>]*> 8ca500b4 	lw	a1,180\(a1\)
+[ 	]*11c: R_MIPS_LO16	\.data
+0+000120 <[^>]*> 3c050000 	lui	a1,0x0
+[ 	]*120: R_MIPS_HI16	\.data
+0+000124 <[^>]*> 8ca500c0 	lw	a1,192\(a1\)
+[ 	]*124: R_MIPS_LO16	\.data
+0+000128 <[^>]*> 3c050000 	lui	a1,0x0
+[ 	]*128: R_MIPS_HI16	\.data
+0+00012c <[^>]*> 00b1282[1d] 	(|d)addu	a1,a1,s1
+0+000130 <[^>]*> 8ca500b4 	lw	a1,180\(a1\)
+[ 	]*130: R_MIPS_LO16	\.data
+0+000134 <[^>]*> 3c050000 	lui	a1,0x0
+[ 	]*134: R_MIPS_HI16	\.data
+0+000138 <[^>]*> 00b1282[1d] 	(|d)addu	a1,a1,s1
+0+00013c <[^>]*> 8ca500c0 	lw	a1,192\(a1\)
+[ 	]*13c: R_MIPS_LO16	\.data
+	\.\.\.
Index: gas/mips/elf-rel5.s
===================================================================
RCS file: elf-rel5.s
diff -N elf-rel5.s
--- /dev/null	Tue May  5 13:32:27 1998
+++ elf-rel5.s	Fri Nov 16 18:50:43 2001
@@ -0,0 +1,67 @@
+# MIPS ELF reloc 5
+
+        .data
+        .align  2
+sp1:
+        .space  60
+        .globl  dg1
+dg1:
+dl1:
+        .space  60
+
+
+        .text
+
+        .ent    fn
+        .type   fn,@function
+fn:
+        la      $5,dg1+0
+        la      $5,dg1+12
+        la      $5,dg1+0($17)
+        la      $5,dg1+12($17)
+        lw      $5,dg1+0
+        lw      $5,dg1+12
+        lw      $5,dg1+0($17)
+        lw      $5,dg1+12($17)
+
+        la      $5,dl1+0
+        la      $5,dl1+12
+        la      $5,dl1+0($17)
+        la      $5,dl1+12($17)
+        lw      $5,dl1+0
+        lw      $5,dl1+12
+        lw      $5,dl1+0($17)
+        lw      $5,dl1+12($17)
+
+        la      $5,dg2+0
+        la      $5,dg2+12
+        la      $5,dg2+0($17)
+        la      $5,dg2+12($17)
+        lw      $5,dg2+0
+        lw      $5,dg2+12
+        lw      $5,dg2+0($17)
+        lw      $5,dg2+12($17)
+
+        la      $5,dl2+0
+        la      $5,dl2+12
+        la      $5,dl2+0($17)
+        la      $5,dl2+12($17)
+        lw      $5,dl2+0
+        lw      $5,dl2+12
+        lw      $5,dl2+0($17)
+        lw      $5,dl2+12($17)
+
+# Force at least 8 (non-delay-slot) zero bytes, to make 'objdump' print ...
+	.space	8
+
+        .end    fn
+
+        .data
+        .align  2
+sp2:
+        .space  60
+        .globl  dg2
+dg2:
+dl2:
+        .space  60
+
Index: gas/mips/mips.exp
===================================================================
RCS file: /cvs/src/src/gas/testsuite/gas/mips/mips.exp,v
retrieving revision 1.25
diff -u -p -r1.25 mips.exp
--- mips.exp	2001/11/12 22:22:20	1.25
+++ mips.exp	2001/11/17 02:50:43
@@ -160,6 +160,7 @@ if { [istarget mips*-*-*] } then {
 	    run_dump_test "e32-rel4"
 	}
 	run_dump_test "elf${el}-rel3"
+	run_dump_test "elf-rel5"
 	run_dump_test "${tmips}${el}empic"
 	run_dump_test "empic2"
 	if { !$no_mips16 } { 


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]