[gnu.gcc.bug] patches for hp9000/3xx support

glenne%hplsla@HPLABS.HP.COM (Glenn Engel) (11/23/88)

The patches in this file do the following:

  1) add comment for CFLAGS in Makefile when making for gas/gdb compatibility.
  2) add macro for standard_exec_prefix in gcc.c to allow the gnu format
     of hp-ux gcc to specify a special directory for gnu format libraries.
  3) adds ASM_SPEC in tm for case when USE_GAS is true.
  4) fixes function prologue for hp-ux assembler.  It emitted a link.w instead
     of link.l for long frame sizes.
  5) fixed xm-hp9k320.h to use new 'xm' names for include files.

Thanks in advance for adding these in,

--
 |  Glenn R. Engel
 |  Hewlett-Packard 
 |  (206) 335-2066
 |  glenne%hplsla@hplabs.hp.com


*** orig/Makefile	Fri Nov 18 09:16:15 1988
--- Makefile	Tue Nov 22 08:00:32 1988
***************
*** 38,43
  # CCLIBFLAGS = -Wc,-Ns2000 -Wc,-Ne700
  # For CCLIBFLAGS you might want to specify the switch that
  # forces only 68000 instructions to be used.
  
  # If you are making gcc for the first time, and if you are compiling it with
  # a non-gcc compiler, and if your system doesn't have a working alloca() in any

--- 38,47 -----
  # CCLIBFLAGS = -Wc,-Ns2000 -Wc,-Ne700
  # For CCLIBFLAGS you might want to specify the switch that
  # forces only 68000 instructions to be used.
+ # 
+ # If you are using gas on hp-ux you need the following to fake up some
+ # system file definitions:
+ # CFLAGS = -g -I../hp-include
  
  # If you are making gcc for the first time, and if you are compiling it with
  # a non-gcc compiler, and if your system doesn't have a working alloca() in any
*** orig/gcc.c	Thu Nov 17 10:39:33 1988
--- gcc.c	Mon Nov 21 22:05:02 1988
***************
*** 366,372
  char *standard_exec_prefix = STANDARD_EXEC_PREFIX;
  char *standard_exec_prefix_1 = "/usr/lib/gcc-";
  
! char *standard_startfile_prefix = "/lib/";
  char *standard_startfile_prefix_1 = "/usr/lib/";
  
  /* Clear out the vector of arguments (after a command is executed).  */

--- 366,376 -----
  char *standard_exec_prefix = STANDARD_EXEC_PREFIX;
  char *standard_exec_prefix_1 = "/usr/lib/gcc-";
  
! #ifndef STANDARD_STARTFILE_PREFIX
! #define STANDARD_STARTFILE_PREFIX "/usr/"
! #endif /* !defined STANDARD_STARTFILE_PREFIX */
! 
! char *standard_startfile_prefix = STANDARD_STARTFILE_PREFIX;
  char *standard_startfile_prefix_1 = "/usr/lib/";
  
  /* Clear out the vector of arguments (after a command is executed).  */
*** orig/tm-hp9k320.h	Thu Nov 17 09:06:42 1988
--- tm-hp9k320.h	Mon Nov 21 22:09:53 1988
***************
*** 47,52
     know which assembler is being used so that the correct `asm'
     instructions can be used. */
  #define CPP_SPEC "%{!msoft-float:-D__HAVE_68881__} -D__HPUX_ASM__"
  #else
  #define CPP_SPEC "%{!msoft-float:-D__HAVE_68881__}"
  #endif

--- 47,53 -----
     know which assembler is being used so that the correct `asm'
     instructions can be used. */
  #define CPP_SPEC "%{!msoft-float:-D__HAVE_68881__} -D__HPUX_ASM__"
+ #define ASM_SPEC "%{m68000:+X}"
  #else
  #define CPP_SPEC "%{!msoft-float:-D__HAVE_68881__}"
  
***************
*** 49,54
  #define CPP_SPEC "%{!msoft-float:-D__HAVE_68881__} -D__HPUX_ASM__"
  #else
  #define CPP_SPEC "%{!msoft-float:-D__HAVE_68881__}"
  #endif
  
  /* Names to predefine in the preprocessor for this target machine

--- 50,63 -----
  #define ASM_SPEC "%{m68000:+X}"
  #else
  #define CPP_SPEC "%{!msoft-float:-D__HAVE_68881__}"
+ 
+ /* -m68000 requires special flags to gas  */
+ #define ASM_SPEC \
+  "%{m68000:-mc68000}%{mc68000:-mc68000}%{!mc68000:%{!m68000:-mc68020}}"
+ 
+ /* special directory for gnu libs on hp-ux system */
+ #ifndef STANDARD_STARTFILE_PREFIX
+ #define STANDARD_STARTFILE_PREFIX "/usr/local/lib/gnu/"
  #endif
  
  #endif
***************
*** 51,56
  #define CPP_SPEC "%{!msoft-float:-D__HAVE_68881__}"
  #endif
  
  /* Names to predefine in the preprocessor for this target machine
     (for non-strict-ANSI programs only).  */
  

--- 60,67 -----
  #define STANDARD_STARTFILE_PREFIX "/usr/local/lib/gnu/"
  #endif
  
+ #endif
+ 
  /* Names to predefine in the preprocessor for this target machine
     (for non-strict-ANSI programs only).  */
  
***************
*** 107,113
  
  #define TARGET_VERSION printf (" (68k, SGS/hpux syntax)");
  
- #define ASM_SPEC "%{m68000:+X}"
  
  #define REGISTER_NAMES \
  {"%d0", "%d1", "%d2", "%d3", "%d4", "%d5", "%d6", "%d7",	\

--- 118,123 -----
  
  #define TARGET_VERSION printf (" (68k, SGS/hpux syntax)");
  
  
  #define REGISTER_NAMES \
  {"%d0", "%d1", "%d2", "%d3", "%d4", "%d5", "%d6", "%d7",	\
***************
*** 121,127
    extern char call_used_regs[];					\
    int fsize = (SIZE);						\
    if (frame_pointer_needed)					\
!     { if (TARGET_68020 || fsize < 0x8000)			\
          fprintf (FILE, "\tlink.w %%a6,&%d\n", -fsize);		\
        else							\
  	fprintf (FILE, "\tlink.w %%a6,&0\n\tsub.l &%d,%%sp\n", fsize); }  \

--- 131,137 -----
    extern char call_used_regs[];					\
    int fsize = (SIZE);						\
    if (frame_pointer_needed)					\
!     { if (fsize < 0x8000)					\
          fprintf (FILE, "\tlink.w %%a6,&%d\n", -fsize);		\
        else							\
        if (TARGET_68020)						\
***************
*** 123,128
    if (frame_pointer_needed)					\
      { if (TARGET_68020 || fsize < 0x8000)			\
          fprintf (FILE, "\tlink.w %%a6,&%d\n", -fsize);		\
        else							\
  	fprintf (FILE, "\tlink.w %%a6,&0\n\tsub.l &%d,%%sp\n", fsize); }  \
    for (regno = 16; regno < FIRST_PSEUDO_REGISTER; regno++)	\

--- 133,141 -----
    if (frame_pointer_needed)					\
      { if (fsize < 0x8000)					\
          fprintf (FILE, "\tlink.w %%a6,&%d\n", -fsize);		\
+       else							\
+       if (TARGET_68020)						\
+         fprintf (FILE, "\tlink.l %%a6,&%d\n", -fsize);		\
        else							\
  	fprintf (FILE, "\tlink.w %%a6,&0\n\tsub.l &%d,%%sp\n", fsize); }  \
    for (regno = 16; regno < FIRST_PSEUDO_REGISTER; regno++)	\
*** orig/xm-hp9k320.h	Thu May 19 13:50:36 1988
--- xm-hp9k320.h	Mon Nov 21 17:16:36 1988
***************
*** 1,6
  #define USG
  
! #include "config-m68k.h"
  
  #define bcopy(a,b,c) memcpy (b,a,c)
  #define bzero(a,b) memset (a,0,b)

--- 1,6 -----
  #define USG
  
! #include "xm-m68k.h"
  
  #define bcopy(a,b,c) memcpy (b,a,c)
  #define bzero(a,b) memset (a,0,b)