lgm@ODDJOB.UCHICAGO.EDU (12/26/88)
SYNOPSIS: GCC Version 1.32 requires a few modifications to compile and run properly on the AT&T UNIX PC. Two problems exist: (a) A bug in Version 1.31, about which I had posted, was incompletely fixed. (Apparently my last communique in the matter was unclear, so the modifications were incompletely applied.) (b) Some new code uses the 'clrl' instruction. The UNIX PC needs 'clr.l' for this. Context diffs for the necessary modifications are given below. MACHINE AND OS: AT&T UNIX PC 3B1 (based on Motorola 68010 microprocessor) running OS Version 3.5 (compatible with UNIX System V Release 2). CONFIGURATION: 'config.gcc 3b1' CONTEXT DIFFS: _______________________________________ *** m68k.md.orig Thu Dec 22 23:03:01 1988 --- m68k.md Fri Dec 23 12:30:08 1988 *************** *** 679,684 "* { if (operands[1] == const0_rtx) return \"clrl %0\"; return \"pea %a1\"; }") --- 679,687 ----- "* { if (operands[1] == const0_rtx) + #ifdef MOTOROLA + return \"clr.l %0\"; + #else return \"clrl %0\"; #endif return \"pea %a1\"; *************** *** 680,685 { if (operands[1] == const0_rtx) return \"clrl %0\"; return \"pea %a1\"; }") --- 683,689 ----- return \"clr.l %0\"; #else return \"clrl %0\"; + #endif return \"pea %a1\"; }") *************** *** 3539,3547 "* #ifdef SGS #ifdef ASM_OUTPUT_CASE_LABEL ! if (! RTX_INTEGRATED_P (operands[1])) ! return \"jmp 6(%%pc,%0.w)\"; ! #endif return \"jmp 2(%%pc,%0.w)\"; #else #ifdef MOTOROLA --- 3543,3550 ----- "* #ifdef SGS #ifdef ASM_OUTPUT_CASE_LABEL ! return \"jmp 6(%%pc,%0.w)\"; ! #else return \"jmp 2(%%pc,%0.w)\"; #endif #else *************** *** 3543,3548 return \"jmp 6(%%pc,%0.w)\"; #endif return \"jmp 2(%%pc,%0.w)\"; #else #ifdef MOTOROLA return \"jmp (2,pc,%0.w)\"; --- 3546,3552 ----- return \"jmp 6(%%pc,%0.w)\"; #else return \"jmp 2(%%pc,%0.w)\"; + #endif #else #ifdef MOTOROLA return \"jmp (2,pc,%0.w)\"; *** tm-3b1.h.orig Thu Dec 22 23:05:19 1988 --- tm-3b1.h Fri Dec 23 00:02:47 1988 *************** *** 346,354 `short L%nn-L%nn' supposedly works. */ #define ASM_OUTPUT_CASE_LABEL(FILE,PREFIX,NUM,TABLE) \ if (RTX_INTEGRATED_P (TABLE)) \ - fprintf (FILE, "\tswbeg &%d\n%s%%%d:\n", \ - XVECLEN (PATTERN (TABLE), 1), (PREFIX), (NUM)) - else fprintf (FILE, "\tswbeg &%d\n%s%%%d:\n\tshort %s%%%d-%s%%%d\n", \ XVECLEN (PATTERN (TABLE), 1) + 1, (PREFIX), (NUM), \ (PREFIX), (NUM), (PREFIX), (NUM)) --- 346,351 ----- `short L%nn-L%nn' supposedly works. */ #define ASM_OUTPUT_CASE_LABEL(FILE,PREFIX,NUM,TABLE) \ if (RTX_INTEGRATED_P (TABLE)) \ fprintf (FILE, "\tswbeg &%d\n%s%%%d:\n\tshort %s%%%d-%s%%%d\n", \ XVECLEN (PATTERN (TABLE), 1) + 1, (PREFIX), (NUM), \ (PREFIX), (NUM), (PREFIX), (NUM)); \ *************** *** 351,357 else fprintf (FILE, "\tswbeg &%d\n%s%%%d:\n\tshort %s%%%d-%s%%%d\n", \ XVECLEN (PATTERN (TABLE), 1) + 1, (PREFIX), (NUM), \ ! (PREFIX), (NUM), (PREFIX), (NUM)) /* At end of a switch table, define LD%n iff the symbol LI%n was defined. */ #define ASM_OUTPUT_CASE_END(FILE,NUM,TABLE) \ --- 348,357 ----- if (RTX_INTEGRATED_P (TABLE)) \ fprintf (FILE, "\tswbeg &%d\n%s%%%d:\n\tshort %s%%%d-%s%%%d\n", \ XVECLEN (PATTERN (TABLE), 1) + 1, (PREFIX), (NUM), \ ! (PREFIX), (NUM), (PREFIX), (NUM)); \ ! else \ ! fprintf (FILE, "\tswbeg &%d\n%s%%%d:\n", \ ! XVECLEN (PATTERN (TABLE), 1), (PREFIX), (NUM)) /* At end of a switch table, define LD%n iff the symbol LI%n was defined. */ #define ASM_OUTPUT_CASE_END(FILE,NUM,TABLE) \ _______________________________________ Lawrence G. Mayka Aurora, Illinois lgm@lmayk.UUCP chinet!lmayk!lgm