This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Prototypes for target machine header files


This is a new version of a patch I've submitted on several occasions
before.  The intent is to make it possible to provide properly prototyped
function declarations in target machine header files.  Every file that
can be reasonably expected to use one of these functions is changed to
include a new file "tm_p.h" after "tree.h"/"rtl.h".  This new file is
generated by configure, it can be empty (currently the case for most
machines), or it can include the file containing the prototypes.  So far,
I've converted the i386 header file by splitting off a new file
"i386-protos.h".

This compiles on both i386 (converted) and sparc (not converted yet).

Additional question: most files seem to include "system.h" these days,
which in turn includes <stdio.h>.  However, all uses of "FILE *" in
prototypes are guarded with "#ifdef BUFSIZ".  Wouldn't it make more sense
to simply include "system.h" everywhere, and delete the guards?

Bernd

	* configure.in: Create a new file, "tm_p.h", from a list in
	"tm_p_file". For ix86 systems, set up "tm_p_file" to include
	"i386/i386-protos.h".
	* Makefile.in (distclean): Remove "tm_p.h".
	* i386/i386.h: Move all function declarations from here...
	* i386/i386-protos.h: ...to here. Add prototypes.
	* i386/i386.h (optimize, obey_regdecls, force_operand): Delete
	declarations.
	* i386/i386.c: Include "tm_p.h".
	(i386_compare_gen, i386_compare_gen_eq): Add prototypes.
	Change "struct rtx_def *" to "rtx" in some places.
	(is_mul, is_div): Fix formatting problems.
	* calls.c: Include "tm_p.h".
	* c-typeck.c: Likewise.
	* combine.c: Likewise.
	* cse,c: Likewise.
	* emit-rtl.c: Likewise.
	* explow.c: Likewise.
	* expmed.c: Likewise.
	* expr.c: Likewise.
	* final.c: Likewise.
	* flow.c: Likewise.
	* fold-const.c: Likewise.
	* function.c: Likewise.
	* gcse.c: Likewise.
	* global.c: Likewise.
	* haifa-sched.c: Likewise.
	* integrate.c: Likewise.
	* jump.c: Likewise.
	* local-alloc.c: Likewise.
	* loop.c: Likewise.
	* optabs.c: Likewise.
	* recog.c: Likewise.
	* reg-stack.c: Likewise.
	* regmove.c: Likewise.
	* reload.c: Likewise.
	* reload1.c: Likewise.
	* reorg.c: Likewise.
	* sched.c: Likewise.
	* stmt.c: Likewise.
	* toplev.c: Likewise.
	* tree.c: Likewise.
	* unroll.c: Likewise.
	* genrecog.c: Make generated file include "tm_p.h".
	* genemit.c: Likewise.
	* genoutput.c: Likewise.
	* genattrtab.c: Likewise.
	* resource.c: Include "system.h" and "tm_p.h".

cp/ChangeLog:
	* typeck.c: Include "tm_p.h".

Index: Makefile.in
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/Makefile.in,v
retrieving revision 1.265
diff -u -p -r1.265 Makefile.in
--- Makefile.in	1999/05/20 22:22:32	1.265
+++ Makefile.in	1999/06/05 11:55:07
@@ -2365,7 +2365,7 @@ clean: mostlyclean intl.clean lang.clean
 # while building and installing GCC.
 INTL_DISTCLEAN = intl.distclean
 distclean: clean $(INTL_DISTCLEAN) lang.distclean
-	-rm -f tm.h config.h auto-host.h auto-build.h tconfig.h hconfig.h
+	-rm -f tm.h tm_p.h config.h auto-host.h auto-build.h tconfig.h hconfig.h
 	-rm -f md cstamp-h
 	-rm -f config.status config.run config.cache config.bak
 	-rm -f Make-lang Make-hooks Make-host Make-target
Index: alias.c
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/alias.c,v
retrieving revision 1.53
diff -u -p -r1.53 alias.c
--- alias.c	1999/05/30 23:51:39	1.53
+++ alias.c	1999/06/05 11:55:13
@@ -22,6 +22,7 @@ Boston, MA 02111-1307, USA.  */
 #include "config.h"
 #include "system.h"
 #include "rtl.h"
+#include "tm_p.h"
 #include "expr.h"
 #include "regs.h"
 #include "hard-reg-set.h"
Index: c-typeck.c
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/c-typeck.c,v
retrieving revision 1.26
diff -u -p -r1.26 c-typeck.c
--- c-typeck.c	1999/05/09 19:56:55	1.26
+++ c-typeck.c	1999/06/05 11:55:33
@@ -32,6 +32,7 @@ Boston, MA 02111-1307, USA.  */
 #include "system.h"
 #include "tree.h"
 #include "c-tree.h"
+#include "tm_p.h"
 #include "flags.h"
 #include "output.h"
 #include "rtl.h"
Index: calls.c
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/calls.c,v
retrieving revision 1.57
diff -u -p -r1.57 calls.c
--- calls.c	1999/05/08 01:58:39	1.57
+++ calls.c	1999/06/05 11:55:43
@@ -22,6 +22,7 @@ Boston, MA 02111-1307, USA.  */
 #include "system.h"
 #include "rtl.h"
 #include "tree.h"
+#include "tm_p.h"
 #include "flags.h"
 #include "expr.h"
 #include "regs.h"
Index: combine.c
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/combine.c,v
retrieving revision 1.62
diff -u -p -r1.62 combine.c
--- combine.c	1999/03/25 16:54:31	1.62
+++ combine.c	1999/06/05 11:56:17
@@ -77,6 +77,7 @@ Boston, MA 02111-1307, USA.  */
 #include "config.h"
 #include "system.h"
 #include "rtl.h" /* stdio.h must precede rtl.h for FFS.  */
+#include "tm_p.h"
 #include "flags.h"
 #include "regs.h"
 #include "hard-reg-set.h"
Index: cse.c
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/cse.c,v
retrieving revision 1.72
diff -u -p -r1.72 cse.c
--- cse.c	1999/05/17 00:36:36	1.72
+++ cse.c	1999/06/05 11:57:04
@@ -25,6 +25,7 @@ Boston, MA 02111-1307, USA.  */
 #include <setjmp.h>
 
 #include "rtl.h"
+#include "tm_p.h"
 #include "regs.h"
 #include "hard-reg-set.h"
 #include "flags.h"
Index: emit-rtl.c
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/emit-rtl.c,v
retrieving revision 1.59
diff -u -p -r1.59 emit-rtl.c
--- emit-rtl.c	1999/04/29 23:01:26	1.59
+++ emit-rtl.c	1999/06/05 11:57:12
@@ -39,6 +39,7 @@ Boston, MA 02111-1307, USA.  */
 #include "toplev.h"
 #include "rtl.h"
 #include "tree.h"
+#include "tm_p.h"
 #include "flags.h"
 #include "except.h"
 #include "function.h"
Index: explow.c
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/explow.c,v
retrieving revision 1.28
diff -u -p -r1.28 explow.c
--- explow.c	1999/04/17 17:14:48	1.28
+++ explow.c	1999/06/05 11:57:15
@@ -24,6 +24,7 @@ Boston, MA 02111-1307, USA.  */
 #include "toplev.h"
 #include "rtl.h"
 #include "tree.h"
+#include "tm_p.h"
 #include "flags.h"
 #include "expr.h"
 #include "hard-reg-set.h"
Index: expmed.c
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/expmed.c,v
retrieving revision 1.31
diff -u -p -r1.31 expmed.c
--- expmed.c	1999/04/17 17:14:49	1.31
+++ expmed.c	1999/06/05 11:57:25
@@ -25,6 +25,7 @@ Boston, MA 02111-1307, USA.  */
 #include "toplev.h"
 #include "rtl.h"
 #include "tree.h"
+#include "tm_p.h"
 #include "flags.h"
 #include "insn-flags.h"
 #include "insn-codes.h"
Index: expr.c
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/expr.c,v
retrieving revision 1.144
diff -u -p -r1.144 expr.c
--- expr.c	1999/05/17 07:21:14	1.144
+++ expr.c	1999/06/05 11:58:00
@@ -24,6 +24,7 @@ Boston, MA 02111-1307, USA.  */
 #include "machmode.h"
 #include "rtl.h"
 #include "tree.h"
+#include "tm_p.h"
 #include "obstack.h"
 #include "flags.h"
 #include "regs.h"
Index: final.c
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/final.c,v
retrieving revision 1.77
diff -u -p -r1.77 final.c
--- final.c	1999/04/27 12:23:16	1.77
+++ final.c	1999/06/05 11:58:03
@@ -49,6 +49,7 @@ Boston, MA 02111-1307, USA.  */
 
 #include "tree.h"
 #include "rtl.h"
+#include "tm_p.h"
 #include "regs.h"
 #include "insn-config.h"
 #include "insn-flags.h"
Index: flow.c
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/flow.c,v
retrieving revision 1.124
diff -u -p -r1.124 flow.c
--- flow.c	1999/05/31 08:43:01	1.124
+++ flow.c	1999/06/05 11:58:17
@@ -121,6 +121,7 @@ Boston, MA 02111-1307, USA.  */
 #include "config.h"
 #include "system.h"
 #include "rtl.h"
+#include "tm_p.h"
 #include "basic-block.h"
 #include "insn-config.h"
 #include "regs.h"
Index: fold-const.c
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/fold-const.c,v
retrieving revision 1.67
diff -u -p -r1.67 fold-const.c
--- fold-const.c	1999/06/02 15:42:19	1.67
+++ fold-const.c	1999/06/05 11:58:32
@@ -48,6 +48,7 @@ Boston, MA 02111-1307, USA.  */
 #include "flags.h"
 #include "tree.h"
 #include "rtl.h"
+#include "tm_p.h"
 #include "toplev.h"
 
 static void encode		PROTO((HOST_WIDE_INT *,
Index: function.c
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/function.c,v
retrieving revision 1.91
diff -u -p -r1.91 function.c
--- function.c	1999/05/20 22:22:34	1.91
+++ function.c	1999/06/05 11:58:58
@@ -42,6 +42,7 @@ Boston, MA 02111-1307, USA.  */
 #include "system.h"
 #include "rtl.h"
 #include "tree.h"
+#include "tm_p.h"
 #include "flags.h"
 #include "except.h"
 #include "function.h"
Index: gcse.c
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/gcse.c,v
retrieving revision 1.39
diff -u -p -r1.39 gcse.c
--- gcse.c	1999/06/03 00:19:42	1.39
+++ gcse.c	1999/06/05 11:59:08
@@ -144,6 +144,7 @@ Boston, MA 02111-1307, USA.  */
 #include "toplev.h"
 
 #include "rtl.h"
+#include "tm_p.h"
 #include "regs.h"
 #include "hard-reg-set.h"
 #include "flags.h"
Index: genattrtab.c
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/genattrtab.c,v
retrieving revision 1.48
diff -u -p -r1.48 genattrtab.c
--- genattrtab.c	1999/04/16 19:52:21	1.48
+++ genattrtab.c	1999/06/05 11:59:21
@@ -6085,6 +6085,7 @@ from the machine description file `md'. 
   printf ("#include \"config.h\"\n");
   printf ("#include \"system.h\"\n");
   printf ("#include \"rtl.h\"\n");
+  printf ("#include \"tm_p.h\"\n");
   printf ("#include \"insn-config.h\"\n");
   printf ("#include \"recog.h\"\n");
   printf ("#include \"regs.h\"\n");
Index: genemit.c
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/genemit.c,v
retrieving revision 1.30
diff -u -p -r1.30 genemit.c
--- genemit.c	1999/04/16 19:52:25	1.30
+++ genemit.c	1999/06/05 11:59:22
@@ -770,6 +770,7 @@ from the machine description file `md'. 
   printf ("#include \"config.h\"\n");
   printf ("#include \"system.h\"\n");
   printf ("#include \"rtl.h\"\n");
+  printf ("#include \"tm_p.h\"\n");
   printf ("#include \"expr.h\"\n");
   printf ("#include \"real.h\"\n");
   printf ("#include \"flags.h\"\n");
Index: genoutput.c
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/genoutput.c,v
retrieving revision 1.23
diff -u -p -r1.23 genoutput.c
--- genoutput.c	1999/04/16 19:52:33	1.23
+++ genoutput.c	1999/06/05 11:59:24
@@ -215,6 +215,7 @@ from the machine description file `md'. 
   printf ("#include \"system.h\"\n");
   printf ("#include \"flags.h\"\n");
   printf ("#include \"rtl.h\"\n");
+  printf ("#include \"tm_p.h\"\n");
   printf ("#include \"regs.h\"\n");
   printf ("#include \"hard-reg-set.h\"\n");
   printf ("#include \"real.h\"\n");
Index: genrecog.c
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/genrecog.c,v
retrieving revision 1.33
diff -u -p -r1.33 genrecog.c
--- genrecog.c	1999/04/16 19:52:35	1.33
+++ genrecog.c	1999/06/05 11:59:29
@@ -1762,6 +1762,7 @@ from the machine description file `md'. 
   printf ("#include \"config.h\"\n");
   printf ("#include \"system.h\"\n");
   printf ("#include \"rtl.h\"\n");
+  printf ("#include \"tm_p.h\"\n");
   printf ("#include \"insn-config.h\"\n");
   printf ("#include \"recog.h\"\n");
   printf ("#include \"real.h\"\n");
Index: global.c
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/global.c,v
retrieving revision 1.27
diff -u -p -r1.27 global.c
--- global.c	1999/02/25 23:45:19	1.27
+++ global.c	1999/06/05 11:59:34
@@ -25,6 +25,7 @@ Boston, MA 02111-1307, USA.  */
 #include "machmode.h"
 #include "hard-reg-set.h"
 #include "rtl.h"
+#include "tm_p.h"
 #include "flags.h"
 #include "basic-block.h"
 #include "regs.h"
Index: haifa-sched.c
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/haifa-sched.c,v
retrieving revision 1.87
diff -u -p -r1.87 haifa-sched.c
--- haifa-sched.c	1999/05/31 08:43:04	1.87
+++ haifa-sched.c	1999/06/05 11:59:55
@@ -159,6 +159,7 @@
 #include "system.h"
 #include "toplev.h"
 #include "rtl.h"
+#include "tm_p.h"
 #include "basic-block.h"
 #include "regs.h"
 #include "hard-reg-set.h"
Index: integrate.c
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/integrate.c,v
retrieving revision 1.54
diff -u -p -r1.54 integrate.c
--- integrate.c	1999/04/25 23:35:12	1.54
+++ integrate.c	1999/06/05 12:00:07
@@ -25,6 +25,7 @@ Boston, MA 02111-1307, USA.  */
 
 #include "rtl.h"
 #include "tree.h"
+#include "tm_p.h"
 #include "regs.h"
 #include "flags.h"
 #include "insn-config.h"
Index: jump.c
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/jump.c,v
retrieving revision 1.61
diff -u -p -r1.61 jump.c
--- jump.c	1999/05/31 13:34:55	1.61
+++ jump.c	1999/06/05 12:00:19
@@ -54,6 +54,7 @@ Boston, MA 02111-1307, USA.  */
 #include "config.h"
 #include "system.h"
 #include "rtl.h"
+#include "tm_p.h"
 #include "flags.h"
 #include "hard-reg-set.h"
 #include "regs.h"
Index: local-alloc.c
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/local-alloc.c,v
retrieving revision 1.39
diff -u -p -r1.39 local-alloc.c
--- local-alloc.c	1999/04/10 02:55:35	1.39
+++ local-alloc.c	1999/06/05 12:00:26
@@ -62,6 +62,7 @@ Boston, MA 02111-1307, USA.  */
 #include "config.h"
 #include "system.h"
 #include "rtl.h"
+#include "tm_p.h"
 #include "flags.h"
 #include "basic-block.h"
 #include "regs.h"
Index: loop.c
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/loop.c,v
retrieving revision 1.160
diff -u -p -r1.160 loop.c
--- loop.c	1999/06/04 01:32:21	1.160
+++ loop.c	1999/06/05 12:00:55
@@ -37,6 +37,7 @@ Boston, MA 02111-1307, USA.  */
 #include "config.h"
 #include "system.h"
 #include "rtl.h"
+#include "tm_p.h"
 #include "obstack.h"
 #include "expr.h"
 #include "insn-config.h"
Index: optabs.c
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/optabs.c,v
retrieving revision 1.34
diff -u -p -r1.34 optabs.c
--- optabs.c	1999/05/20 08:29:52	1.34
+++ optabs.c	1999/06/05 12:01:04
@@ -28,6 +28,7 @@ Boston, MA 02111-1307, USA.  */
 #include "insn-config.h"
 #include "rtl.h"
 #include "tree.h"
+#include "tm_p.h"
 #include "flags.h"
 #include "insn-flags.h"
 #include "insn-codes.h"
Index: recog.c
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/recog.c,v
retrieving revision 1.33
diff -u -p -r1.33 recog.c
--- recog.c	1999/04/10 22:16:29	1.33
+++ recog.c	1999/06/05 12:01:10
@@ -22,6 +22,7 @@ Boston, MA 02111-1307, USA.  */
 #include "config.h"
 #include "system.h"
 #include "rtl.h"
+#include "tm_p.h"
 #include "insn-config.h"
 #include "insn-attr.h"
 #include "insn-flags.h"
Index: reg-stack.c
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/reg-stack.c,v
retrieving revision 1.31
diff -u -p -r1.31 reg-stack.c
--- reg-stack.c	1999/05/17 02:31:34	1.31
+++ reg-stack.c	1999/06/05 12:01:18
@@ -154,6 +154,7 @@ Boston, MA 02111-1307, USA.  */
 #include "system.h"
 #include "tree.h"
 #include "rtl.h"
+#include "tm_p.h"
 #include "insn-config.h"
 #include "regs.h"
 #include "hard-reg-set.h"
Index: regclass.c
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/regclass.c,v
retrieving revision 1.54
diff -u -p -r1.54 regclass.c
--- regclass.c	1999/02/25 23:45:28	1.54
+++ regclass.c	1999/06/05 12:01:23
@@ -26,6 +26,7 @@ Boston, MA 02111-1307, USA.  */
 #include "config.h"
 #include "system.h"
 #include "rtl.h"
+#include "tm_p.h"
 #include "hard-reg-set.h"
 #include "flags.h"
 #include "basic-block.h"
Index: regmove.c
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/regmove.c,v
retrieving revision 1.59
diff -u -p -r1.59 regmove.c
--- regmove.c	1999/04/03 15:27:53	1.59
+++ regmove.c	1999/06/05 12:01:29
@@ -27,6 +27,7 @@ Boston, MA 02111-1307, USA.  */
 #include "config.h"
 #include "system.h"
 #include "rtl.h" /* stdio.h must precede rtl.h for FFS.  */
+#include "tm_p.h"
 #include "insn-config.h"
 #include "recog.h"
 #include "output.h"
Index: reload.c
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/reload.c,v
retrieving revision 1.72
diff -u -p -r1.72 reload.c
--- reload.c	1999/05/27 01:19:12	1.72
+++ reload.c	1999/06/05 12:01:49
@@ -90,6 +90,7 @@ a register with any other reload.  */
 #include "config.h"
 #include "system.h"
 #include "rtl.h"
+#include "tm_p.h"
 #include "insn-config.h"
 #include "insn-codes.h"
 #include "recog.h"
Index: reload1.c
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/reload1.c,v
retrieving revision 1.145
diff -u -p -r1.145 reload1.c
--- reload1.c	1999/05/08 01:34:55	1.145
+++ reload1.c	1999/06/05 12:02:17
@@ -25,6 +25,7 @@ Boston, MA 02111-1307, USA.  */
 #include "machmode.h"
 #include "hard-reg-set.h"
 #include "rtl.h"
+#include "tm_p.h"
 #include "obstack.h"
 #include "insn-config.h"
 #include "insn-flags.h"
Index: reorg.c
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/reorg.c,v
retrieving revision 1.36
diff -u -p -r1.36 reorg.c
--- reorg.c	1999/04/17 17:14:55	1.36
+++ reorg.c	1999/06/05 12:02:29
@@ -123,6 +123,7 @@ Boston, MA 02111-1307, USA.  */
 #include "system.h"
 #include "toplev.h"
 #include "rtl.h"
+#include "tm_p.h"
 #include "expr.h"
 #include "insn-config.h"
 #include "conditions.h"
Index: resource.c
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/resource.c,v
retrieving revision 1.6
diff -u -p -r1.6 resource.c
--- resource.c	1999/05/06 23:29:23	1.6
+++ resource.c	1999/06/05 12:02:29
@@ -19,8 +19,10 @@ the Free Software Foundation, 59 Temple 
 Boston, MA 02111-1307, USA.  */
 
 #include "config.h"
+#include "system.h"
 #include "toplev.h"
 #include "rtl.h"
+#include "tm_p.h"
 #include "hard-reg-set.h"
 #include "system.h"
 #include "basic-block.h"
Index: sched.c
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/sched.c,v
retrieving revision 1.37
diff -u -p -r1.37 sched.c
--- sched.c	1999/05/31 08:43:02	1.37
+++ sched.c	1999/06/05 12:02:41
@@ -121,6 +121,7 @@ Boston, MA 02111-1307, USA.  */
 #include "system.h"
 #include "toplev.h"
 #include "rtl.h"
+#include "tm_p.h"
 #include "basic-block.h"
 #include "regs.h"
 #include "hard-reg-set.h"
Index: stmt.c
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/stmt.c,v
retrieving revision 1.74
diff -u -p -r1.74 stmt.c
--- stmt.c	1999/05/30 13:33:10	1.74
+++ stmt.c	1999/06/05 12:02:56
@@ -38,6 +38,7 @@ Boston, MA 02111-1307, USA.  */
 
 #include "rtl.h"
 #include "tree.h"
+#include "tm_p.h"
 #include "flags.h"
 #include "except.h"
 #include "function.h"
Index: stor-layout.c
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/stor-layout.c,v
retrieving revision 1.25
diff -u -p -r1.25 stor-layout.c
--- stor-layout.c	1999/03/11 13:56:20	1.25
+++ stor-layout.c	1999/06/05 12:03:00
@@ -24,6 +24,7 @@ Boston, MA 02111-1307, USA.  */
 
 #include "tree.h"
 #include "rtl.h"
+#include "tm_p.h"
 #include "flags.h"
 #include "except.h"
 #include "function.h"
Index: toplev.c
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/toplev.c,v
retrieving revision 1.186
diff -u -p -r1.186 toplev.c
--- toplev.c	1999/05/20 10:37:00	1.186
+++ toplev.c	1999/06/05 12:03:14
@@ -41,6 +41,7 @@ Boston, MA 02111-1307, USA.  */
 #include "input.h"
 #include "tree.h"
 #include "rtl.h"
+#include "tm_p.h"
 #include "flags.h"
 #include "insn-attr.h"
 #include "insn-codes.h"
Index: tree.c
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/tree.c,v
retrieving revision 1.64
diff -u -p -r1.64 tree.c
--- tree.c	1999/04/17 11:43:57	1.64
+++ tree.c	1999/06/05 12:03:24
@@ -37,6 +37,7 @@ Boston, MA 02111-1307, USA.  */
 #include "system.h"
 #include "flags.h"
 #include "tree.h"
+#include "tm_p.h"
 #include "except.h"
 #include "function.h"
 #include "obstack.h"
Index: unroll.c
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/unroll.c,v
retrieving revision 1.57
diff -u -p -r1.57 unroll.c
--- unroll.c	1999/05/05 15:47:48	1.57
+++ unroll.c	1999/06/05 12:03:36
@@ -149,6 +149,7 @@ enum unroll_types { UNROLL_COMPLETELY, U
 #include "config.h"
 #include "system.h"
 #include "rtl.h"
+#include "tm_p.h"
 #include "insn-config.h"
 #include "integrate.h"
 #include "regs.h"
Index: config/i386/i386.c
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/config/i386/i386.c,v
retrieving revision 1.81
diff -u -p -r1.81 i386.c
--- config/i386/i386.c	1999/05/27 12:11:03	1.81
+++ config/i386/i386.c	1999/06/05 12:03:50
@@ -22,6 +22,8 @@ Boston, MA 02111-1307, USA. */
 #include "config.h"
 #include "system.h"
 #include "rtl.h"
+#include "tree.h"
+#include "tm_p.h"
 #include "regs.h"
 #include "hard-reg-set.h"
 #include "real.h"
@@ -30,7 +32,6 @@ Boston, MA 02111-1307, USA. */
 #include "insn-flags.h"
 #include "output.h"
 #include "insn-attr.h"
-#include "tree.h"
 #include "flags.h"
 #include "except.h"
 #include "function.h"
@@ -171,9 +172,10 @@ enum reg_class regclass_map[FIRST_PSEUDO
 /* Test and compare insns in i386.md store the information needed to
    generate branch and scc insns here.  */
 
-struct rtx_def *i386_compare_op0 = NULL_RTX;
-struct rtx_def *i386_compare_op1 = NULL_RTX;
-struct rtx_def *(*i386_compare_gen)(), *(*i386_compare_gen_eq)();
+rtx i386_compare_op0 = NULL_RTX;
+rtx i386_compare_op1 = NULL_RTX;
+rtx (*i386_compare_gen) PROTO((rtx, rtx));
+rtx (*i386_compare_gen_eq) PROTO((rtx, rtx));
 
 /* which cpu are we scheduling for */
 enum processor_type ix86_cpu;
@@ -484,9 +486,9 @@ optimization_options (level, size)
 
 /* Sign-extend a 16-bit constant */
 
-struct rtx_def *
+rtx
 i386_sext16_if_const (op)
-     struct rtx_def *op;
+     rtx op;
 {
   if (GET_CODE (op) == CONST_INT)
     {
@@ -4486,14 +4488,16 @@ assign_386_stack_local (mode, n)
   return i386_stack_locals[(int) mode][n];
 }
 
-int is_mul(op,mode)
+int
+is_mul (op,mode)
     register rtx op;
     enum machine_mode mode ATTRIBUTE_UNUSED;
 {
   return (GET_CODE (op) == MULT);
 }
 
-int is_div(op,mode)
+int
+is_div (op,mode)
     register rtx op;
     enum machine_mode mode ATTRIBUTE_UNUSED;
 {
Index: config/i386/i386.h
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/config/i386/i386.h,v
retrieving revision 1.61
diff -u -p -r1.61 i386.h
--- config/i386/i386.h	1999/04/25 11:43:49	1.61
+++ config/i386/i386.h	1999/06/05 12:04:00
@@ -2316,12 +2316,6 @@ while (0)
   (GET_MODE_CLASS (GET_MODE (X)) == MODE_FLOAT			\
    && ((OP) == EQ || (OP) == NE) ? CCFPEQmode : VOIDmode)
 
-/* Define the information needed to generate branch and scc insns.  This is
-   stored from the compare operation.  Note that we can't use "rtx" here
-   since it hasn't been defined!  */
-
-extern struct rtx_def *(*i386_compare_gen)(), *(*i386_compare_gen_eq)();
-
 /* Tell final.c how to eliminate redundant test instructions.  */
 
 /* Here we define machine-dependent flags and fields in cc_status
@@ -2697,81 +2691,6 @@ do {									\
 } while (0)
 
 
-/* Functions in i386.c */
-extern void override_options ();
-extern void order_regs_for_local_alloc ();
-extern char *output_strlen_unroll ();
-extern struct rtx_def *i386_sext16_if_const ();
-extern int i386_aligned_p ();
-extern int i386_cc_probably_useless_p ();
-extern int i386_valid_decl_attribute_p ();
-extern int i386_valid_type_attribute_p ();
-extern int i386_return_pops_args ();
-extern int i386_comp_type_attributes ();
-extern void init_cumulative_args ();
-extern void function_arg_advance ();
-extern struct rtx_def *function_arg ();
-extern int function_arg_partial_nregs ();
-extern char *output_strlen_unroll ();
-extern char *singlemove_string ();
-extern char *output_move_double ();
-extern char *output_move_pushmem ();
-extern int standard_80387_constant_p ();
-extern char *output_move_const_single ();
-extern int symbolic_operand ();
-extern int call_insn_operand ();
-extern int expander_call_insn_operand ();
-extern int symbolic_reference_mentioned_p ();
-extern int ix86_expand_binary_operator ();
-extern int ix86_binary_operator_ok ();
-extern int ix86_expand_unary_operator ();
-extern int ix86_unary_operator_ok ();
-extern void emit_pic_move ();
-extern void function_prologue ();
-extern int simple_386_epilogue ();
-extern void function_epilogue ();
-extern int legitimate_address_p ();
-extern struct rtx_def *legitimize_pic_address ();
-extern struct rtx_def *legitimize_address ();
-extern void print_operand ();
-extern void print_operand_address ();
-extern void notice_update_cc ();
-extern void split_di ();
-extern int binary_387_op ();
-extern int shift_op ();
-extern int VOIDmode_compare_op ();
-extern char *output_387_binary_op ();
-extern char *output_fix_trunc ();
-extern void output_float_extend ();
-extern char *output_float_compare ();
-extern char *output_fp_cc0_set ();
-extern void save_386_machine_status ();
-extern void restore_386_machine_status ();
-extern void clear_386_stack_locals ();
-extern struct rtx_def *assign_386_stack_local ();
-extern int is_mul ();
-extern int is_div ();
-extern int last_to_set_cc ();
-extern int doesnt_set_condition_code ();
-extern int sets_condition_code ();
-extern int str_immediate_operand ();
-extern int is_fp_insn ();
-extern int is_fp_dest ();
-extern int is_fp_store ();
-extern int agi_dependent ();
-extern int reg_mentioned_in_mem ();
-extern char *output_int_conditional_move ();
-extern char *output_fp_conditional_move ();
-extern int ix86_can_use_return_insn_p ();
-extern int small_shift_operand ();
-extern char *output_ashl ();
-extern int memory_address_info ();
-
-#ifdef NOTYET
-extern struct rtx_def *copy_all_rtx ();
-extern void rewrite_address ();
-#endif
-
 /* Variables in i386.c */
 extern char *ix86_cpu_string;			/* for -mcpu=<xxx> */
 extern char *ix86_arch_string;			/* for -march=<xxx> */
@@ -2791,17 +2710,9 @@ extern int i386_branch_cost;			/* values
 extern char *hi_reg_name[];			/* names for 16 bit regs */
 extern char *qi_reg_name[];			/* names for 8 bit regs (low) */
 extern char *qi_high_reg_name[];		/* names for 8 bit regs (high) */
-extern enum reg_class regclass_map[];		/* smalled class containing REGNO */
+extern enum reg_class regclass_map[];		/* smallest class containing REGNO */
 extern struct rtx_def *i386_compare_op0;	/* operand 0 for comparisons */
 extern struct rtx_def *i386_compare_op1;	/* operand 1 for comparisons */
-
-/* External variables used */
-extern int optimize;				/* optimization level */
-extern int obey_regdecls;			/* TRUE if stupid register allocation */
-
-/* External functions used */
-extern struct rtx_def *force_operand ();
-
 
 /*
 Local variables:
Index: cp/typeck.c
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/cp/typeck.c,v
retrieving revision 1.169
diff -u -p -r1.169 typeck.c
--- cp/typeck.c	1999/05/25 11:55:58	1.169
+++ cp/typeck.c	1999/06/05 12:04:21
@@ -34,6 +34,7 @@ Boston, MA 02111-1307, USA.  */
 #include "tree.h"
 #include "rtl.h"
 #include "cp-tree.h"
+#include "tm_p.h"
 #include "flags.h"
 #include "output.h"
 #include "expr.h"
Index: configure.in
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/configure.in,v
retrieving revision 1.252
diff -u -p -r1.252 configure.in
--- configure.in	1999/06/02 01:37:00	1.252
+++ configure.in	1999/06/05 12:36:31
@@ -478,8 +478,9 @@ for machine in $build $host $target; do
 	gnu_ld="$gnu_ld_flag"
 	enable_threads=$enable_threads_flag
 
-	# Set default cpu_type, tm_file and xm_file so it can be updated in
-	# each machine entry.
+	# Set default cpu_type, tm_file, tm_p_file and xm_file so it can be
+	# updated in each machine entry.
+	tm_p_file=
 	cpu_type=`echo $machine | sed 's/-.*$//'`
 	case $machine in
 	alpha*-*-*)
@@ -495,6 +496,7 @@ changequote(,)dnl
 	i[34567]86-*-*)
 changequote([,])dnl
 		cpu_type=i386
+		tm_p_file=i386/i386-protos.h
 		;;
 	hppa*-*-*)
 		cpu_type=pa
@@ -3645,9 +3647,9 @@ fi
 xm_file="gansidecl.h ${xm_file}"
 tm_file="gansidecl.h ${tm_file}"
 
-vars="host_xm_file tm_file xm_file build_xm_file"
-links="config.h tm.h tconfig.h hconfig.h"
-defines="host_xm_defines null_defines xm_defines build_xm_defines"
+vars="host_xm_file tm_file tm_p_file xm_file build_xm_file"
+links="config.h tm.h tm_p.h tconfig.h hconfig.h"
+defines="host_xm_defines null_defines null_defines xm_defines build_xm_defines"
 
 rm -f config.bak
 if test -f config.status; then mv -f config.status config.bak; fi
@@ -3660,6 +3662,8 @@ do
 	set $defines; define=$1; shift; defines=$*
 
 	rm -f $link
+	# Make sure the file is created, even if it is empty.
+	echo >$link
 
 	# Define TARGET_CPU_DEFAULT if the system wants one.
 	# This substitutes for lots of *.h files.
--- /dev/null	Thu Oct  2 22:23:28 1997
+++ config/i386/i386-protos.h	Sat Jun  5 13:33:23 1999
@@ -0,0 +1,137 @@
+/* Definitions of target machine for GNU compiler for Intel X86
+   (386, 486, Pentium).
+   Copyright (C) 1988, 92, 94-98, 1999 Free Software Foundation, Inc.
+
+This file is part of GNU CC.
+
+GNU CC is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU CC is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU CC; see the file COPYING.  If not, write to
+the Free Software Foundation, 59 Temple Place - Suite 330,
+Boston, MA 02111-1307, USA. */
+
+struct function;
+
+/* Functions in i386.c */
+extern void override_options PROTO((void));
+extern void optimization_options PROTO((int, int));
+extern void order_regs_for_local_alloc PROTO((void));
+
+extern void function_prologue PROTO((FILE *, int));
+extern void function_epilogue PROTO((FILE *, int));
+extern void ix86_expand_prologue PROTO((void));
+extern void ix86_expand_epilogue PROTO((void));
+extern int ix86_can_use_return_insn_p PROTO((void));
+extern void save_386_machine_status PROTO((struct function *));
+extern void restore_386_machine_status PROTO((struct function *));
+extern void clear_386_stack_locals PROTO((void));
+extern void load_pic_register PROTO((int));
+extern HOST_WIDE_INT ix86_compute_frame_size PROTO((HOST_WIDE_INT, int *));
+
+#ifdef TREE_CODE
+
+extern int i386_valid_decl_attribute_p PROTO((tree, tree, tree, tree));
+extern int i386_valid_type_attribute_p PROTO((tree, tree, tree, tree));
+extern int i386_return_pops_args PROTO((tree, tree, int));
+extern int i386_comp_type_attributes PROTO((tree, tree));
+extern void function_arg_advance PROTO((CUMULATIVE_ARGS *, enum machine_mode,
+					tree, int));
+extern int function_arg_partial_nregs PROTO((CUMULATIVE_ARGS *,
+					     enum machine_mode, tree, int));
+#ifdef RTX_CODE
+extern void init_cumulative_args PROTO((CUMULATIVE_ARGS *, tree, rtx));
+extern rtx function_arg PROTO((CUMULATIVE_ARGS *, enum machine_mode,
+			       tree, int));
+#endif /* defined RTX_CODE */
+#endif /* defined TREE_CODE */
+
+#ifdef RTX_CODE
+
+extern int i386_aligned_p PROTO((rtx));
+extern rtx assign_386_stack_local PROTO((enum machine_mode, int));
+extern char *output_strlen_unroll PROTO((rtx *operands));
+extern rtx i386_sext16_if_const PROTO((rtx));
+extern int i386_cc_probably_useless_p PROTO((rtx));
+extern char *output_strlen_unroll PROTO((rtx *));
+extern void output_op_from_reg PROTO((rtx, char *));
+extern void output_to_reg PROTO((rtx, int, rtx));
+extern char *singlemove_string PROTO((rtx *));
+extern char *output_move_double PROTO((rtx *));
+extern char *output_move_memory PROTO((rtx *, rtx, int, int, int));
+extern char *output_move_pushmem PROTO((rtx *, rtx, int, int, int));
+extern int standard_80387_constant_p PROTO((rtx));
+extern char *output_move_const_single PROTO((rtx *));
+extern int symbolic_reference_mentioned_p PROTO((rtx));
+extern int ix86_expand_binary_operator PROTO((enum rtx_code,
+					      enum machine_mode, rtx *));
+extern int ix86_binary_operator_ok PROTO((enum rtx_code, enum machine_mode,
+					  rtx *));
+extern int ix86_expand_unary_operator PROTO((enum rtx_code,
+					     enum machine_mode, rtx *));
+extern int ix86_unary_operator_ok PROTO((enum rtx_code, enum machine_mode,
+					  rtx *));
+extern char *output_int_conditional_move PROTO((int, rtx *));
+extern char *output_fp_conditional_move PROTO((int, rtx *));
+extern void emit_pic_move PROTO((rtx *, enum machine_mode));
+extern int legitimate_address_p PROTO((enum machine_mode, rtx, int));
+extern rtx legitimize_pic_address PROTO((rtx, rtx));
+extern rtx legitimize_address PROTO((rtx, rtx, enum machine_mode));
+extern int legitimate_pic_address_disp_p PROTO((rtx));
+
+extern void print_operand PROTO((FILE *, rtx, int));
+extern void print_operand_address PROTO((FILE *, rtx));
+extern void notice_update_cc PROTO((rtx));
+extern void split_di PROTO((rtx *, int, rtx *, rtx *));
+extern int binary_387_op PROTO((rtx, enum machine_mode));
+extern int shift_op PROTO((rtx, enum machine_mode));
+extern int VOIDmode_compare_op PROTO((rtx, enum machine_mode));
+extern char *output_387_binary_op PROTO((rtx, rtx *));
+extern void output_float_extend PROTO((rtx, rtx *));
+extern char *output_fix_trunc PROTO((rtx, rtx *));
+extern char *output_float_compare PROTO((rtx, rtx *));
+extern char *output_fp_cc0_set PROTO((rtx));
+extern char *output_ashl PROTO((rtx, rtx *));
+extern int is_mul PROTO((rtx, enum machine_mode));
+extern int is_div PROTO((rtx, enum machine_mode));
+extern int last_to_set_cc PROTO((rtx, rtx));
+extern int doesnt_set_condition_code PROTO((rtx));
+extern int sets_condition_code PROTO((rtx));
+extern int is_fp_insn PROTO((rtx));
+extern int is_fp_dest PROTO((rtx));
+extern int is_fp_store PROTO((rtx));
+extern int agi_dependent PROTO((rtx, rtx));
+extern int reg_mentioned_in_mem PROTO((rtx, rtx));
+extern int x86_adjust_cost PROTO((rtx, rtx, rtx, int));
+
+extern int symbolic_operand PROTO((rtx, enum machine_mode));
+extern int call_insn_operand PROTO((rtx, enum machine_mode));
+extern int expander_call_insn_operand PROTO((rtx, enum machine_mode));
+extern int str_immediate_operand PROTO((rtx, enum machine_mode));
+extern int small_shift_operand PROTO((rtx, enum machine_mode));
+extern int ix86_logical_operator PROTO((rtx, enum machine_mode));
+extern int arithmetic_comparison_operator PROTO((rtx, enum machine_mode));
+
+extern int memory_address_info PROTO((rtx, int));
+
+/* Define the information needed to generate branch and scc insns.  This is
+   stored from the compare operation.  Note that we can't use "rtx" here
+   since it hasn't been defined!  */
+
+extern rtx (*i386_compare_gen) PROTO((rtx, rtx));
+extern rtx (*i386_compare_gen_eq) PROTO((rtx, rtx));
+
+#ifdef NOTYET
+extern rtx copy_all_rtx PROTO((rtx));
+extern void rewrite_address PROTO((rtx));
+#endif
+
+#endif /* defined RTX_CODE */


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]