[gnu.gcc.bug] Context diffs necessary for GCC 1.32 on AT&T UNIX PC

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