Port-m68k archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
sun2 vs. gcc48
hi folks,
the attached patch fixes the build problems for sun2 with gcc48.
could someone do some testing in tme?
-Chuck
Index: src/external/gpl3/gcc/dist/gcc/config/m68k/m68k.md
===================================================================
RCS file: /home/chs/netbsd/cvs/src/external/gpl3/gcc/dist/gcc/config/m68k/m68k.md,v
retrieving revision 1.3
diff -u -p -r1.3 m68k.md
--- src/external/gpl3/gcc/dist/gcc/config/m68k/m68k.md 1 Mar 2014 08:58:31 -0000 1.3
+++ src/external/gpl3/gcc/dist/gcc/config/m68k/m68k.md 20 Nov 2014 20:01:05 -0000
@@ -7112,7 +7112,7 @@
}
else if (MOTOROLA)
{
- if (TARGET_COLDFIRE)
+ if (TARGET_COLDFIRE || TARGET_68010)
/* Load the full 32-bit PC-relative offset of
_GLOBAL_OFFSET_TABLE_ into the PIC register, then use it to
calculate the absolute value. The offset and "lea"
Index: src/external/gpl3/gcc/dist/libgcc/config/m68k/lb1sf68.S
===================================================================
RCS file: /home/chs/netbsd/cvs/src/external/gpl3/gcc/dist/libgcc/config/m68k/lb1sf68.S,v
retrieving revision 1.1.1.1
diff -u -p -r1.1.1.1 lb1sf68.S
--- src/external/gpl3/gcc/dist/libgcc/config/m68k/lb1sf68.S 1 Mar 2014 08:41:47 -0000 1.1.1.1
+++ src/external/gpl3/gcc/dist/libgcc/config/m68k/lb1sf68.S 20 Nov 2014 19:11:58 -0000
@@ -189,7 +189,20 @@ see the files COPYING3 and COPYING.RUNTI
.macro PICLEA sym, reg
movel #_GLOBAL_OFFSET_TABLE_@GOTPC, \reg
lea (-6, pc, \reg), \reg
+#ifdef __mc68010__
+ /*
+ * The GOT offset can be bigger than 16 bits
+ * but mc68010 only has a 16-bit displacement addressing mode,
+ * so use a temp register to load the offset.
+ */
+ movel a2, sp@-
+ movel #\sym@GOT, a2
+ addal a2, \reg
+ movel sp@+, a2
+ movel (\reg), \reg
+#else
movel \sym@GOT(\reg), \reg
+#endif
.endm
.macro PICPEA sym, areg
@@ -211,7 +224,7 @@ see the files COPYING3 and COPYING.RUNTI
/* ISA C has no bra.l instruction, and since this assembly file
gets assembled into multiple object files, we avoid the
bra instruction entirely. */
-#if defined (__mcoldfire__) && !defined (__mcfisab__)
+#if (defined (__mcoldfire__) && !defined (__mcfisab__)) || defined (__mc68010__)
lea \addr-.-8,a0
jmp pc@(a0)
#else
Home |
Main Index |
Thread Index |
Old Index