JUMP_TABLES_IN_TEXT_SECTION

Bernd Schmidt crux@pool.informatik.rwth-aachen.de
Thu Apr 9 05:08:00 GMT 1998


>   > > ! 	  if (JUMP_TABLES_IN_TEXT_SECTION
>   > > ! #if !defined(READONLY_DATA_SECTION)
>   > > ! 	      || 1
>   > >   #endif
>   > > + 	      )
>   > > + 	    if (next && GET_CODE (next) == JUMP_INSN)
>   > > + 	      {
>   > 
>   > I think that would look much nicer if you also changed READONLY_DATA_SECTION
>   > to have a value and be always defined.

Apparently, it is already supposed to have a value if it is defined; there's
a piece of code in varasm.c that looks like this:

#ifdef READONLY_DATA_SECTION
  READONLY_DATA_SECTION ();
#endif

This means I can't implement that suggestion.

Here's the next version of the patch. I hope all the configurations are
changed correctly now, but I can only test ix86-linux (this is also the
reason why I didn't change configurations like freebsd-elf to use flag_pic
as the value, although this would probably work as well).

Bernd
        * final.c: Define JUMP_TABLES_IN_TEXT_SECTION to a default value
        of 0 if it isn't defined.
        (shorten_branches, final_scan_insn): Test value
        of JUMP_TABLES_IN_TEXT_SECTION instead of just testing whether it
        is defined.

        * arm/coff.h: Define JUMP_TABLES_IN_TEXT_SECTION to 1.
	* arm/tcoff.h: Likewise.
        * i386/386bsd.h: Likewise.
        * i386/freebsd-elf.h: Likewise.
        * i386/freebsd.h: Likewise.
        * i386/netbsd.h: Likewise.
        * i386/ptx4-i.h: Likewise.
        * i386/sysv4.h: Likewise.
        * pa/pa.h: Likewise.
        * rs6000/linux.h: Likewise.
        * rs6000/rs6000.h: Likewise.
        * sh/sh.h: Likewise.
        * sparc/sp64-elf.h: Likewise.
        * v850/v850.h: Likewise.
	* rs6000/sysv4.h: Define JUMP_TABLES_IN_TEXT_SECTION to 0.
        * i386/linux.h: Define JUMP_TABLES_IN_TEXT_SECTION to (flag_pic).


Index: final.c
===================================================================
RCS file: /usr/local/cvs/gcs/gcc/final.c,v
retrieving revision 1.1.1.24
diff -c -p -d -r1.1.1.24 final.c
*** final.c	1998/04/06 17:09:20	1.1.1.24
--- final.c	1998/04/08 18:17:15
*************** Boston, MA 02111-1307, USA.  */
*** 115,120 ****
--- 115,124 ----
  #define IS_ASM_LOGICAL_LINE_SEPARATOR(C) ((C) == ';')
  #endif
  
+ #ifndef JUMP_TABLES_IN_TEXT_SECTION
+ #define JUMP_TABLES_IN_TEXT_SECTION 0
+ #endif
+ 
  /* Nonzero means this function is a leaf function, with no function calls. 
     This variable exists to be examined in FUNCTION_PROLOGUE
     and FUNCTION_EPILOGUE.  Always zero, unless set by some action.  */
*************** shorten_branches (first)
*** 997,1016 ****
  	  if (max_log < log)
  	    max_log = log;
  	  next = NEXT_INSN (insn);
! /* ADDR_VECs only take room if read-only data goes into the text section.  */
! #if !defined(READONLY_DATA_SECTION) || defined(JUMP_TABLES_IN_TEXT_SECTION)
! 	  if (next && GET_CODE (next) == JUMP_INSN)
! 	    {
! 	      rtx nextbody = PATTERN (next);
! 	      if (GET_CODE (nextbody) == ADDR_VEC
! 		  || GET_CODE (nextbody) == ADDR_DIFF_VEC)
! 		{
! 		  log = ADDR_VEC_ALIGN (next);
! 		  if (max_log < log)
! 		    max_log = log;
! 		}
! 	    }
  #endif
  	  LABEL_TO_ALIGNMENT (insn) = max_log;
  	  max_log = 0;
  	}
--- 1001,1025 ----
  	  if (max_log < log)
  	    max_log = log;
  	  next = NEXT_INSN (insn);
! 	  /* ADDR_VECs only take room if read-only data goes into the text
! 	     section.  */
! 	  if (JUMP_TABLES_IN_TEXT_SECTION
! #if !defined(READONLY_DATA_SECTION)
! 	      || 1
  #endif
+ 	      )
+ 	    if (next && GET_CODE (next) == JUMP_INSN)
+ 	      {
+ 		rtx nextbody = PATTERN (next);
+ 		if (GET_CODE (nextbody) == ADDR_VEC
+ 		    || GET_CODE (nextbody) == ADDR_DIFF_VEC)
+ 		  {
+ 		    log = ADDR_VEC_ALIGN (next);
+ 		    if (max_log < log)
+ 		      max_log = log;
+ 		  }
+ 	      }
+ 
  	  LABEL_TO_ALIGNMENT (insn) = max_log;
  	  max_log = 0;
  	}
*************** shorten_branches (first)
*** 1184,1194 ****
  	{
  	  /* This only takes room if read-only data goes into the text
  	     section.  */
! #if !defined(READONLY_DATA_SECTION) || defined(JUMP_TABLES_IN_TEXT_SECTION)
! 	  insn_lengths[uid] = (XVECLEN (body, GET_CODE (body) == ADDR_DIFF_VEC)
! 			       * GET_MODE_SIZE (GET_MODE (body)));
! 	  /* Alignment is handled by ADDR_VEC_ALIGN.  */
  #endif
  	}
        else if (asm_noperands (body) >= 0)
  	insn_lengths[uid] = asm_insn_count (body) * insn_default_length (insn);
--- 1193,1207 ----
  	{
  	  /* This only takes room if read-only data goes into the text
  	     section.  */
! 	  if (JUMP_TABLES_IN_TEXT_SECTION
! #if !defined(READONLY_DATA_SECTION)
! 	      || 1
  #endif
+ 	      )
+ 	    insn_lengths[uid] = (XVECLEN (body,
+ 					  GET_CODE (body) == ADDR_DIFF_VEC)
+ 				 * GET_MODE_SIZE (GET_MODE (body)));
+ 	  /* Alignment is handled by ADDR_VEC_ALIGN.  */
  	}
        else if (asm_noperands (body) >= 0)
  	insn_lengths[uid] = asm_insn_count (body) * insn_default_length (insn);
*************** shorten_branches (first)
*** 1379,1391 ****
  	      PUT_MODE (body, CASE_VECTOR_SHORTEN_MODE (min_addr - rel_addr,
  							max_addr - rel_addr,
  							body));
! #if !defined(READONLY_DATA_SECTION) || defined(JUMP_TABLES_IN_TEXT_SECTION)
! 	      insn_lengths[uid]
! 		= (XVECLEN (body, 1) * GET_MODE_SIZE (GET_MODE (body)));
! 	      insn_current_address += insn_lengths[uid];
! 	      if (insn_lengths[uid] != old_length)
! 		something_changed = 1;
  #endif
  	      continue;
  	    }
  #endif /* CASE_VECTOR_SHORTEN_MODE */
--- 1392,1410 ----
  	      PUT_MODE (body, CASE_VECTOR_SHORTEN_MODE (min_addr - rel_addr,
  							max_addr - rel_addr,
  							body));
! 	      if (JUMP_TABLES_IN_TEXT_SECTION
! #if !defined(READONLY_DATA_SECTION)
! 		  || 1
  #endif
+ 		  )
+ 		{
+ 		  insn_lengths[uid]
+ 		    = (XVECLEN (body, 1) * GET_MODE_SIZE (GET_MODE (body)));
+ 		  insn_current_address += insn_lengths[uid];
+ 		  if (insn_lengths[uid] != old_length)
+ 		    something_changed = 1;
+ 		}
+ 
  	      continue;
  	    }
  #endif /* CASE_VECTOR_SHORTEN_MODE */
*************** final_scan_insn (insn, file, optimize, p
*** 2227,2242 ****
  	  if (GET_CODE (nextbody) == ADDR_VEC
  	      || GET_CODE (nextbody) == ADDR_DIFF_VEC)
  	    {
! #ifndef JUMP_TABLES_IN_TEXT_SECTION
! 	      readonly_data_section ();
  #ifdef READONLY_DATA_SECTION
! 	      ASM_OUTPUT_ALIGN (file,
! 				exact_log2 (BIGGEST_ALIGNMENT
! 					    / BITS_PER_UNIT));
  #endif /* READONLY_DATA_SECTION */
! #else /* JUMP_TABLES_IN_TEXT_SECTION */
! 	      function_section (current_function_decl);
! #endif /* JUMP_TABLES_IN_TEXT_SECTION */
  #ifdef ASM_OUTPUT_CASE_LABEL
  	      ASM_OUTPUT_CASE_LABEL (file, "L", CODE_LABEL_NUMBER (insn),
  				     NEXT_INSN (insn));
--- 2246,2263 ----
  	  if (GET_CODE (nextbody) == ADDR_VEC
  	      || GET_CODE (nextbody) == ADDR_DIFF_VEC)
  	    {
! 	      if (! JUMP_TABLES_IN_TEXT_SECTION)
! 		{
! 		  readonly_data_section ();
  #ifdef READONLY_DATA_SECTION
! 		  ASM_OUTPUT_ALIGN (file,
! 				    exact_log2 (BIGGEST_ALIGNMENT
! 						/ BITS_PER_UNIT));
  #endif /* READONLY_DATA_SECTION */
! 		}
! 	      else
! 		function_section (current_function_decl);
! 
  #ifdef ASM_OUTPUT_CASE_LABEL
  	      ASM_OUTPUT_CASE_LABEL (file, "L", CODE_LABEL_NUMBER (insn),
  				     NEXT_INSN (insn));
Index: tm.texi
===================================================================
RCS file: /usr/local/cvs/gcs/gcc/tm.texi,v
retrieving revision 1.1.1.18
diff -c -p -d -r1.1.1.18 tm.texi
*** tm.texi	1998/04/06 17:10:18	1.1.1.18
--- tm.texi	1998/04/08 18:17:15
*************** data section.
*** 4802,4810 ****
  
  @findex JUMP_TABLES_IN_TEXT_SECTION
  @item JUMP_TABLES_IN_TEXT_SECTION
! Define this macro if jump tables (for @code{tablejump} insns) should be
! output in the text section, along with the assembler instructions.
! Otherwise, the readonly data section is used.
  
  This macro is irrelevant if there is no separate readonly data section.
  
--- 4802,4811 ----
  
  @findex JUMP_TABLES_IN_TEXT_SECTION
  @item JUMP_TABLES_IN_TEXT_SECTION
! Define this macro to be an expression with a non-zero value if jump 
! tables (for @code{tablejump} insns) should be output in the text
! section, along with the assembler instructions.  Otherwise, the
! readonly data section is used.
  
  This macro is irrelevant if there is no separate readonly data section.
  
Index: config/arm/coff.h
===================================================================
RCS file: /usr/local/cvs/gcs/gcc/config/arm/coff.h,v
retrieving revision 1.1.1.4
diff -c -p -d -r1.1.1.4 coff.h
*** config/arm/coff.h	1998/04/04 14:11:17	1.1.1.4
--- config/arm/coff.h	1998/04/08 18:11:14
*************** do {								\
*** 104,110 ****
  /* Define this macro if jump tables (for `tablejump' insns) should be
     output in the text section, along with the assembler instructions.
     Otherwise, the readonly data section is used.  */
! #define JUMP_TABLES_IN_TEXT_SECTION
  
  #undef READONLY_DATA_SECTION
  #define READONLY_DATA_SECTION	rdata_section
--- 104,110 ----
  /* Define this macro if jump tables (for `tablejump' insns) should be
     output in the text section, along with the assembler instructions.
     Otherwise, the readonly data section is used.  */
! #define JUMP_TABLES_IN_TEXT_SECTION 1
  
  #undef READONLY_DATA_SECTION
  #define READONLY_DATA_SECTION	rdata_section
Index: config/arm/tcoff.h
===================================================================
RCS file: /usr/local/cvs/gcs/gcc/config/arm/tcoff.h,v
retrieving revision 1.1.1.1
diff -c -p -d -r1.1.1.1 tcoff.h
*** config/arm/tcoff.h	1998/04/04 16:28:41	1.1.1.1
--- config/arm/tcoff.h	1998/04/08 18:10:45
*************** do {								\
*** 87,93 ****
  /* Define this macro if jump tables (for `tablejump' insns) should be
     output in the text section, along with the assembler instructions.
     Otherwise, the readonly data section is used.  */
! #define JUMP_TABLES_IN_TEXT_SECTION
  
  #undef READONLY_DATA_SECTION
  #define READONLY_DATA_SECTION	rdata_section
--- 87,93 ----
  /* Define this macro if jump tables (for `tablejump' insns) should be
     output in the text section, along with the assembler instructions.
     Otherwise, the readonly data section is used.  */
! #define JUMP_TABLES_IN_TEXT_SECTION 1
  
  #undef READONLY_DATA_SECTION
  #define READONLY_DATA_SECTION	rdata_section
Index: config/i386/386bsd.h
===================================================================
RCS file: /usr/local/cvs/gcs/gcc/config/i386/386bsd.h,v
retrieving revision 1.1.1.2
diff -c -p -d -r1.1.1.2 386bsd.h
*** config/i386/386bsd.h	1998/04/04 15:44:45	1.1.1.2
--- config/i386/386bsd.h	1998/04/08 18:10:39
***************
*** 69,75 ****
  /* Indicate that jump tables go in the text section.  This is
     necessary when compiling PIC code.  */
  
! #define JUMP_TABLES_IN_TEXT_SECTION
  
  /* Don't default to pcc-struct-return, because gcc is the only compiler, and
     we want to retain compatibility with older gcc versions.  */
--- 69,75 ----
  /* Indicate that jump tables go in the text section.  This is
     necessary when compiling PIC code.  */
  
! #define JUMP_TABLES_IN_TEXT_SECTION 1
  
  /* Don't default to pcc-struct-return, because gcc is the only compiler, and
     we want to retain compatibility with older gcc versions.  */
Index: config/i386/freebsd-elf.h
===================================================================
RCS file: /usr/local/cvs/gcs/gcc/config/i386/freebsd-elf.h,v
retrieving revision 1.1.1.5
diff -c -p -d -r1.1.1.5 freebsd-elf.h
*** config/i386/freebsd-elf.h	1998/04/06 17:11:39	1.1.1.5
--- config/i386/freebsd-elf.h	1998/04/08 18:10:34
*************** Boston, MA 02111-1307, USA.  */
*** 38,44 ****
  
  /* Indicate that jump tables go in the text section.  This is
     necessary when compiling PIC code.  */
! #define JUMP_TABLES_IN_TEXT_SECTION
  
  /* Copy this from the svr4 specifications... */
  /* Define the register numbers to be used in Dwarf debugging information.
--- 38,44 ----
  
  /* Indicate that jump tables go in the text section.  This is
     necessary when compiling PIC code.  */
! #define JUMP_TABLES_IN_TEXT_SECTION 1
  
  /* Copy this from the svr4 specifications... */
  /* Define the register numbers to be used in Dwarf debugging information.
Index: config/i386/freebsd.h
===================================================================
RCS file: /usr/local/cvs/gcs/gcc/config/i386/freebsd.h,v
retrieving revision 1.1.1.6
diff -c -p -d -r1.1.1.6 freebsd.h
*** config/i386/freebsd.h	1998/04/04 16:28:50	1.1.1.6
--- config/i386/freebsd.h	1998/04/08 18:10:31
*************** Boston, MA 02111-1307, USA.  */
*** 84,90 ****
  /* Indicate that jump tables go in the text section.  This is
     necessary when compiling PIC code.  */
  
! #define JUMP_TABLES_IN_TEXT_SECTION
  
  /* Don't default to pcc-struct-return, because gcc is the only compiler, and
     we want to retain compatibility with older gcc versions.  */
--- 84,90 ----
  /* Indicate that jump tables go in the text section.  This is
     necessary when compiling PIC code.  */
  
! #define JUMP_TABLES_IN_TEXT_SECTION 1
  
  /* Don't default to pcc-struct-return, because gcc is the only compiler, and
     we want to retain compatibility with older gcc versions.  */
Index: config/i386/linux.h
===================================================================
RCS file: /usr/local/cvs/gcs/gcc/config/i386/linux.h,v
retrieving revision 1.1.1.7
diff -c -p -d -r1.1.1.7 linux.h
*** config/i386/linux.h	1998/04/04 15:44:50	1.1.1.7
--- config/i386/linux.h	1998/04/08 18:10:27
*************** Boston, MA 02111-1307, USA.  */
*** 46,52 ****
  
  /* Indicate that jump tables go in the text section.  This is
     necessary when compiling PIC code.  */
! #define JUMP_TABLES_IN_TEXT_SECTION
  
  /* Copy this from the svr4 specifications... */
  /* Define the register numbers to be used in Dwarf debugging information.
--- 46,52 ----
  
  /* Indicate that jump tables go in the text section.  This is
     necessary when compiling PIC code.  */
! #define JUMP_TABLES_IN_TEXT_SECTION (flag_pic)
  
  /* Copy this from the svr4 specifications... */
  /* Define the register numbers to be used in Dwarf debugging information.
Index: config/i386/netbsd.h
===================================================================
RCS file: /usr/local/cvs/gcs/gcc/config/i386/netbsd.h,v
retrieving revision 1.1.1.4
diff -c -p -d -r1.1.1.4 netbsd.h
*** config/i386/netbsd.h	1998/04/04 16:11:26	1.1.1.4
--- config/i386/netbsd.h	1998/04/08 18:10:17
***************
*** 50,56 ****
  /* Indicate that jump tables go in the text section.  This is
     necessary when compiling PIC code.  */
  
! #define JUMP_TABLES_IN_TEXT_SECTION
  
  /* Don't default to pcc-struct-return, because gcc is the only compiler, and
     we want to retain compatibility with older gcc versions.  */
--- 50,56 ----
  /* Indicate that jump tables go in the text section.  This is
     necessary when compiling PIC code.  */
  
! #define JUMP_TABLES_IN_TEXT_SECTION 1
  
  /* Don't default to pcc-struct-return, because gcc is the only compiler, and
     we want to retain compatibility with older gcc versions.  */
Index: config/i386/ptx4-i.h
===================================================================
RCS file: /usr/local/cvs/gcs/gcc/config/i386/ptx4-i.h,v
retrieving revision 1.1.1.2
diff -c -p -d -r1.1.1.2 ptx4-i.h
*** config/i386/ptx4-i.h	1998/04/04 15:44:51	1.1.1.2
--- config/i386/ptx4-i.h	1998/04/08 18:10:12
*************** do { long value[3];							\
*** 244,247 ****
  /* Indicate that jump tables go in the text section.  This is
     necessary when compiling PIC code.  */
  
! #define JUMP_TABLES_IN_TEXT_SECTION
--- 244,247 ----
  /* Indicate that jump tables go in the text section.  This is
     necessary when compiling PIC code.  */
  
! #define JUMP_TABLES_IN_TEXT_SECTION 1
Index: config/i386/sysv4.h
===================================================================
RCS file: /usr/local/cvs/gcs/gcc/config/i386/sysv4.h,v
retrieving revision 1.1.1.2
diff -c -p -d -r1.1.1.2 sysv4.h
*** config/i386/sysv4.h	1998/04/04 15:44:52	1.1.1.2
--- config/i386/sysv4.h	1998/04/08 18:10:02
*************** do { long value[3];							\
*** 242,248 ****
  /* Indicate that jump tables go in the text section.  This is
     necessary when compiling PIC code.  */
  
! #define JUMP_TABLES_IN_TEXT_SECTION
  
  /* A C statement (sans semicolon) to output to the stdio stream
     FILE the assembler definition of uninitialized global DECL named
--- 242,248 ----
  /* Indicate that jump tables go in the text section.  This is
     necessary when compiling PIC code.  */
  
! #define JUMP_TABLES_IN_TEXT_SECTION 1
  
  /* A C statement (sans semicolon) to output to the stdio stream
     FILE the assembler definition of uninitialized global DECL named
Index: config/pa/pa.h
===================================================================
RCS file: /usr/local/cvs/gcs/gcc/config/pa/pa.h,v
retrieving revision 1.1.1.21
diff -c -p -d -r1.1.1.21 pa.h
*** config/pa/pa.h	1998/04/06 17:12:26	1.1.1.21
--- config/pa/pa.h	1998/04/08 18:09:05
*************** DTORS_SECTION_FUNCTION
*** 2257,2263 ****
      fprintf (FILE, "\tb L$%04d\n\tnop\n", VALUE)
  
  /* Jump tables are executable code and live in the TEXT section on the PA.  */
! #define JUMP_TABLES_IN_TEXT_SECTION
  
  /* This is how to output an element of a case-vector that is relative.
     This must be defined correctly as it is used when generating PIC code.
--- 2257,2263 ----
      fprintf (FILE, "\tb L$%04d\n\tnop\n", VALUE)
  
  /* Jump tables are executable code and live in the TEXT section on the PA.  */
! #define JUMP_TABLES_IN_TEXT_SECTION 1
  
  /* This is how to output an element of a case-vector that is relative.
     This must be defined correctly as it is used when generating PIC code.
Index: config/rs6000/linux.h
===================================================================
RCS file: /usr/local/cvs/gcs/gcc/config/rs6000/linux.h,v
retrieving revision 1.1.1.8
diff -c -p -d -r1.1.1.8 linux.h
*** config/rs6000/linux.h	1998/04/04 15:45:35	1.1.1.8
--- config/rs6000/linux.h	1998/04/08 18:08:58
*************** the Free Software Foundation, 675 Mass A
*** 69,72 ****
  #endif
  
  #undef JUMP_TABLES_IN_TEXT_SECTION
! #define JUMP_TABLES_IN_TEXT_SECTION
--- 69,72 ----
  #endif
  
  #undef JUMP_TABLES_IN_TEXT_SECTION
! #define JUMP_TABLES_IN_TEXT_SECTION 1
Index: config/rs6000/rs6000.h
===================================================================
RCS file: /usr/local/cvs/gcs/gcc/config/rs6000/rs6000.h,v
retrieving revision 1.1.1.20
diff -c -p -d -r1.1.1.20 rs6000.h
*** config/rs6000/rs6000.h	1998/04/06 17:12:33	1.1.1.20
--- config/rs6000/rs6000.h	1998/04/08 18:08:52
*************** extern int rs6000_trunc_used;
*** 2375,2381 ****
  
  /* Indicate that jump tables go in the text section.  */
  
! #define JUMP_TABLES_IN_TEXT_SECTION
  
  /* Define the routines to implement these extra sections.  */
  
--- 2375,2381 ----
  
  /* Indicate that jump tables go in the text section.  */
  
! #define JUMP_TABLES_IN_TEXT_SECTION 1
  
  /* Define the routines to implement these extra sections.  */
  
Index: config/rs6000/sysv4.h
===================================================================
RCS file: /usr/local/cvs/gcs/gcc/config/rs6000/sysv4.h,v
retrieving revision 1.1.1.9
diff -c -p -d -r1.1.1.9 sysv4.h
*** config/rs6000/sysv4.h	1998/04/04 16:12:27	1.1.1.9
--- config/rs6000/sysv4.h	1998/04/08 18:08:42
*************** do {									\
*** 331,336 ****
--- 331,337 ----
  
  /* Put jump tables in read-only memory, rather than in .text.  */
  #undef JUMP_TABLES_IN_TEXT_SECTION
+ #define JUMP_TABLES_IN_TEXT_SECTION 0
  
  /* Disable AIX-ism that disables turning -B into -L if the argument specifies a
     relative file name.  This breaks setting GCC_EXEC_PREFIX to D:\path under
Index: config/sh/sh.h
===================================================================
RCS file: /usr/local/cvs/gcs/gcc/config/sh/sh.h,v
retrieving revision 1.1.1.12
diff -c -p -d -r1.1.1.12 sh.h
*** config/sh/sh.h	1998/04/04 16:29:39	1.1.1.12
--- config/sh/sh.h	1998/04/08 18:08:21
*************** dtors_section()							\
*** 1457,1463 ****
  
  /* Define this so that jump tables go in same section as the current function,
     which could be text or it could be a user defined section.  */
! #define JUMP_TABLES_IN_TEXT_SECTION
  
  /* A C statement to output something to the assembler file to switch to section
     NAME for object DECL which is either a FUNCTION_DECL, a VAR_DECL or
--- 1457,1463 ----
  
  /* Define this so that jump tables go in same section as the current function,
     which could be text or it could be a user defined section.  */
! #define JUMP_TABLES_IN_TEXT_SECTION 1
  
  /* A C statement to output something to the assembler file to switch to section
     NAME for object DECL which is either a FUNCTION_DECL, a VAR_DECL or
Index: config/sparc/sp64-elf.h
===================================================================
RCS file: /usr/local/cvs/gcs/gcc/config/sparc/sp64-elf.h,v
retrieving revision 1.1.1.2
diff -c -p -d -r1.1.1.2 sp64-elf.h
*** config/sparc/sp64-elf.h	1998/04/03 19:55:20	1.1.1.2
--- config/sparc/sp64-elf.h	1998/04/08 18:08:07
*************** crtbegin.o%s \
*** 109,115 ****
     tables from other label refs (when we need to).  */
  /* ??? Revisit this.  */
  #undef JUMP_TABLES_IN_TEXT_SECTION
! #define JUMP_TABLES_IN_TEXT_SECTION
  
  /* System V Release 4 uses DWARF debugging info.
     GDB doesn't support 64 bit stabs yet and the desired debug format is DWARF
--- 109,115 ----
     tables from other label refs (when we need to).  */
  /* ??? Revisit this.  */
  #undef JUMP_TABLES_IN_TEXT_SECTION
! #define JUMP_TABLES_IN_TEXT_SECTION 1
  
  /* System V Release 4 uses DWARF debugging info.
     GDB doesn't support 64 bit stabs yet and the desired debug format is DWARF
Index: config/v850/v850.h
===================================================================
RCS file: /usr/local/cvs/gcs/gcc/config/v850/v850.h,v
retrieving revision 1.1.1.7
diff -c -p -d -r1.1.1.7 v850.h
*** config/v850/v850.h	1998/04/04 15:45:53	1.1.1.7
--- config/v850/v850.h	1998/04/08 18:07:52
*************** do { char dstr[30];					\
*** 1326,1332 ****
  
  /* The switch instruction requires that the jump table immediately follow
     it. */
! #define JUMP_TABLES_IN_TEXT_SECTION
  
  /* svr4.h defines this assuming that 4 byte alignment is required.  */
  #undef ASM_OUTPUT_BEFORE_CASE_LABEL
--- 1326,1332 ----
  
  /* The switch instruction requires that the jump table immediately follow
     it. */
! #define JUMP_TABLES_IN_TEXT_SECTION 1
  
  /* svr4.h defines this assuming that 4 byte alignment is required.  */
  #undef ASM_OUTPUT_BEFORE_CASE_LABEL




More information about the Gcc mailing list