Prototyping files like i386.h
Bernd Schmidt
crux@pool.informatik.rwth-aachen.de
Wed Feb 18 05:20:00 GMT 1998
Currently, the function declarations in files like i386.h can't be
prototyped properly, because they get included before rtl.h and tree.h.
This patch is an attempt to solve the problem. (Obviously, a lot of work
is still necessary to do the same thing for the other ports.)
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 function declarations from here...
* i386/i386-protos.h: to here. Add prototypes.
* 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.
* calls.c: Include tm_p.h
* c-typeck.c: Likewise.
* combine.c: Likewise.
* explow.c: Likewise.
* expmed.c: Likewise.
* expr.c: Likewise.
* final.c: Likewise.
* flow.c: Likewise.
* fold-const.c: Likewise.
* function.c: Likewise.
* global.c: Likewise.
* haifa-sched.c: Likewise.
* jump.c: Likewise.
* local-alloc.c: Likewise.
* loop.c: Likewise.
* optabs.c: Likewise.
* recog.c: Likewise.
* reg-stack.c: Likewise.
* reload.c: Likewise.
* reload1.c: Likewise.
* sched.c: Likewise.
* stmt.c: Likewise.
* unroll.c: Likewise.
* tree.c: Likewise. Include <stdio.h> immediately after "config.h".
* genrecog.c: Make generated file include "tm_p.h".
* genemit.c: Likewise.
* genoutput.c: Likewise.
Index: Makefile.in
===================================================================
RCS file: /usr/local/cvs/gcc/gcc/Makefile.in,v
retrieving revision 1.1.3.20
diff -c -p -r1.1.3.20 Makefile.in
*** Makefile.in 1998/02/16 19:03:12 1.1.3.20
--- Makefile.in 1998/02/17 12:03:51
*************** clean: mostlyclean lang.clean
*** 2105,2111 ****
# Delete all files that users would normally create
# while building and installing GCC.
distclean: clean lang.distclean
! -rm -f tm.h config.h auto-config.h tconfig.h hconfig.h md cstamp-h
-rm -f config.status config.run config.cache config.bak
-rm -f Make-lang Make-hooks Make-host Make-target
-rm -f Makefile specs.h options.h *.oaux
--- 2105,2111 ----
# Delete all files that users would normally create
# while building and installing GCC.
distclean: clean lang.distclean
! -rm -f tm.h tm_p.h config.h auto-config.h tconfig.h hconfig.h md cstamp-h
-rm -f config.status config.run config.cache config.bak
-rm -f Make-lang Make-hooks Make-host Make-target
-rm -f Makefile specs.h options.h *.oaux
Index: calls.c
===================================================================
RCS file: /usr/local/cvs/gcc/gcc/calls.c,v
retrieving revision 1.1.3.6
diff -c -p -r1.1.3.6 calls.c
*** calls.c 1998/02/16 19:03:24 1.1.3.6
--- calls.c 1998/02/17 11:34:08
*************** Boston, MA 02111-1307, USA. */
*** 22,27 ****
--- 22,28 ----
#include <stdio.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: /usr/local/cvs/gcc/gcc/combine.c,v
retrieving revision 1.1.3.12
diff -c -p -r1.1.3.12 combine.c
*** combine.c 1998/02/16 19:03:32 1.1.3.12
--- combine.c 1998/02/17 11:32:09
*************** Boston, MA 02111-1307, USA. */
*** 85,90 ****
--- 85,91 ----
#include <stdio.h>
#include "rtl.h"
+ #include "tm_p.h"
#include "flags.h"
#include "regs.h"
#include "hard-reg-set.h"
Index: configure.in
===================================================================
RCS file: /usr/local/cvs/gcc/gcc/configure.in,v
retrieving revision 1.1.3.24
diff -c -p -r1.1.3.24 configure.in
*** configure.in 1998/02/16 19:03:36 1.1.3.24
--- configure.in 1998/02/17 11:38:40
*************** for machine in $build $host $target; do
*** 241,246 ****
--- 241,247 ----
# Set default cpu_type, tm_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*-*-*)
*************** for machine in $build $host $target; do
*** 254,259 ****
--- 255,261 ----
;;
i[[3456]]86-*-*)
cpu_type=i386
+ tm_p_file=i386/i386-protos.h
;;
hppa*-*-*)
cpu_type=pa
*************** then
*** 2818,2825 ****
build_xm_file="auto-config.h ${build_xm_file}"
fi
! vars="host_xm_file tm_file xm_file build_xm_file"
! links="config.h tm.h tconfig.h hconfig.h"
rm -f config.bak
if [[ -f config.status ]]; then mv -f config.status config.bak; fi
--- 2820,2827 ----
build_xm_file="auto-config.h ${build_xm_file}"
fi
! 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"
rm -f config.bak
if [[ -f config.status ]]; then mv -f config.status config.bak; fi
Index: explow.c
===================================================================
RCS file: /usr/local/cvs/gcc/gcc/explow.c,v
retrieving revision 1.1.3.5
diff -c -p -r1.1.3.5 explow.c
*** explow.c 1998/02/16 19:03:50 1.1.3.5
--- explow.c 1998/02/17 11:30:38
*************** Boston, MA 02111-1307, USA. */
*** 23,28 ****
--- 23,29 ----
#include <stdio.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: /usr/local/cvs/gcc/gcc/expmed.c,v
retrieving revision 1.1.3.7
diff -c -p -r1.1.3.7 expmed.c
*** expmed.c 1998/02/05 16:15:58 1.1.3.7
--- expmed.c 1998/02/17 11:30:32
*************** Boston, MA 02111-1307, USA. */
*** 24,29 ****
--- 24,30 ----
#include <stdio.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: /usr/local/cvs/gcc/gcc/expr.c,v
retrieving revision 1.1.3.20
diff -c -p -r1.1.3.20 expr.c
*** expr.c 1998/02/16 19:03:51 1.1.3.20
--- expr.c 1998/02/17 11:30:19
*************** Boston, MA 02111-1307, USA. */
*** 24,29 ****
--- 24,30 ----
#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: /usr/local/cvs/gcc/gcc/final.c,v
retrieving revision 1.1.3.11
diff -c -p -r1.1.3.11 final.c
*** final.c 1998/02/16 19:03:55 1.1.3.11
--- final.c 1998/02/17 11:34:21
*************** Boston, MA 02111-1307, USA. */
*** 65,70 ****
--- 65,71 ----
#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: /usr/local/cvs/gcc/gcc/flow.c,v
retrieving revision 1.1.3.14
diff -c -p -r1.1.3.14 flow.c
*** flow.c 1998/02/16 19:03:57 1.1.3.14
--- flow.c 1998/02/17 11:31:59
*************** Boston, MA 02111-1307, USA. */
*** 111,116 ****
--- 111,117 ----
#include "config.h"
#include <stdio.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: /usr/local/cvs/gcc/gcc/fold-const.c,v
retrieving revision 1.1.3.11
diff -c -p -r1.1.3.11 fold-const.c
*** fold-const.c 1998/02/16 19:04:00 1.1.3.11
--- fold-const.c 1998/02/17 11:34:51
*************** Boston, MA 02111-1307, USA. */
*** 47,52 ****
--- 47,53 ----
#include <setjmp.h>
#include "flags.h"
#include "tree.h"
+ #include "tm_p.h"
/* Handle floating overflow for `const_binop'. */
static jmp_buf float_error;
Index: function.c
===================================================================
RCS file: /usr/local/cvs/gcc/gcc/function.c,v
retrieving revision 1.1.3.9
diff -c -p -r1.1.3.9 function.c
*** function.c 1998/02/16 19:04:03 1.1.3.9
--- function.c 1998/02/17 11:30:14
*************** Boston, MA 02111-1307, USA. */
*** 42,47 ****
--- 42,48 ----
#include <stdio.h>
#include "rtl.h"
#include "tree.h"
+ #include "tm_p.h"
#include "flags.h"
#include "except.h"
#include "function.h"
Index: genemit.c
===================================================================
RCS file: /usr/local/cvs/gcc/gcc/genemit.c,v
retrieving revision 1.1.3.6
diff -c -p -r1.1.3.6 genemit.c
*** genemit.c 1998/02/16 19:04:14 1.1.3.6
--- genemit.c 1998/02/17 11:33:24
*************** from the machine description file `md'.
*** 750,755 ****
--- 750,756 ----
printf ("#include \"config.h\"\n");
printf ("#include <stdio.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: genrecog.c
===================================================================
RCS file: /usr/local/cvs/gcc/gcc/genrecog.c,v
retrieving revision 1.1.3.4
diff -c -p -r1.1.3.4 genrecog.c
*** genrecog.c 1998/02/16 19:04:21 1.1.3.4
--- genrecog.c 1998/02/17 11:33:15
*************** from the machine description file `md'.
*** 1725,1730 ****
--- 1725,1731 ----
printf ("#include \"config.h\"\n");
printf ("#include <stdio.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: /usr/local/cvs/gcc/gcc/global.c,v
retrieving revision 1.1.3.4
diff -c -p -r1.1.3.4 global.c
*** global.c 1998/02/16 19:04:22 1.1.3.4
--- global.c 1998/02/17 11:32:41
*************** Boston, MA 02111-1307, USA. */
*** 27,32 ****
--- 27,33 ----
#endif
#include "rtl.h"
+ #include "tm_p.h"
#include "flags.h"
#include "basic-block.h"
#include "hard-reg-set.h"
Index: haifa-sched.c
===================================================================
RCS file: /usr/local/cvs/gcc/gcc/haifa-sched.c,v
retrieving revision 1.1.3.13
diff -c -p -r1.1.3.13 haifa-sched.c
*** haifa-sched.c 1998/02/16 19:04:23 1.1.3.13
--- haifa-sched.c 1998/02/17 11:34:29
***************
*** 157,162 ****
--- 157,163 ----
#include <stdio.h>
#include "config.h"
#include "rtl.h"
+ #include "tm_p.h"
#include "basic-block.h"
#include "regs.h"
#include "hard-reg-set.h"
Index: jump.c
===================================================================
RCS file: /usr/local/cvs/gcc/gcc/jump.c,v
retrieving revision 1.1.3.7
diff -c -p -r1.1.3.7 jump.c
*** jump.c 1998/02/06 12:05:17 1.1.3.7
--- jump.c 1998/02/17 11:31:08
*************** Boston, MA 02111-1307, USA. */
*** 54,59 ****
--- 54,60 ----
#include "config.h"
#include <stdio.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: /usr/local/cvs/gcc/gcc/local-alloc.c,v
retrieving revision 1.1.3.7
diff -c -p -r1.1.3.7 local-alloc.c
*** local-alloc.c 1998/02/16 19:04:28 1.1.3.7
--- local-alloc.c 1998/02/17 11:32:38
*************** Boston, MA 02111-1307, USA. */
*** 62,67 ****
--- 62,68 ----
#include "config.h"
#include <stdio.h>
#include "rtl.h"
+ #include "tm_p.h"
#include "flags.h"
#include "basic-block.h"
#include "regs.h"
Index: loop.c
===================================================================
RCS file: /usr/local/cvs/gcc/gcc/loop.c,v
retrieving revision 1.1.3.12
diff -c -p -r1.1.3.12 loop.c
*** loop.c 1998/02/16 19:04:31 1.1.3.12
--- loop.c 1998/02/17 11:31:24
*************** Boston, MA 02111-1307, USA. */
*** 37,42 ****
--- 37,43 ----
#include "config.h"
#include <stdio.h>
#include "rtl.h"
+ #include "tm_p.h"
#include "obstack.h"
#include "expr.h"
#include "insn-config.h"
Index: optabs.c
===================================================================
RCS file: /usr/local/cvs/gcc/gcc/optabs.c,v
retrieving revision 1.1.3.3
diff -c -p -r1.1.3.3 optabs.c
*** optabs.c 1998/02/16 19:04:33 1.1.3.3
--- optabs.c 1998/02/17 11:30:43
*************** Boston, MA 02111-1307, USA. */
*** 23,28 ****
--- 23,29 ----
#include <stdio.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: /usr/local/cvs/gcc/gcc/recog.c,v
retrieving revision 1.1.3.5
diff -c -p -r1.1.3.5 recog.c
*** recog.c 1998/02/16 19:04:37 1.1.3.5
--- recog.c 1998/02/17 11:31:37
*************** Boston, MA 02111-1307, USA. */
*** 22,27 ****
--- 22,28 ----
#include "config.h"
#include <stdio.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: /usr/local/cvs/gcc/gcc/reg-stack.c,v
retrieving revision 1.1.3.7
diff -c -p -r1.1.3.7 reg-stack.c
*** reg-stack.c 1998/02/16 19:04:39 1.1.3.7
--- reg-stack.c 1998/02/17 11:31:44
*************** Boston, MA 02111-1307, USA. */
*** 161,166 ****
--- 161,167 ----
#include <stdio.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: /usr/local/cvs/gcc/gcc/regclass.c,v
retrieving revision 1.1.3.9
diff -c -p -r1.1.3.9 regclass.c
*** regclass.c 1998/02/16 19:04:40 1.1.3.9
--- regclass.c 1998/02/17 11:31:49
*************** Boston, MA 02111-1307, USA. */
*** 29,34 ****
--- 29,35 ----
#include <stdlib.h>
#endif
#include "rtl.h"
+ #include "tm_p.h"
#include "hard-reg-set.h"
#include "flags.h"
#include "basic-block.h"
Index: reload.c
===================================================================
RCS file: /usr/local/cvs/gcc/gcc/reload.c,v
retrieving revision 1.1.3.10
diff -c -p -r1.1.3.10 reload.c
*** reload.c 1998/02/16 19:04:43 1.1.3.10
--- reload.c 1998/02/17 11:32:47
*************** a register with any other reload. */
*** 90,95 ****
--- 90,96 ----
#include "config.h"
#include <stdio.h>
#include "rtl.h"
+ #include "tm_p.h"
#include "insn-config.h"
#include "insn-codes.h"
#include "recog.h"
Index: reload1.c
===================================================================
RCS file: /usr/local/cvs/gcc/gcc/reload1.c,v
retrieving revision 1.1.3.8
diff -c -p -r1.1.3.8 reload1.c
*** reload1.c 1998/02/16 19:04:45 1.1.3.8
--- reload1.c 1998/02/17 11:32:52
*************** Boston, MA 02111-1307, USA. */
*** 22,27 ****
--- 22,28 ----
#include "config.h"
#include <stdio.h>
#include "rtl.h"
+ #include "tm_p.h"
#include "obstack.h"
#include "insn-config.h"
#include "insn-flags.h"
Index: sched.c
===================================================================
RCS file: /usr/local/cvs/gcc/gcc/sched.c,v
retrieving revision 1.1.3.10
diff -c -p -r1.1.3.10 sched.c
*** sched.c 1998/02/16 19:04:50 1.1.3.10
--- sched.c 1998/02/17 11:34:26
*************** Boston, MA 02111-1307, USA. */
*** 123,128 ****
--- 123,129 ----
#include <stdlib.h>
#endif
#include "rtl.h"
+ #include "tm_p.h"
#include "basic-block.h"
#include "regs.h"
#include "hard-reg-set.h"
Index: stmt.c
===================================================================
RCS file: /usr/local/cvs/gcc/gcc/stmt.c,v
retrieving revision 1.1.3.9
diff -c -p -r1.1.3.9 stmt.c
*** stmt.c 1998/02/16 19:04:53 1.1.3.9
--- stmt.c 1998/02/17 11:30:51
*************** Boston, MA 02111-1307, USA. */
*** 44,49 ****
--- 44,50 ----
#include "rtl.h"
#include "tree.h"
+ #include "tm_p.h"
#include "flags.h"
#include "except.h"
#include "function.h"
Index: unroll.c
===================================================================
RCS file: /usr/local/cvs/gcc/gcc/unroll.c,v
retrieving revision 1.1.3.8
diff -c -p -r1.1.3.8 unroll.c
*** unroll.c 1998/02/16 19:05:03 1.1.3.8
--- unroll.c 1998/02/17 11:31:31
*************** enum unroll_types { UNROLL_COMPLETELY, U
*** 149,154 ****
--- 149,155 ----
#include "config.h"
#include <stdio.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: /usr/local/cvs/gcc/gcc/config/i386/i386.c,v
retrieving revision 1.1.3.7
diff -c -p -r1.1.3.7 i386.c
*** config/i386/i386.c 1998/02/16 19:05:44 1.1.3.7
--- config/i386/i386.c 1998/02/17 11:55:43
*************** Boston, MA 02111-1307, USA. */
*** 23,28 ****
--- 23,30 ----
#include <ctype.h>
#include "config.h"
#include "rtl.h"
+ #include "tree.h"
+ #include "tm_p.h"
#include "regs.h"
#include "hard-reg-set.h"
#include "real.h"
*************** Boston, MA 02111-1307, USA. */
*** 31,37 ****
#include "insn-flags.h"
#include "output.h"
#include "insn-attr.h"
- #include "tree.h"
#include "flags.h"
#include "except.h"
#include "function.h"
--- 33,38 ----
*************** enum reg_class regclass_map[FIRST_PSEUDO
*** 148,156 ****
/* 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)();
/* which cpu are we scheduling for */
enum processor_type ix86_cpu;
--- 149,158 ----
/* Test and compare insns in i386.md store the information needed to
generate branch and scc insns here. */
! 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;
*************** optimization_options (level, size)
*** 440,448 ****
/* Sign-extend a 16-bit constant */
! struct rtx_def *
i386_sext16_if_const (op)
! struct rtx_def *op;
{
if (GET_CODE (op) == CONST_INT)
{
--- 442,450 ----
/* Sign-extend a 16-bit constant */
! rtx
i386_sext16_if_const (op)
! rtx op;
{
if (GET_CODE (op) == CONST_INT)
{
*************** assign_386_stack_local (mode, n)
*** 4250,4263 ****
return i386_stack_locals[(int) mode][n];
}
! int is_mul(op,mode)
register rtx op;
enum machine_mode mode;
{
return (GET_CODE (op) == MULT);
}
! int is_div(op,mode)
register rtx op;
enum machine_mode mode;
{
--- 4252,4267 ----
return i386_stack_locals[(int) mode][n];
}
! int
! is_mul(op,mode)
register rtx op;
enum machine_mode mode;
{
return (GET_CODE (op) == MULT);
}
! int
! is_div(op,mode)
register rtx op;
enum machine_mode mode;
{
Index: config/i386/i386.h
===================================================================
RCS file: /usr/local/cvs/gcc/gcc/config/i386/i386.h,v
retrieving revision 1.1.3.9
diff -c -p -r1.1.3.9 i386.h
*** config/i386/i386.h 1998/02/16 19:05:46 1.1.3.9
--- config/i386/i386.h 1998/02/17 11:45:09
*************** while (0)
*** 2260,2271 ****
(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
--- 2260,2265 ----
*************** do { \
*** 2637,2713 ****
} 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 void output_op_from_reg ();
- extern void output_to_reg ();
- extern char *singlemove_string ();
- extern char *output_move_double ();
- extern char *output_move_memory ();
- 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 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 ();
-
- #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> */
--- 2631,2636 ----
*************** extern struct rtx_def *i386_compare_op1;
*** 2732,2744 ****
/* 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:
- version-control: t
- End:
- */
--- 2655,2657 ----
*** /dev/null Thu Oct 2 22:23:28 1997
--- config/i386/i386-protos.h Tue Feb 17 12:54:37 1998
***************
*** 0 ****
--- 1,118 ----
+ /* Definitions of target machine for GNU compiler for Intel X86
+ (386, 486, Pentium).
+ Copyright (C) 1988, 92, 94-97, 1998 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 order_regs_for_local_alloc PROTO((void));
+
+ extern void function_prologue PROTO((FILE *, int));
+ extern void function_epilogue PROTO((FILE *, int));
+ 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));
+
+ #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_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 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 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 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 char *output_fix_trunc PROTO((rtx, rtx *));
+ extern char *output_float_compare PROTO((rtx, rtx *));
+ extern char *output_fp_cc0_set PROTO((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 str_immediate_operand PROTO((rtx, enum machine_mode));
+ 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));
+
+ /* 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: genoutput.c
===================================================================
RCS file: /usr/local/cvs/gcc/gcc/genoutput.c,v
retrieving revision 1.1.3.3
diff -c -p -r1.1.3.3 genoutput.c
*** genoutput.c 1998/02/16 19:04:19 1.1.3.3
--- genoutput.c 1998/02/17 12:31:26
*************** from the machine description file `md'.
*** 187,192 ****
--- 187,193 ----
printf ("#include <stdio.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: c-typeck.c
===================================================================
RCS file: /usr/local/cvs/gcc/gcc/c-typeck.c,v
retrieving revision 1.1.3.6
diff -c -p -r1.1.3.6 c-typeck.c
*** c-typeck.c 1998/02/06 12:04:39 1.1.3.6
--- c-typeck.c 1998/02/17 12:30:53
*************** Boston, MA 02111-1307, USA. */
*** 32,37 ****
--- 32,38 ----
#include <stdio.h>
#include "tree.h"
#include "c-tree.h"
+ #include "tm_p.h"
#include "flags.h"
#include "output.h"
Index: tree.c
===================================================================
RCS file: /usr/local/cvs/gcc/gcc/tree.c,v
retrieving revision 1.1.3.11
diff -c -p -r1.1.3.11 tree.c
*** tree.c 1998/02/16 19:05:01 1.1.3.11
--- tree.c 1998/02/17 19:38:19
*************** Boston, MA 02111-1307, USA. */
*** 34,42 ****
--- 34,44 ----
by all passes of the compiler. */
#include "config.h"
+ #include <stdio.h>
#include <setjmp.h>
#include "flags.h"
#include "tree.h"
+ #include "tm_p.h"
#include "except.h"
#include "function.h"
#include "obstack.h"
*************** Boston, MA 02111-1307, USA. */
*** 45,51 ****
#else
#include <varargs.h>
#endif
- #include <stdio.h>
#ifdef HAVE_STDLIB_H
#include <stdlib.h>
--- 47,52 ----
More information about the Gcc
mailing list