m68k-coff-as bug

Alan Modra alan@spri.levels.unisa.edu.au
Thu Jul 27 21:57:00 GMT 1995


Here is an updated version of the patch Andreas Schwab sent to fix the
m68k-coff problem introduced in gas-950622.


--- gas-950726/gas/config/obj-coff.c	Fri Jul 28 08:41:30 1995
+++ ./gas/config/obj-coff.c	Fri Jul 28 08:46:07 1995
@@ -3677,6 +3677,7 @@
 
 	      if (!TC_FORCE_RELOCATION (fixP))
 		{
+		  pcrel = 0;	/* No further pcrel processing. */
 		  fixP->fx_addsy = NULL;
 		  fixP->fx_subsy = NULL;
 		  fixP->fx_done = 1;



Some test code, similar to that emitted by gcc for switch statements:

mullet:/tmp$ cat >zzz.s
.text
.org 512
        .set .LI1,.+2
        move.w .L1-.LI1.b(%pc,%a0.l),%d0
        jmp %pc@(2,%d0:w)
.L1:

mullet:/tmp$ /usr/tmp/gas-950726/gas/as.new -m68000 -o /dev/null zzz.s
zzz.s: Assembler messages:
zzz.s:4: Error: Value of -508 too large for field of 1 bytes at 0x203
zzz.s:4: Error: value out of range


More information about the Gas2 mailing list