Merge from gcc-2.8
From-SVN: r16987
This commit is contained in:
parent
27b6b158c2
commit
956d69504d
157 changed files with 14334 additions and 6220 deletions
6059
gcc/ChangeLog.10
6059
gcc/ChangeLog.10
File diff suppressed because it is too large
Load diff
1920
gcc/ChangeLog.11
1920
gcc/ChangeLog.11
File diff suppressed because it is too large
Load diff
13
gcc/INSTALL
13
gcc/INSTALL
|
@ -613,8 +613,7 @@ special things you must know:
|
|||
`alpha-*-osf1'
|
||||
Systems using processors that implement the DEC Alpha architecture
|
||||
and are running the DEC Unix (OSF/1) operating system, for example
|
||||
the DEC Alpha AXP systems. (VMS on the Alpha is not currently
|
||||
supported by GNU CC.)
|
||||
the DEC Alpha AXP systems.CC.)
|
||||
|
||||
GNU CC writes a `.verstamp' directive to the assembler output file
|
||||
unless it is built as a cross-compiler. It gets the version to
|
||||
|
@ -678,7 +677,7 @@ special things you must know:
|
|||
`arm-*-linuxaout'
|
||||
Any of the ARM family processors running the Linux-based GNU
|
||||
system with the `a.out' binary format (ELF is not yet supported).
|
||||
You must use version 2.8.1.0.7 or later of the Linux binutils,
|
||||
You must use version 2.8.1.0.7 or later of the GNU/Linux binutils,
|
||||
which you can download from `sunsite.unc.edu:/pub/Linux/GCC' and
|
||||
other mirror sites for Linux-based GNU systems.
|
||||
|
||||
|
@ -830,9 +829,7 @@ special things you must know:
|
|||
version 2.2 or later.
|
||||
|
||||
`i386-sequent-bsd'
|
||||
Go to the Berkeley universe before compiling. In addition, you
|
||||
probably need to create a file named `string.h' containing just
|
||||
one line: `#include <strings.h>'.
|
||||
Go to the Berkeley universe before compiling.
|
||||
|
||||
`i386-sequent-ptx1*'
|
||||
Sequent DYNIX/ptx 1.x.
|
||||
|
@ -1184,9 +1181,7 @@ special things you must know:
|
|||
Emacs.
|
||||
|
||||
`ns32k-sequent'
|
||||
Go to the Berkeley universe before compiling. In addition, you
|
||||
probably need to create a file named `string.h' containing just
|
||||
one line: `#include <strings.h>'.
|
||||
Go to the Berkeley universe before compiling.
|
||||
|
||||
`ns32k-utek'
|
||||
UTEK ns32000 system ("merlin"). The C compiler that comes with
|
||||
|
|
|
@ -341,7 +341,7 @@ LIB1FUNCS_EXTRA =
|
|||
LIB2FUNCS_EXTRA =
|
||||
|
||||
# Default float.h source to use for cross-compiler.
|
||||
# This is overidden by configure.
|
||||
# This is overridden by configure.
|
||||
CROSS_FLOAT_H=$(srcdir)/config/float-@float_format@.h
|
||||
|
||||
# Program to convert libraries.
|
||||
|
@ -655,10 +655,12 @@ LIB2FUNCS = _muldi3 _divdi3 _moddi3 _udivdi3 _umoddi3 _negdi2 \
|
|||
# If it is, rm *.o is an easy way to do it.
|
||||
# CONFIG_H = $(host_xm_file) $(tm_file)
|
||||
CONFIG_H =
|
||||
RTL_H = rtl.h rtl.def machmode.h machmode.def
|
||||
TREE_H = tree.h real.h tree.def machmode.h machmode.def
|
||||
RTL_H = rtl.h rtl.def gansidecl.h machmode.h machmode.def
|
||||
TREE_H = tree.h real.h tree.def gansidecl.h machmode.h machmode.def
|
||||
BYTECODE_H = bytecode.h bc-emit.h bc-optab.h
|
||||
BASIC_BLOCK_H = basic-block.h bitmap.h
|
||||
DEMANGLE_H = demangle.h gansidecl.h
|
||||
RECOG_H = recog.h gansidecl.h
|
||||
#
|
||||
# Language makefile fragments.
|
||||
|
||||
|
@ -803,7 +805,7 @@ gfloat.h: $(FLOAT_H)
|
|||
# Make it empty if we can use the system float.h without changes.
|
||||
float.h-nat: enquire
|
||||
-./enquire -f > tmp-float.h
|
||||
grep '#define [^_]' tmp-float.h >/dev/null || echo > tmp-float.h
|
||||
grep '#define [^_]' tmp-float.h >/dev/null || true > tmp-float.h
|
||||
mv tmp-float.h float.h-nat
|
||||
|
||||
# Create a dummy float.h source for a cross-compiler.
|
||||
|
@ -973,7 +975,7 @@ libgcc2.ready: $(GCC_PASSES) $(LIBGCC2_DEPS) stmp-int-hdrs
|
|||
|
||||
LIB2ADD = $(srcdir)/frame.c $(LIB2FUNCS_EXTRA) $(LANG_LIB2FUNCS)
|
||||
libgcc2.a: libgcc2.c libgcc2.ready $(CONFIG_H) $(LIB2ADD) \
|
||||
machmode.h longlong.h gbl-ctors.h config.status
|
||||
machmode.h longlong.h frame.h gansidecl.h gbl-ctors.h config.status
|
||||
# Actually build it in tmplibgcc2.a, then rename at end,
|
||||
# so that libgcc2.a itself remains nonexistent if compilation is aborted.
|
||||
-rm -f tmplibgcc2.a
|
||||
|
@ -1069,6 +1071,7 @@ stamp-mlib: $(srcdir)/genmultilib Makefile
|
|||
|
||||
# Build multiple copies of libgcc.a, one for each target switch.
|
||||
stmp-multilib: $(LIBGCC1) libgcc2.c libgcc2.ready $(CONFIG_H) \
|
||||
frame.h gansidecl.h \
|
||||
$(LIB2ADD) machmode.h longlong.h gbl-ctors.h config.status
|
||||
for i in `$(GCC_FOR_TARGET) --print-multi-lib`; do \
|
||||
dir=`echo $$i | sed -e 's/;.*$$//'`; \
|
||||
|
@ -1137,12 +1140,14 @@ stmp-multilib-sub:
|
|||
# Compile two additional files that are linked with every program
|
||||
# linked using GCC on systems using COFF or ELF, for the sake of C++
|
||||
# constructors.
|
||||
$(T)crtbegin.o: crtstuff.c $(GCC_PASSES) $(CONFIG_H) gbl-ctors.h
|
||||
$(T)crtbegin.o: crtstuff.c $(GCC_PASSES) $(CONFIG_H) \
|
||||
defaults.h frame.h gbl-ctors.h
|
||||
$(GCC_FOR_TARGET) $(GCC_CFLAGS) $(INCLUDES) $(MULTILIB_CFLAGS) -g0 \
|
||||
-finhibit-size-directive -fno-inline-functions -fno-exceptions $(CRTSTUFF_T_CFLAGS) \
|
||||
-c $(srcdir)/crtstuff.c -DCRT_BEGIN -o $(T)crtbegin$(objext)
|
||||
|
||||
$(T)crtend.o: crtstuff.c $(GCC_PASSES) $(CONFIG_H) gbl-ctors.h
|
||||
$(T)crtend.o: crtstuff.c $(GCC_PASSES) $(CONFIG_H) \
|
||||
defaults.h frame.h gbl-ctors.h
|
||||
$(GCC_FOR_TARGET) $(GCC_CFLAGS) $(INCLUDES) $(MULTILIB_CFLAGS) -g0 \
|
||||
-finhibit-size-directive -fno-inline-functions -fno-exceptions $(CRTSTUFF_T_CFLAGS) \
|
||||
-c $(srcdir)/crtstuff.c -DCRT_END -o $(T)crtend$(objext)
|
||||
|
@ -1151,7 +1156,8 @@ $(T)crtend.o: crtstuff.c $(GCC_PASSES) $(CONFIG_H) gbl-ctors.h
|
|||
# compiled using PIC for use in shared libraries.
|
||||
crtbeginS.o crtendS.o: stamp-crtS ; @true
|
||||
|
||||
stamp-crtS: crtstuff.c $(GCC_PASSES) $(CONFIG_H) gbl-ctors.h
|
||||
stamp-crtS: crtstuff.c $(GCC_PASSES) $(CONFIG_H) \
|
||||
defaults.h frame.h gbl-ctors.h
|
||||
$(GCC_FOR_TARGET) $(GCC_CFLAGS) $(INCLUDES) $(CRTSTUFF_T_CFLAGS_S) \
|
||||
-DCRT_BEGIN -finhibit-size-directive -fno-inline-functions \
|
||||
-g0 -c $(srcdir)/crtstuff.c
|
||||
|
@ -1220,14 +1226,14 @@ collect2: collect2.o tlink.o hash.o cplus-dem.o underscore.o version.o \
|
|||
$(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ collect2.o tlink.o hash.o \
|
||||
cplus-dem.o underscore.o version.o choose-temp.o $(LIBS)
|
||||
|
||||
collect2.o : collect2.c $(CONFIG_H) gstab.h obstack.h demangle.h
|
||||
collect2.o : collect2.c $(CONFIG_H) gansidecl.h gstab.h obstack.h $(DEMANGLE_H)
|
||||
$(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \
|
||||
-DTARGET_MACHINE=\"$(target_alias)\" $(MAYBE_USE_COLLECT2) \
|
||||
-c `echo $(srcdir)/collect2.c | sed 's,^\./,,'`
|
||||
|
||||
tlink.o: tlink.c demangle.h hash.h $(CONFIG_H)
|
||||
tlink.o: tlink.c $(DEMANGLE_H) hash.h $(CONFIG_H)
|
||||
hash.o: hash.c hash.h
|
||||
cplus-dem.o: cplus-dem.c demangle.h
|
||||
cplus-dem.o: cplus-dem.c $(DEMANGLE_H)
|
||||
|
||||
underscore.c: stamp-under ; @true
|
||||
|
||||
|
@ -1256,7 +1262,7 @@ DRIVER_DEFINES = \
|
|||
-DDEFAULT_TARGET_VERSION=\"$(version)\" \
|
||||
-DDEFAULT_TARGET_MACHINE=\"$(target_alias)\" \
|
||||
-DTOOLDIR_BASE_PREFIX=\"$(exec_prefix)/\"
|
||||
gcc.o: gcc.c $(CONFIG_H) multilib.h Makefile $(lang_specs_files)
|
||||
gcc.o: gcc.c $(CONFIG_H) gansidecl.h multilib.h Makefile $(lang_specs_files)
|
||||
$(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \
|
||||
$(DRIVER_DEFINES) \
|
||||
-c `echo $(srcdir)/gcc.c | sed 's,^\./,,'`
|
||||
|
@ -1264,10 +1270,10 @@ gcc.o: gcc.c $(CONFIG_H) multilib.h Makefile $(lang_specs_files)
|
|||
dumpvers: dumpvers.c
|
||||
|
||||
version.o: version.c
|
||||
obstack.o: obstack.c
|
||||
choose-temp.o: choose-temp.c
|
||||
pexecute.o: pexecute.c
|
||||
prefix.o: prefix.c $(CONFIG_H) Makefile
|
||||
obstack.o: obstack.c $(CONFIG_H)
|
||||
choose-temp.o: choose-temp.c $(CONFIG_H) gansidecl.h
|
||||
pexecute.o: pexecute.c $(CONFIG_H) gansidecl.h
|
||||
prefix.o: prefix.c $(CONFIG_H) gansidecl.h Makefile
|
||||
$(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \
|
||||
-DPREFIX=\"$(prefix)\" \
|
||||
-c `echo $(srcdir)/prefix.c | sed 's,^\./,,'`
|
||||
|
@ -1295,26 +1301,26 @@ varasm.o : varasm.c $(CONFIG_H) $(TREE_H) $(RTL_H) flags.h function.h \
|
|||
output.h bytecode.h c-pragma.h
|
||||
function.o : function.c $(CONFIG_H) $(RTL_H) $(TREE_H) flags.h function.h \
|
||||
insn-flags.h insn-codes.h expr.h regs.h hard-reg-set.h insn-config.h \
|
||||
recog.h output.h bytecode.h bc-emit.h
|
||||
$(RECOG_H) output.h bytecode.h bc-emit.h
|
||||
stmt.o : stmt.c $(CONFIG_H) $(RTL_H) $(TREE_H) flags.h function.h \
|
||||
insn-flags.h insn-config.h insn-codes.h hard-reg-set.h expr.h except.h \
|
||||
loop.h recog.h bytecode.h bc-typecd.h bc-typecd.def bc-opcode.h \
|
||||
loop.h $(RECOG_H) bytecode.h bc-typecd.h bc-typecd.def bc-opcode.h \
|
||||
bc-optab.h bc-emit.h
|
||||
except.o : except.c $(CONFIG_H) $(RTL_H) $(TREE_H) flags.h function.h \
|
||||
insn-flags.h insn-codes.h expr.h regs.h hard-reg-set.h insn-config.h \
|
||||
recog.h output.h except.h
|
||||
$(RECOG_H) output.h except.h
|
||||
expr.o : expr.c $(CONFIG_H) $(RTL_H) $(TREE_H) flags.h function.h regs.h \
|
||||
insn-flags.h insn-codes.h expr.h insn-config.h recog.h output.h \
|
||||
insn-flags.h insn-codes.h expr.h insn-config.h $(RECOG_H) output.h \
|
||||
typeclass.h bytecode.h bc-opcode.h bc-typecd.h bc-typecd.def bc-optab.h \
|
||||
bc-emit.h modemap.def hard-reg-set.h
|
||||
calls.o : calls.c $(CONFIG_H) $(RTL_H) $(TREE_H) flags.h expr.h insn-codes.h \
|
||||
insn-flags.h regs.h
|
||||
expmed.o : expmed.c $(CONFIG_H) $(RTL_H) $(TREE_H) flags.h \
|
||||
insn-flags.h insn-config.h insn-codes.h expr.h recog.h real.h
|
||||
insn-flags.h insn-config.h insn-codes.h expr.h $(RECOG_H) real.h
|
||||
explow.o : explow.c $(CONFIG_H) $(RTL_H) $(TREE_H) flags.h hard-reg-set.h \
|
||||
insn-config.h expr.h recog.h insn-flags.h insn-codes.h
|
||||
insn-config.h expr.h $(RECOG_H) insn-flags.h insn-codes.h
|
||||
optabs.o : optabs.c $(CONFIG_H) $(RTL_H) $(TREE_H) flags.h \
|
||||
insn-flags.h insn-config.h insn-codes.h expr.h recog.h reload.h
|
||||
insn-flags.h insn-config.h insn-codes.h expr.h $(RECOG_H) reload.h
|
||||
dbxout.o : dbxout.c $(CONFIG_H) $(TREE_H) $(RTL_H) flags.h regs.h \
|
||||
insn-config.h reload.h gstab.h xcoffout.h defaults.h output.h
|
||||
sdbout.o : sdbout.c $(CONFIG_H) $(TREE_H) $(RTL_H) flags.h except.h \
|
||||
|
@ -1326,7 +1332,7 @@ dwarf2out.o : dwarf2out.c $(CONFIG_H) $(TREE_H) $(RTL_H) dwarf2.h flags.h \
|
|||
insn-config.h reload.h output.h defaults.h hard-reg-set.h regs.h expr.h
|
||||
xcoffout.o : xcoffout.c $(CONFIG_H) $(TREE_H) $(RTL_H) xcoffout.h flags.h
|
||||
emit-rtl.o : emit-rtl.c $(CONFIG_H) $(RTL_H) $(TREE_H) flags.h except.h \
|
||||
function.h regs.h insn-config.h recog.h real.h expr.h obstack.h \
|
||||
function.h regs.h insn-config.h $(RECOG_H) real.h expr.h obstack.h \
|
||||
bytecode.h bc-opcode.h bc-typecd.h bc-typecd.def bc-optab.h bc-emit.h \
|
||||
bc-opname.h
|
||||
real.o : real.c $(CONFIG_H) $(TREE_H)
|
||||
|
@ -1334,43 +1340,43 @@ getpwd.o : getpwd.c $(CONFIG_H)
|
|||
|
||||
integrate.o : integrate.c $(CONFIG_H) $(RTL_H) $(TREE_H) flags.h integrate.h \
|
||||
insn-flags.h insn-config.h insn-codes.h expr.h real.h regs.h function.h \
|
||||
bytecode.h output.h recog.h except.h
|
||||
bytecode.h output.h $(RECOG_H) except.h
|
||||
|
||||
jump.o : jump.c $(CONFIG_H) $(RTL_H) flags.h hard-reg-set.h regs.h \
|
||||
insn-config.h insn-flags.h recog.h expr.h real.h except.h
|
||||
insn-config.h insn-flags.h $(RECOG_H) expr.h real.h except.h
|
||||
stupid.o : stupid.c $(CONFIG_H) $(RTL_H) regs.h hard-reg-set.h flags.h
|
||||
|
||||
cse.o : cse.c $(CONFIG_H) $(RTL_H) regs.h hard-reg-set.h flags.h real.h \
|
||||
insn-config.h recog.h
|
||||
insn-config.h $(RECOG_H) expr.h
|
||||
profile.o : profile.c $(CONFIG_H) $(RTL_H) flags.h insn-flags.h gcov-io.h \
|
||||
tree.h output.h regs.h
|
||||
$(TREE_H) output.h regs.h
|
||||
loop.o : loop.c $(CONFIG_H) $(RTL_H) flags.h loop.h insn-config.h \
|
||||
insn-flags.h insn-codes.h regs.h hard-reg-set.h recog.h expr.h real.h
|
||||
insn-flags.h insn-codes.h regs.h hard-reg-set.h $(RECOG_H) expr.h real.h
|
||||
unroll.o : unroll.c $(CONFIG_H) $(RTL_H) insn-config.h integrate.h regs.h \
|
||||
recog.h flags.h expr.h loop.h
|
||||
$(RECOG_H) flags.h expr.h loop.h
|
||||
flow.o : flow.c $(CONFIG_H) $(RTL_H) flags.h insn-config.h \
|
||||
$(BASIC_BLOCK_H) regs.h hard-reg-set.h output.h
|
||||
combine.o : combine.c $(CONFIG_H) $(RTL_H) flags.h \
|
||||
insn-config.h insn-flags.h insn-codes.h insn-attr.h regs.h expr.h \
|
||||
$(BASIC_BLOCK_H) recog.h real.h hard-reg-set.h
|
||||
$(BASIC_BLOCK_H) $(RECOG_H) real.h hard-reg-set.h
|
||||
regclass.o : regclass.c $(CONFIG_H) $(RTL_H) hard-reg-set.h flags.h \
|
||||
$(BASIC_BLOCK_H) regs.h insn-config.h recog.h reload.h real.h bytecode.h
|
||||
$(BASIC_BLOCK_H) regs.h insn-config.h $(RECOG_H) reload.h real.h bytecode.h
|
||||
local-alloc.o : local-alloc.c $(CONFIG_H) $(RTL_H) flags.h $(BASIC_BLOCK_H) \
|
||||
regs.h hard-reg-set.h insn-config.h recog.h output.h
|
||||
regs.h hard-reg-set.h insn-config.h $(RECOG_H) output.h
|
||||
bitmap.o : bitmap.c $(CONFIG_H) $(RTL_H) flags.h $(BASIC_BLOCK_H) regs.h
|
||||
global.o : global.c $(CONFIG_H) $(RTL_H) flags.h \
|
||||
$(BASIC_BLOCK_H) regs.h hard-reg-set.h insn-config.h output.h
|
||||
|
||||
reload.o : reload.c $(CONFIG_H) $(RTL_H) flags.h output.h expr.h\
|
||||
reload.h recog.h hard-reg-set.h insn-config.h insn-codes.h regs.h real.h
|
||||
reload.h $(RECOG_H) hard-reg-set.h insn-config.h insn-codes.h regs.h real.h
|
||||
reload1.o : reload1.c $(CONFIG_H) $(RTL_H) real.h flags.h expr.h \
|
||||
reload.h regs.h hard-reg-set.h insn-config.h insn-flags.h insn-codes.h \
|
||||
$(BASIC_BLOCK_H) recog.h output.h
|
||||
$(BASIC_BLOCK_H) $(RECOG_H) output.h
|
||||
caller-save.o : caller-save.c $(CONFIG_H) $(RTL_H) flags.h \
|
||||
regs.h hard-reg-set.h insn-codes.h insn-config.h $(BASIC_BLOCK_H) recog.h \
|
||||
regs.h hard-reg-set.h insn-codes.h insn-config.h $(BASIC_BLOCK_H) $(RECOG_H) \
|
||||
reload.h expr.h
|
||||
reorg.o : reorg.c $(CONFIG_H) $(RTL_H) conditions.h hard-reg-set.h \
|
||||
$(BASIC_BLOCK_H) regs.h insn-config.h insn-attr.h insn-flags.h recog.h \
|
||||
$(BASIC_BLOCK_H) regs.h insn-config.h insn-attr.h insn-flags.h $(RECOG_H) \
|
||||
flags.h output.h
|
||||
alias.o : alias.c $(CONFIG_H) $(RTL_H) flags.h hard-reg-set.h regs.h \
|
||||
insn-codes.h
|
||||
|
@ -1379,10 +1385,10 @@ regmove.o : regmove.c $(CONFIG_H) $(RTL_H) insn-config.h recog.h output.h \
|
|||
$(SCHED_PREFIX)sched.o : $(SCHED_PREFIX)sched.c $(CONFIG_H) $(RTL_H) $(BASIC_BLOCK_H) regs.h hard-reg-set.h \
|
||||
flags.h insn-config.h insn-attr.h
|
||||
final.o : final.c $(CONFIG_H) $(RTL_H) $(TREE_H) flags.h regs.h \
|
||||
recog.h conditions.h insn-config.h insn-attr.h except.h real.h output.h \
|
||||
$(RECOG_H) conditions.h insn-config.h insn-attr.h except.h real.h output.h \
|
||||
hard-reg-set.h insn-flags.h insn-codes.h gstab.h xcoffout.h defaults.h
|
||||
recog.o : recog.c $(CONFIG_H) $(RTL_H) \
|
||||
regs.h recog.h hard-reg-set.h flags.h insn-config.h insn-attr.h \
|
||||
regs.h $(RECOG_H) hard-reg-set.h flags.h insn-config.h insn-attr.h \
|
||||
insn-flags.h insn-codes.h real.h
|
||||
reg-stack.o : reg-stack.c $(CONFIG_H) $(RTL_H) $(TREE_H) \
|
||||
regs.h hard-reg-set.h flags.h insn-config.h insn-flags.h
|
||||
|
@ -1468,7 +1474,7 @@ stamp-emit : $(md_file) genemit $(srcdir)/move-if-change
|
|||
$(srcdir)/move-if-change tmp-emit.c insn-emit.c
|
||||
touch stamp-emit
|
||||
|
||||
insn-recog.o : insn-recog.c $(CONFIG_H) $(RTL_H) insn-config.h recog.h \
|
||||
insn-recog.o : insn-recog.c $(CONFIG_H) $(RTL_H) insn-config.h $(RECOG_H) \
|
||||
real.h output.h flags.h
|
||||
$(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) -c insn-recog.c
|
||||
|
||||
|
@ -1479,7 +1485,7 @@ stamp-recog : $(md_file) genrecog $(srcdir)/move-if-change
|
|||
touch stamp-recog
|
||||
|
||||
insn-opinit.o : insn-opinit.c $(CONFIG_H) $(RTL_H) insn-codes.h insn-flags.h \
|
||||
insn-config.h flags.h rtl.h recog.h expr.h reload.h
|
||||
insn-config.h flags.h $(RECOG_H) expr.h reload.h
|
||||
$(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) -c insn-opinit.c
|
||||
|
||||
insn-opinit.c: stamp-opinit ; @true
|
||||
|
@ -1529,7 +1535,7 @@ stamp-attrtab : $(md_file) genattrtab $(srcdir)/move-if-change
|
|||
touch stamp-attrtab
|
||||
|
||||
insn-output.o : insn-output.c $(CONFIG_H) $(RTL_H) regs.h real.h conditions.h \
|
||||
hard-reg-set.h insn-config.h insn-flags.h insn-attr.h output.h recog.h \
|
||||
hard-reg-set.h insn-config.h insn-flags.h insn-attr.h output.h $(RECOG_H) \
|
||||
insn-codes.h
|
||||
$(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) -c insn-output.c
|
||||
|
||||
|
@ -2535,7 +2541,7 @@ gcc.xtar: distdir
|
|||
# This target exists to do the initial work before the language specific
|
||||
# stuff gets done.
|
||||
distdir-start: doc $(srcdir)/INSTALL $(srcdir)/c-parse.y $(srcdir)/c-gperf.h \
|
||||
$(srcdir)/c-parse.c $(srcdir)/cexp.c
|
||||
$(srcdir)/c-parse.c $(srcdir)/cexp.c $(srcdir)/config.in
|
||||
@if grep -s "for version ${mainversion}" gcc.texi > /dev/null; \
|
||||
then true; \
|
||||
else echo "You must update the version number in \`gcc.texi'"; sleep 10;\
|
||||
|
|
278
gcc/NEWS
278
gcc/NEWS
|
@ -1,31 +1,148 @@
|
|||
Noteworthy changes in GCC for EGCS.
|
||||
|
||||
The -specs=file switch allows you to override default specs used in invoking
|
||||
programs like cc1, as, etc.
|
||||
A major change in this release is the addition of a framework for
|
||||
exception handling, currently used by C++. Many internal changes and
|
||||
optimization improvements have been made. These increase the
|
||||
maintainability and portability of GCC. GCC now uses autoconf to
|
||||
compute many host parameters.
|
||||
|
||||
Options -Wall and -Wimplicit now cause GCC to warn about implicit int
|
||||
in declarations (e.g. `register i;'), since the C Standard committee
|
||||
has decided to disallow this in the next revision of the standard.
|
||||
The following lists changes that add new features or targets.
|
||||
|
||||
The following new targets are supported:
|
||||
See cp/NEWS for new features of C++ in this release.
|
||||
|
||||
New tools and features:
|
||||
|
||||
The Dwarf 2 debugging information format is supported on ELF systems, and
|
||||
is the default for -ggdb where available. It can also be used for C++.
|
||||
The Dwarf version 1 debugging format is also permitted for C++, but
|
||||
does not work well.
|
||||
|
||||
gcov.c is provided for test coverage analysis and branch profiling
|
||||
analysis is also supported; see -fprofile-arcs, -ftest-coverage,
|
||||
and -fbranch-probabilities.
|
||||
|
||||
Support for the Checker memory checking tool.
|
||||
|
||||
New switch, -fstack-check, to check for stack overflow on systems that
|
||||
don't have such built into their ABI.
|
||||
|
||||
New switches, -Wundef and -Wno-undef to warn if an undefined identifier
|
||||
is evaluated in an #if directive.
|
||||
|
||||
Options -Wall and -Wimplicit now cause GCC to warn about implicit int
|
||||
in declarations (e.g. `register i;'), since the C Standard committee
|
||||
has decided to disallow this in the next revision of the standard;
|
||||
-Wimplicit-function-declarations and -Wimplicit-int are subsets of
|
||||
this.
|
||||
|
||||
Option -Wsign-compare causes GCC to warn about comparison of signed and
|
||||
unsigned values.
|
||||
|
||||
Add -dI option of cccp for cxref.
|
||||
|
||||
New features in configuration, installation and specs file handling:
|
||||
|
||||
New option --enable-c-cpplib to configure script.
|
||||
|
||||
Allow --with-cpu on configure command to specify a default CPU.
|
||||
|
||||
The -specs=file switch allows you to override default specs used in
|
||||
invoking programs like cc1, as, etc.
|
||||
|
||||
Allow including one specs file from another and renaming a specs
|
||||
variable.
|
||||
|
||||
You can now relocate all GCC files with a single environment variable
|
||||
or a registry entry under Windows 95 and Windows NT.
|
||||
|
||||
Changes in Objective-C:
|
||||
|
||||
The Objective-C Runtime Library has been made thread-safe.
|
||||
|
||||
The Objective-C Runtime Library contains an interface for creating
|
||||
mutexes, condition mutexes, and threads; it requires a back-end
|
||||
implementation for the specific platform and/or thread package.
|
||||
Currently supported are DEC/OSF1, IRIX, Mach, OS/2, POSIX, PCThreads,
|
||||
Solaris, and Windows32. The --enable-threads parameter can be used
|
||||
when configuring GCC to enable and select a thread back-end.
|
||||
|
||||
Objective-C is now configured as separate front-end language to GCC,
|
||||
making it more convenient to conditionally build it.
|
||||
|
||||
The internal structures of the Objective-C Runtime Library have
|
||||
changed sufficiently to warrant a new version number; now version 8.
|
||||
Programs compiled with an older version must be recompiled.
|
||||
|
||||
The Objective-C Runtime Library can be built as a DLL on Windows 95
|
||||
and Windows NT systems.
|
||||
|
||||
The Objective-C Runtime Library implements +load.
|
||||
|
||||
The following new targets are supported (see also list under each
|
||||
individual CPU below):
|
||||
|
||||
Solaris 2.5 running on UltraSPARC's.
|
||||
The sparclet cpu (a.out file format).
|
||||
Solaris 2.51 running on PowerPC's.
|
||||
Linux running on PowerPC's.
|
||||
Embedded target m32r-elf.
|
||||
Embedded target arc-elf.
|
||||
IRIX 6.2 running on MIPS.
|
||||
Embedded Hitachi Super-H using ELF.
|
||||
RTEMS real-time system on various CPU targets.
|
||||
ARC processor.
|
||||
NEC V850 processor.
|
||||
Matsushita MN10200 processor.
|
||||
Matsushita MN10300 processor.
|
||||
Sparc and PowerPC running on VxWorks.
|
||||
Support both glibc versions 1 and 2 on Linux-based GNU systems.
|
||||
|
||||
New features for the Hitachi H8/300(H).
|
||||
New features for DEC Alpha systems:
|
||||
|
||||
-malign-300
|
||||
-ms
|
||||
Allow detailed specification of IEEE fp support:
|
||||
-mieee, -mieee-with-inexact, and -mieee-conformant
|
||||
-mfp-trap-mode=xxx, -mfp-round-mode=xxx, -mtrap-precision=xxx
|
||||
-mcpu=xxx for CPU selection
|
||||
Support scheduling parameters for EV5.
|
||||
Add support for BWX, CIX, and MAX instruction set extensions.
|
||||
Support Linux-based GNU systems.
|
||||
Support VMS.
|
||||
|
||||
The -ms switch generates code for the Hitachi H8/S processor.
|
||||
Additional supported processors and systems for MIPS targets:
|
||||
|
||||
MIPS4 instruction set.
|
||||
R4100, R4300 and R5000 processors.
|
||||
N32 and N64 ABI.
|
||||
IRIX 6.2.
|
||||
SNI SINIX.
|
||||
|
||||
New features for Intel x86 family:
|
||||
|
||||
Add scheduling parameters for Pentium and Pentium Pro.
|
||||
Support stabs on Solaris-x86.
|
||||
Intel x86 processors running the SCO OpenServer 5 family.
|
||||
Intel x86 processors running DG/UX.
|
||||
Intel x86 using Cygwin32 or Mingw32 on Windows 95 and Windows NT.
|
||||
|
||||
New features for Motorola 68k family:
|
||||
|
||||
Support for 68060 processor.
|
||||
More consistent switches to specify processor.
|
||||
Motorola 68k family running AUX.
|
||||
68040 running pSOS, ELF object files, DBX debugging.
|
||||
Coldfire variant of Motorola m68k family.
|
||||
|
||||
New features for the HP PA RISC:
|
||||
|
||||
-mspace and m-no-space
|
||||
-mlong-load-store and -mno-long-load-store
|
||||
-mbig-switch -mno-big-switch
|
||||
|
||||
GCC on the PA requires either gas-2.7 or the HP assembler; for best
|
||||
results using GAS is highly recommended. GAS is required for -g and
|
||||
exception handling support.
|
||||
|
||||
New features for SPARC-based systems:
|
||||
|
||||
The ultrasparc cpu.
|
||||
The sparclet cpu, supporting only a.out file format.
|
||||
Sparc running SunOS 4 with the GNU assembler.
|
||||
Sparc running the Linux-based GNU system.
|
||||
Embedded Sparc processors running the ELF object file format.
|
||||
-mcpu=xxx
|
||||
-mtune=xxx
|
||||
-malign-loops=xxx
|
||||
|
@ -33,71 +150,99 @@ New features for SPARC-based systems:
|
|||
-malign-functions=xxx
|
||||
-mimpure-text and -mno-impure-text
|
||||
|
||||
New features for all rs6000 and PowerPC systems:
|
||||
Options -mno-v8 and -mno-sparclite are no longer supported on SPARC
|
||||
targets. Options -mcypress, -mv8, -msupersparc, -msparclite, -mf930,
|
||||
and -mf934 are deprecated and will be deleted in GCC 2.9. Use
|
||||
-mcpu=xxx instead.
|
||||
|
||||
-mcpu=604e
|
||||
-mcpu=801
|
||||
-mcpu=823
|
||||
New features for rs6000 and PowerPC systems:
|
||||
|
||||
Solaris 2.51 running on PowerPC's.
|
||||
The Linux-based GNU system running on PowerPC's.
|
||||
-mcpu=604e,602,603e,620,801,823,mpc505,821,860,power2
|
||||
-mtune=xxx
|
||||
-mupdate
|
||||
-mno-update
|
||||
-mfused-madd
|
||||
-mno-fused-madd
|
||||
|
||||
New features for PowerPC-based systems running either System V, Linux, Solaris,
|
||||
or embedded systems:
|
||||
-mrelocatable-lib, m-no-relocatable-lib
|
||||
-msim, -mmve, -memb
|
||||
-mupdate, -mno-update
|
||||
-mfused-madd, -mno-fused-madd
|
||||
|
||||
-mregnames
|
||||
-meabi
|
||||
-mcall-linux
|
||||
-mcall-solaris
|
||||
-mcall-sysv-eabi
|
||||
-mcall-sysv-noeabi
|
||||
-msdata
|
||||
-msdata=none
|
||||
-msdata=default
|
||||
-msdata=sysv
|
||||
-msdata=eabi
|
||||
-memb
|
||||
-msim
|
||||
-mmvme
|
||||
-myellowknife
|
||||
-mads
|
||||
wchar_t is now of type long, not unsigned short as per ABI.
|
||||
-mcall-linux, -mcall-solaris, -mcall-sysv-eabi, -mcall-sysv-noeabi
|
||||
-msdata, -msdata=none, -msdata=default, -msdata=sysv, -msdata=eabi
|
||||
-memb, -msim, -mmvme
|
||||
-myellowknife, -mads
|
||||
wchar_t is now of type long as per the ABI, not unsigned short.
|
||||
-p/-pg support
|
||||
-mcpu=403 now implies -mstrict-align.
|
||||
Implement System V profiling.
|
||||
|
||||
Options -mno-v8 and -mno-sparclite are no longer supported on SPARC
|
||||
targets. Options -mcypress, -mv8, -msupersparc, -msparclite, -mf930,
|
||||
and -mf934 are deprecated and will be deleted in GCC 2.9.
|
||||
Use -mcpu=xxx instead.
|
||||
Aix 4.1 GCC targets now default to -mcpu=common so that programs
|
||||
compiled can be moved between rs6000 and powerpc based systems. A
|
||||
consequence of this is that -static won't work, and that some programs
|
||||
may be slightly slower.
|
||||
|
||||
GCC on the PA requires either gas-2.7 or the HP assembler; for best
|
||||
results using GAS is highly recommended. GAS is required for -g
|
||||
and exception handling support.
|
||||
You can select the default value to use for -mcpu=xxx on rs6000 and
|
||||
powerpc targets by using the --with-cpu=xxx option when configuring the
|
||||
compiler. In addition, a new options, -mtune=xxx was added that
|
||||
selects the machine to schedule for but does not select the
|
||||
architecture level.
|
||||
|
||||
Aix 4.1 GCC targets now default to -mcpu=common so that programs compiled can
|
||||
be moved between rs6000 and powerpc based systems. A consequence of this is
|
||||
that -static won't work, and that some programs may be slightly slower.
|
||||
Directory names used for storing the multilib libraries on System V
|
||||
and embedded PowerPC systems have been shortened to work with commands
|
||||
like tar that have fixed limits on pathname size.
|
||||
|
||||
You can select the default value to use for -mcpu=xxx on rs6000 and powerpc
|
||||
targets by using the --with-cpu=xxx option when confiuring the compiler. In
|
||||
addition, a new options, -mtune=xxx was added that selects the machine to
|
||||
schedule for but does not select the architecture level.
|
||||
New features for the Hitachi H8/300(H):
|
||||
|
||||
Directory names used for storing the multilib libraries on System V and
|
||||
embedded PowerPC systems have been shortened to work with commands like tar
|
||||
that have fixed limits on pathname size.
|
||||
-malign-300
|
||||
-ms (for the Hitachi H8/S processor)
|
||||
-mint32
|
||||
|
||||
The DWARF 2 debugging information format is supported on ELF systems, and
|
||||
is the default for -ggdb where available.
|
||||
New features for the ARM:
|
||||
|
||||
Noteworthy changes in GCC version 2.7.2:
|
||||
-march=xxx, -mtune=xxx, -mcpu=xxx
|
||||
Support interworking with Thumb code.
|
||||
ARM processor with a.out object format, COFF, or AOF assembler.
|
||||
ARM on "semi-hosted" platform.
|
||||
ARM running NetBSD.
|
||||
ARM running the Linux-based GNU system.
|
||||
|
||||
New feature for Solaris systems:
|
||||
|
||||
GCC installation no longer makes a copy of system include files,
|
||||
thus insulating GCC better from updates to the operating system.
|
||||
|
||||
Changes in Objective-C:
|
||||
|
||||
The Objective-C Runtime Library has been made thread-safe.
|
||||
|
||||
The Objective-C Runtime Library contains an interface for creating
|
||||
mutexes, condition mutexes, and threads; it requires a back-end
|
||||
implementation for the specific platform and/or thread package.
|
||||
Currently supported are DEC/OSF1, IRIX, Mach, OS/2, POSIX, PCThreads,
|
||||
Solaris, and Windows32. The --enable-threads parameter can be used
|
||||
when configuring GCC to enable and select a thread back-end.
|
||||
|
||||
Objective-C is now configured as separate front-end language to GCC,
|
||||
making it more convenient to conditionally build it.
|
||||
|
||||
The internal structures of the Objective-C Runtime Library have
|
||||
changed sufficiently to warrant a new version number; now version 8.
|
||||
Programs compiled with an older version must be recompiled.
|
||||
|
||||
The Objective-C Runtime Library can be built as a DLL on Windows 95
|
||||
and Windows NT systems.
|
||||
|
||||
The Objective-C Runtime Library implements +load.
|
||||
|
||||
Noteworthy changes in GCC version 2.7.2
|
||||
---------------------------------------
|
||||
|
||||
A few bugs have been fixed (most notably the generation of an
|
||||
invalid assembler opcode on some RS/6000 systems).
|
||||
|
||||
Noteworthy changes in GCC version 2.7.1:
|
||||
Noteworthy changes in GCC version 2.7.1
|
||||
---------------------------------------
|
||||
|
||||
This release fixes numerous bugs (mostly minor) in GCC 2.7.0, but
|
||||
also contains a few new features, mostly related to specific targets.
|
||||
|
@ -121,8 +266,9 @@ sequence used in GCC version 2.7.0. That calling sequence was based on the AIX
|
|||
calling sequence without function descriptors. To compile code for that older
|
||||
calling sequence, either configure the compiler for powerpc-*-eabiaix or use
|
||||
the -mcall-aix switch when compiling and linking.
|
||||
|
||||
Noteworthy changes in GCC version 2.7.0:
|
||||
|
||||
Noteworthy changes in GCC version 2.7.0
|
||||
---------------------------------------
|
||||
|
||||
GCC now works better on systems that use ".obj" and ".exe" instead of
|
||||
".o" and no extension. This involved changes to the driver program,
|
||||
|
@ -374,7 +520,7 @@ The following new configurations are supported:
|
|||
GNU on x86 (instead of treating it like MACH)
|
||||
NetBSD on Sparc and Motorola 68k
|
||||
AIX 4.1 on RS/6000 and PowerPC systems
|
||||
Sequent DYNUX/ptx 1.x and 2.x.
|
||||
Sequent DYNIX/ptx 1.x and 2.x.
|
||||
Both COFF and ELF configurations on AViiON without using /bin/gcc
|
||||
Windows/NT on x86 architecture; preliminary
|
||||
AT&T DSP1610 digital signal processor chips
|
||||
|
|
|
@ -12,4 +12,10 @@
|
|||
|
||||
/* Whether free must be declared even if <stdlib.h> is included. */
|
||||
#undef NEED_DECLARATION_FREE
|
||||
|
||||
/* Whether index must be declared even if <stdlib.h> is included. */
|
||||
#undef NEED_DECLARATION_INDEX
|
||||
|
||||
/* Whether rindex must be declared even if <stdlib.h> is included. */
|
||||
#undef NEED_DECLARATION_RINDEX
|
||||
@TOP@
|
||||
|
|
6
gcc/aclocal.m4
vendored
6
gcc/aclocal.m4
vendored
|
@ -16,6 +16,12 @@ AC_CACHE_VAL(gcc_cv_decl_needed_$1,
|
|||
#endif
|
||||
#ifdef HAVE_UNISTD_H
|
||||
#include <unistd.h>
|
||||
#endif
|
||||
#ifndef HAVE_RINDEX
|
||||
#define rindex strrchr
|
||||
#endif
|
||||
#ifndef HAVE_INDEX
|
||||
#define index strchr
|
||||
#endif],
|
||||
[char *(*pfn) = (char *(*)) $1],
|
||||
gcc_cv_decl_needed_$1=no, gcc_cv_decl_needed_$1=yes)])
|
||||
|
|
|
@ -21,6 +21,9 @@ Boston, MA 02111-1307, USA. */
|
|||
|
||||
#include "config.h"
|
||||
#include <stdio.h>
|
||||
#ifdef HAVE_STDLIB_H
|
||||
#include <stdlib.h>
|
||||
#endif
|
||||
#include "tree.h"
|
||||
#include "rtl.h"
|
||||
#include "machmode.h"
|
||||
|
|
|
@ -200,7 +200,7 @@ do { \
|
|||
for (; ptr1_ != 0 ; ptr1_ = ptr1_->next) \
|
||||
{ \
|
||||
/* Advance BITMAP2 to the equivalent link, using an all \
|
||||
zero element if an equavialent link doesn't exist. */ \
|
||||
zero element if an equivalent link doesn't exist. */ \
|
||||
bitmap_element *tmp2_; \
|
||||
\
|
||||
while (ptr2_ != 0 && ptr2_->indx < ptr1_->indx) \
|
||||
|
|
|
@ -1758,7 +1758,7 @@ duplicate_decls (newdecl, olddecl, different_binding_level)
|
|||
|
||||
/* Optionally warn about more than one declaration for the same name. */
|
||||
if (errmsg == 0 && warn_redundant_decls && DECL_SOURCE_LINE (olddecl) != 0
|
||||
/* Dont warn about a function declaration
|
||||
/* Don't warn about a function declaration
|
||||
followed by a definition. */
|
||||
&& !(TREE_CODE (newdecl) == FUNCTION_DECL && DECL_INITIAL (newdecl) != 0
|
||||
&& DECL_INITIAL (olddecl) == 0)
|
||||
|
|
25
gcc/c-lex.c
25
gcc/c-lex.c
|
@ -135,6 +135,9 @@ static int end_of_file;
|
|||
static int nextchar = -1;
|
||||
#endif
|
||||
|
||||
static int skip_which_space PROTO((int));
|
||||
static char *extend_token_buffer PROTO((char *));
|
||||
static int readescape PROTO((int *));
|
||||
int check_newline ();
|
||||
|
||||
/* Do not insert generated code into the source, instead, include it.
|
||||
|
@ -330,7 +333,6 @@ yyprint (file, yychar, yylval)
|
|||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* Iff C is a carriage return, warn about it - if appropriate -
|
||||
and return nonzero. */
|
||||
|
@ -468,7 +470,6 @@ extend_token_buffer (p)
|
|||
|
||||
return token_buffer + offset;
|
||||
}
|
||||
|
||||
|
||||
#if !USE_CPPLIB
|
||||
#define GET_DIRECTIVE_LINE() get_directive_line (finput)
|
||||
|
@ -1711,20 +1712,15 @@ yylex ()
|
|||
c = GETC();
|
||||
}
|
||||
|
||||
/* If the constant is not long long and it won't fit in an
|
||||
unsigned long, or if the constant is long long and won't fit
|
||||
in an unsigned long long, then warn that the constant is out
|
||||
of range. */
|
||||
/* If the constant won't fit in an unsigned long long,
|
||||
then warn that the constant is out of range. */
|
||||
|
||||
/* ??? This assumes that long long and long integer types are
|
||||
a multiple of 8 bits. This better than the original code
|
||||
though which assumed that long was exactly 32 bits and long
|
||||
long was exactly 64 bits. */
|
||||
|
||||
if (spec_long_long)
|
||||
bytes = TYPE_PRECISION (long_long_integer_type_node) / 8;
|
||||
else
|
||||
bytes = TYPE_PRECISION (long_integer_type_node) / 8;
|
||||
bytes = TYPE_PRECISION (long_long_integer_type_node) / 8;
|
||||
|
||||
warn = overflow;
|
||||
for (i = bytes; i < TOTAL_PARTS; i++)
|
||||
|
@ -1791,7 +1787,9 @@ yylex ()
|
|||
else if (! spec_unsigned && !spec_long_long
|
||||
&& int_fits_type_p (yylval.ttype, long_integer_type_node))
|
||||
ansi_type = long_integer_type_node;
|
||||
else if (! spec_long_long)
|
||||
else if (! spec_long_long
|
||||
&& int_fits_type_p (yylval.ttype,
|
||||
long_unsigned_type_node))
|
||||
ansi_type = long_unsigned_type_node;
|
||||
else if (! spec_unsigned
|
||||
&& int_fits_type_p (yylval.ttype,
|
||||
|
@ -1815,8 +1813,9 @@ yylex ()
|
|||
warning ("width of integer constant may change on other systems with -traditional");
|
||||
}
|
||||
|
||||
if (!flag_traditional && !int_fits_type_p (yylval.ttype, type)
|
||||
&& !warn)
|
||||
if (pedantic && !flag_traditional && !spec_long_long && !warn
|
||||
&& (TYPE_PRECISION (long_integer_type_node)
|
||||
< TYPE_PRECISION (type)))
|
||||
pedwarn ("integer constant out of range");
|
||||
|
||||
if (base == 10 && ! spec_unsigned && TREE_UNSIGNED (type))
|
||||
|
|
|
@ -35,12 +35,29 @@ Boston, MA 02111-1307, USA. */
|
|||
#include "flags.h"
|
||||
#include "output.h"
|
||||
|
||||
#ifdef HAVE_STDLIB_H
|
||||
#include <stdlib.h>
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_STRING_H
|
||||
#include <string.h>
|
||||
#else
|
||||
#ifdef HAVE_STRINGS_H
|
||||
#include <strings.h>
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/* Nonzero if we've already printed a "missing braces around initializer"
|
||||
message within this initializer. */
|
||||
static int missing_braces_mentioned;
|
||||
|
||||
#ifdef NEED_DECLARATION_INDEX
|
||||
extern char *index ();
|
||||
#endif
|
||||
|
||||
#ifdef NEED_DECLARATION_RINDEX
|
||||
extern char *rindex ();
|
||||
#endif
|
||||
|
||||
static tree qualify_type PROTO((tree, tree));
|
||||
static int comp_target_types PROTO((tree, tree));
|
||||
|
|
|
@ -1868,7 +1868,8 @@ expand_call (exp, target, ignore)
|
|||
VOIDmode, 3,
|
||||
structure_value_addr, ptr_mode,
|
||||
GEN_INT (struct_value_size), TYPE_MODE (sizetype),
|
||||
GEN_INT (MEMORY_USE_WO), QImode);
|
||||
GEN_INT (MEMORY_USE_WO),
|
||||
TYPE_MODE (integer_type_node));
|
||||
|
||||
if (GET_CODE (struct_value_rtx) == REG)
|
||||
use_reg (&call_fusage, struct_value_rtx);
|
||||
|
@ -3579,7 +3580,8 @@ store_one_arg (arg, argblock, may_be_alloca, variable_size, fndecl,
|
|||
XEXP (arg->stack, 0), ptr_mode,
|
||||
GEN_INT (GET_MODE_SIZE (arg->mode)),
|
||||
TYPE_MODE (sizetype),
|
||||
GEN_INT (MEMORY_USE_RW), QImode);
|
||||
GEN_INT (MEMORY_USE_RW),
|
||||
TYPE_MODE (integer_type_node));
|
||||
}
|
||||
}
|
||||
else if (arg->mode != BLKmode)
|
||||
|
|
356
gcc/cccp.c
356
gcc/cccp.c
|
@ -16,87 +16,27 @@ GNU General Public License for more details.
|
|||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA.
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
In other words, you are welcome to use, share and improve this program.
|
||||
You are forbidden to forbid anyone else to use, share and improve
|
||||
what you give them. Help stamp out software-hoarding! */
|
||||
|
||||
typedef unsigned char U_CHAR;
|
||||
|
||||
#ifdef EMACS
|
||||
#define NO_SHORTNAMES
|
||||
#include "../src/config.h"
|
||||
#ifdef open
|
||||
#undef open
|
||||
#undef read
|
||||
#undef write
|
||||
#endif /* open */
|
||||
#endif /* EMACS */
|
||||
|
||||
/* The macro EMACS is defined when cpp is distributed as part of Emacs,
|
||||
for the sake of machines with limited C compilers. */
|
||||
#ifndef EMACS
|
||||
#include "config.h"
|
||||
#endif /* not EMACS */
|
||||
|
||||
#ifndef STANDARD_INCLUDE_DIR
|
||||
#define STANDARD_INCLUDE_DIR "/usr/include"
|
||||
#endif
|
||||
|
||||
#include "pcp.h"
|
||||
|
||||
/* By default, colon separates directories in a path. */
|
||||
#ifndef PATH_SEPARATOR
|
||||
#define PATH_SEPARATOR ':'
|
||||
#endif
|
||||
|
||||
/* By default, the suffix for object files is ".o". */
|
||||
#ifdef OBJECT_SUFFIX
|
||||
#define HAVE_OBJECT_SUFFIX
|
||||
#else
|
||||
#define OBJECT_SUFFIX ".o"
|
||||
#endif
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
#include <ctype.h>
|
||||
#include <stdio.h>
|
||||
#include <signal.h>
|
||||
|
||||
/* The following symbols should be autoconfigured:
|
||||
HAVE_FCNTL_H
|
||||
HAVE_SYS_TIME_H
|
||||
STDC_HEADERS
|
||||
TIME_WITH_SYS_TIME
|
||||
In the mean time, we'll get by with approximations based
|
||||
on existing GCC configuration symbols. */
|
||||
|
||||
#ifdef POSIX
|
||||
# ifndef STDC_HEADERS
|
||||
# define STDC_HEADERS 1
|
||||
# endif
|
||||
#endif /* defined (POSIX) */
|
||||
|
||||
#if defined (POSIX) || (defined (USG) && !defined (VMS))
|
||||
# ifndef HAVE_FCNTL_H
|
||||
# define HAVE_FCNTL_H 1
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifndef RLIMIT_STACK
|
||||
#ifdef TIME_WITH_SYS_TIME
|
||||
# include <sys/time.h>
|
||||
# include <time.h>
|
||||
#else
|
||||
# if TIME_WITH_SYS_TIME
|
||||
# include <sys/time.h>
|
||||
# include <time.h>
|
||||
# if HAVE_SYS_TIME_H
|
||||
# include <sys/time.h>
|
||||
# else
|
||||
# if HAVE_SYS_TIME_H
|
||||
# include <sys/time.h>
|
||||
# else
|
||||
# include <time.h>
|
||||
# endif
|
||||
# endif
|
||||
# include <time.h>
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_SYS_RESOURCE_H
|
||||
# include <sys/resource.h>
|
||||
#endif
|
||||
|
||||
|
@ -108,96 +48,68 @@ typedef unsigned char U_CHAR;
|
|||
# include <limits.h>
|
||||
#endif
|
||||
|
||||
#if HAVE_UNISTD_H
|
||||
# include <unistd.h>
|
||||
#endif
|
||||
|
||||
#include <errno.h>
|
||||
|
||||
#if HAVE_STDLIB_H
|
||||
# include <stdlib.h>
|
||||
#else
|
||||
char *getenv ();
|
||||
#endif
|
||||
|
||||
#if STDC_HEADERS
|
||||
#ifdef HAVE_STRING_H
|
||||
# include <string.h>
|
||||
# ifndef bcmp
|
||||
# define bcmp(a, b, n) memcmp (a, b, n)
|
||||
# endif
|
||||
# ifndef bcopy
|
||||
# define bcopy(s, d, n) memcpy (d, s, n)
|
||||
# endif
|
||||
# ifndef bzero
|
||||
# define bzero(d, n) memset (d, 0, n)
|
||||
# endif
|
||||
#else /* !STDC_HEADERS */
|
||||
char *index ();
|
||||
char *rindex ();
|
||||
#else
|
||||
# ifdef HAVE_STRINGS_H
|
||||
# inclued <strings.h>
|
||||
#endif
|
||||
#endif
|
||||
|
||||
# if !defined (BSTRING) && (defined (USG) || defined (VMS))
|
||||
typedef unsigned char U_CHAR;
|
||||
|
||||
# ifndef bcmp
|
||||
# define bcmp my_bcmp
|
||||
static int
|
||||
my_bcmp (a, b, n)
|
||||
register char *a;
|
||||
register char *b;
|
||||
register unsigned n;
|
||||
{
|
||||
while (n-- > 0)
|
||||
if (*a++ != *b++)
|
||||
return 1;
|
||||
#include "gansidecl.h"
|
||||
#include "pcp.h"
|
||||
|
||||
return 0;
|
||||
}
|
||||
# endif /* !defined (bcmp) */
|
||||
#ifdef NEED_DECLARATION_INDEX
|
||||
extern char *index ();
|
||||
#endif
|
||||
|
||||
# ifndef bcopy
|
||||
# define bcopy my_bcopy
|
||||
static void
|
||||
my_bcopy (s, d, n)
|
||||
register char *s;
|
||||
register char *d;
|
||||
register unsigned n;
|
||||
{
|
||||
while (n-- > 0)
|
||||
*d++ = *s++;
|
||||
}
|
||||
# endif /* !defined (bcopy) */
|
||||
#ifdef NEED_DECLARATION_RINDEX
|
||||
extern char *rindex ();
|
||||
#endif
|
||||
|
||||
# ifndef bzero
|
||||
# define bzero my_bzero
|
||||
static void
|
||||
my_bzero (b, length)
|
||||
register char *b;
|
||||
register unsigned length;
|
||||
{
|
||||
while (length-- > 0)
|
||||
*b++ = 0;
|
||||
}
|
||||
# endif /* !defined (bzero) */
|
||||
|
||||
# endif /* !defined (BSTRING) && (defined (USG) || defined (VMS)) */
|
||||
#endif /* ! STDC_HEADERS */
|
||||
#ifdef NEED_DECLARATION_GETENV
|
||||
extern char *getenv ();
|
||||
#endif
|
||||
|
||||
#if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 7)
|
||||
# define __attribute__(x)
|
||||
#endif
|
||||
|
||||
#ifndef PROTO
|
||||
# if defined (USE_PROTOTYPES) ? USE_PROTOTYPES : defined (__STDC__)
|
||||
# define PROTO(ARGS) ARGS
|
||||
# else
|
||||
# define PROTO(ARGS) ()
|
||||
# endif
|
||||
#ifndef STANDARD_INCLUDE_DIR
|
||||
# define STANDARD_INCLUDE_DIR "/usr/include"
|
||||
#endif
|
||||
|
||||
/* By default, colon separates directories in a path. */
|
||||
#ifndef PATH_SEPARATOR
|
||||
# define PATH_SEPARATOR ':'
|
||||
#endif
|
||||
|
||||
/* By default, the suffix for object files is ".o". */
|
||||
#ifdef OBJECT_SUFFIX
|
||||
# define HAVE_OBJECT_SUFFIX
|
||||
#else
|
||||
# define OBJECT_SUFFIX ".o"
|
||||
#endif
|
||||
|
||||
#if defined (__STDC__) && defined (HAVE_VPRINTF)
|
||||
# include <stdarg.h>
|
||||
# define VA_START(va_list, var) va_start (va_list, var)
|
||||
# define PRINTF_ALIST(msg) char *msg, ...
|
||||
# define PRINTF_DCL(msg)
|
||||
# define PRINTF_PROTO(ARGS, m, n) PROTO (ARGS) __attribute__ ((format (__printf__, m, n)))
|
||||
#else
|
||||
# include <varargs.h>
|
||||
# define VA_START(va_list, var) va_start (va_list)
|
||||
# define PRINTF_ALIST(msg) msg, va_alist
|
||||
# define PRINTF_DCL(msg) char *msg; va_dcl
|
||||
# define PRINTF_PROTO(ARGS, m, n) () __attribute__ ((format (__printf__, m, n)))
|
||||
|
@ -215,10 +127,6 @@ my_bzero (b, length)
|
|||
#define PRINTF_PROTO_2(ARGS) PRINTF_PROTO(ARGS, 2, 3)
|
||||
#define PRINTF_PROTO_3(ARGS) PRINTF_PROTO(ARGS, 3, 4)
|
||||
|
||||
#if HAVE_UNISTD_H
|
||||
# include <unistd.h>
|
||||
#endif
|
||||
|
||||
/* VMS-specific definitions */
|
||||
#ifdef VMS
|
||||
#include <descrip.h>
|
||||
|
@ -258,12 +166,10 @@ static void hack_vms_include_specification ();
|
|||
# include <inttypes.h>
|
||||
# define HOST_WIDE_INT intmax_t
|
||||
# else
|
||||
# if (HOST_BITS_PER_LONG <= HOST_BITS_PER_INT \
|
||||
&& HOST_BITS_PER_LONGLONG <= HOST_BITS_PER_INT)
|
||||
# if (HOST_BITS_PER_LONG <= HOST_BITS_PER_INT && HOST_BITS_PER_LONGLONG <= HOST_BITS_PER_INT)
|
||||
# define HOST_WIDE_INT int
|
||||
# else
|
||||
# if (HOST_BITS_PER_LONGLONG <= HOST_BITS_PER_LONG \
|
||||
|| ! (defined LONG_LONG_MAX || defined LLONG_MAX))
|
||||
# if (HOST_BITS_PER_LONGLONG <= HOST_BITS_PER_LONG || ! (defined LONG_LONG_MAX || defined LLONG_MAX))
|
||||
# define HOST_WIDE_INT long
|
||||
# else
|
||||
# define HOST_WIDE_INT long long
|
||||
|
@ -288,24 +194,6 @@ static void hack_vms_include_specification ();
|
|||
#define INO_T_HASH(a) (a)
|
||||
#endif
|
||||
|
||||
/* Define a generic NULL if one hasn't already been defined. */
|
||||
|
||||
#ifndef NULL
|
||||
#define NULL 0
|
||||
#endif
|
||||
|
||||
#ifndef GENERIC_PTR
|
||||
#if defined (USE_PROTOTYPES) ? USE_PROTOTYPES : defined (__STDC__)
|
||||
#define GENERIC_PTR void *
|
||||
#else
|
||||
#define GENERIC_PTR char *
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifndef NULL_PTR
|
||||
#define NULL_PTR ((GENERIC_PTR) 0)
|
||||
#endif
|
||||
|
||||
#ifndef INCLUDE_LEN_FUDGE
|
||||
#define INCLUDE_LEN_FUDGE 0
|
||||
#endif
|
||||
|
@ -325,7 +213,7 @@ char *strerror ();
|
|||
char *strerror (int,...);
|
||||
#endif
|
||||
HOST_WIDE_INT parse_escape PROTO((char **, HOST_WIDE_INT));
|
||||
HOST_WIDE_INT parse_c_expression PROTO((char *));
|
||||
HOST_WIDE_INT parse_c_expression PROTO((char *, int));
|
||||
|
||||
#ifndef errno
|
||||
extern int errno;
|
||||
|
@ -412,7 +300,7 @@ static enum {dump_none, dump_only, dump_names, dump_definitions}
|
|||
static int debug_output = 0;
|
||||
|
||||
/* Nonzero means pass #include lines through to the output,
|
||||
even if they are ifdeffed out. */
|
||||
even if they are ifdefed out. */
|
||||
static int dump_includes;
|
||||
|
||||
/* Nonzero indicates special processing used by the pcp program. The
|
||||
|
@ -466,7 +354,7 @@ static int warn_trigraphs;
|
|||
|
||||
/* Nonzero means warn if undefined identifiers are evaluated in an #if. */
|
||||
|
||||
int warn_undef;
|
||||
static int warn_undef;
|
||||
|
||||
/* Nonzero means warn if #import is used. */
|
||||
|
||||
|
@ -490,6 +378,9 @@ int c89;
|
|||
|
||||
static int no_output;
|
||||
|
||||
/* Nonzero means we should look for header.gcc files that remap file names. */
|
||||
static int remap;
|
||||
|
||||
/* Nonzero means this file was included with a -imacros or -include
|
||||
command line and should not be recorded as an include file. */
|
||||
|
||||
|
@ -1214,6 +1105,7 @@ static void make_assertion PROTO((char *, char *));
|
|||
static struct file_name_list *new_include_prefix PROTO((struct file_name_list *, char *, char *, char *));
|
||||
static void append_include_chain PROTO((struct file_name_list *, struct file_name_list *));
|
||||
|
||||
static int quote_string_for_make PROTO((char *, char *));
|
||||
static void deps_output PROTO((char *, int));
|
||||
|
||||
static void fatal PRINTF_PROTO_1((char *, ...)) __attribute__ ((noreturn));
|
||||
|
@ -1775,6 +1667,11 @@ main (argc, argv)
|
|||
no_precomp = 1;
|
||||
break;
|
||||
|
||||
case 'r':
|
||||
if (!strcmp (argv[i], "-remap"))
|
||||
remap = 1;
|
||||
break;
|
||||
|
||||
case 'u':
|
||||
/* Sun compiler passes undocumented switch "-undef".
|
||||
Let's assume it means to inhibit the predefined symbols. */
|
||||
|
@ -2212,8 +2109,11 @@ main (argc, argv)
|
|||
} else {
|
||||
/* Read a file whose size we can determine in advance.
|
||||
For the sake of VMS, st.st_size is just an upper bound. */
|
||||
fp->buf = (U_CHAR *) xmalloc (st.st_size + 2);
|
||||
fp->length = safe_read (f, (char *) fp->buf, st.st_size);
|
||||
size_t s = (size_t) st.st_size;
|
||||
if (s != st.st_size || s + 2 < s)
|
||||
memory_full ();
|
||||
fp->buf = (U_CHAR *) xmalloc (s + 2);
|
||||
fp->length = safe_read (f, (char *) fp->buf, s);
|
||||
if (fp->length < 0) goto perror;
|
||||
}
|
||||
fp->bufp = fp->buf;
|
||||
|
@ -4709,7 +4609,7 @@ absolute_filename (filename)
|
|||
|
||||
Do only the simplifications allowed by Posix.
|
||||
It is OK to miss simplifications on non-Posix hosts,
|
||||
since this merely leads to suboptimial results. */
|
||||
since this merely leads to suboptimal results. */
|
||||
|
||||
static size_t
|
||||
simplify_filename (filename)
|
||||
|
@ -4926,7 +4826,7 @@ open_include_file (filename, searchptr, importing, pinc)
|
|||
U_CHAR *importing;
|
||||
struct include_file **pinc;
|
||||
{
|
||||
char *fname = remap_include_file (filename, searchptr);
|
||||
char *fname = remap ? remap_include_file (filename, searchptr) : filename;
|
||||
int fd = -2;
|
||||
|
||||
/* Look up FNAME in include_hashtab. */
|
||||
|
@ -5090,12 +4990,15 @@ finclude (f, inc, op, system_header_p, dirptr)
|
|||
fp->dir = dirptr;
|
||||
|
||||
if (S_ISREG (inc->st.st_mode)) {
|
||||
fp->buf = (U_CHAR *) xmalloc (inc->st.st_size + 2);
|
||||
size_t s = (size_t) inc->st.st_size;
|
||||
if (s != inc->st.st_size || s + 2 < s)
|
||||
memory_full ();
|
||||
fp->buf = (U_CHAR *) xmalloc (s + 2);
|
||||
fp->bufp = fp->buf;
|
||||
|
||||
/* Read the file contents, knowing that inc->st.st_size is an upper bound
|
||||
/* Read the file contents, knowing that s is an upper bound
|
||||
on the number of bytes we can read. */
|
||||
fp->length = safe_read (f, (char *) fp->buf, inc->st.st_size);
|
||||
fp->length = safe_read (f, (char *) fp->buf, s);
|
||||
if (fp->length < 0) goto nope;
|
||||
}
|
||||
else if (S_ISDIR (inc->st.st_mode)) {
|
||||
|
@ -5210,8 +5113,11 @@ check_precompiled (pcf, st, fname, limit)
|
|||
|
||||
if (S_ISREG (st->st_mode))
|
||||
{
|
||||
buf = xmalloc (st->st_size + 2);
|
||||
length = safe_read (pcf, buf, st->st_size);
|
||||
size_t s = (size_t) st->st_size;
|
||||
if (s != st->st_size || s + 2 < s)
|
||||
memory_full ();
|
||||
buf = xmalloc (s + 2);
|
||||
length = safe_read (pcf, buf, s);
|
||||
if (length < 0)
|
||||
goto nope;
|
||||
}
|
||||
|
@ -7032,7 +6938,8 @@ eval_if_expression (buf, length)
|
|||
delete_macro (save_defined); /* clean up special symbol */
|
||||
|
||||
temp_obuf.buf[temp_obuf.length] = '\n';
|
||||
value = parse_c_expression ((char *) temp_obuf.buf);
|
||||
value = parse_c_expression ((char *) temp_obuf.buf,
|
||||
warn_undef && !instack[indepth].system_header_p);
|
||||
|
||||
free (temp_obuf.buf);
|
||||
|
||||
|
@ -9940,6 +9847,67 @@ append_include_chain (first, last)
|
|||
last_include = last;
|
||||
}
|
||||
|
||||
/* Place into DST a representation of the file named SRC that is suitable
|
||||
for `make'. Do not null-terminate DST. Return its length. */
|
||||
static int
|
||||
quote_string_for_make (dst, src)
|
||||
char *dst;
|
||||
char *src;
|
||||
{
|
||||
char *p = src;
|
||||
int i = 0;
|
||||
for (;;)
|
||||
{
|
||||
char c = *p++;
|
||||
switch (c)
|
||||
{
|
||||
case '\0':
|
||||
case ' ':
|
||||
case '\t':
|
||||
{
|
||||
/* GNU make uses a weird quoting scheme for white space.
|
||||
A space or tab preceded by 2N+1 backslashes represents
|
||||
N backslashes followed by space; a space or tab
|
||||
preceded by 2N backslashes represents N backslashes at
|
||||
the end of a file name; and backslashes in other
|
||||
contexts should not be doubled. */
|
||||
char *q;
|
||||
for (q = p - 1; src < q && q[-1] == '\\'; q--)
|
||||
{
|
||||
if (dst)
|
||||
dst[i] = '\\';
|
||||
i++;
|
||||
}
|
||||
}
|
||||
if (!c)
|
||||
return i;
|
||||
if (dst)
|
||||
dst[i] = '\\';
|
||||
i++;
|
||||
goto ordinary_char;
|
||||
|
||||
case '$':
|
||||
if (dst)
|
||||
dst[i] = c;
|
||||
i++;
|
||||
/* Fall through. This can mishandle things like "$(" but
|
||||
there's no easy fix. */
|
||||
default:
|
||||
ordinary_char:
|
||||
/* This can mishandle characters in the string "\0\n%*?[\\~";
|
||||
exactly which chars are mishandled depends on the `make' version.
|
||||
We know of no portable solution for this;
|
||||
even GNU make 3.76.1 doesn't solve the problem entirely.
|
||||
(Also, '\0' is mishandled due to our calling conventions.) */
|
||||
if (dst)
|
||||
dst[i] = c;
|
||||
i++;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* Add output to `deps_buffer' for the -M switch.
|
||||
STRING points to the text to be output.
|
||||
SPACER is ':' for targets, ' ' for dependencies. */
|
||||
|
@ -9949,9 +9917,7 @@ deps_output (string, spacer)
|
|||
char *string;
|
||||
int spacer;
|
||||
{
|
||||
int size = strlen (string);
|
||||
int i;
|
||||
char *p;
|
||||
int size = quote_string_for_make ((char *) 0, string);
|
||||
|
||||
if (size == 0)
|
||||
return;
|
||||
|
@ -9976,27 +9942,9 @@ deps_output (string, spacer)
|
|||
deps_buffer[deps_size++] = ' ';
|
||||
deps_column++;
|
||||
}
|
||||
|
||||
for (i = 0; i < size; ++i)
|
||||
{
|
||||
if (string[i] == '$')
|
||||
{
|
||||
deps_buffer[deps_size++] = '$';
|
||||
deps_column++;
|
||||
}
|
||||
else
|
||||
{
|
||||
p = strchr ("~[]*?()\\ ", string[i]);
|
||||
if (p != NULL)
|
||||
{
|
||||
deps_buffer[deps_size++] = '\\';
|
||||
deps_column++;
|
||||
}
|
||||
}
|
||||
deps_buffer[deps_size++] = string[i];
|
||||
deps_column++;
|
||||
}
|
||||
|
||||
quote_string_for_make (&deps_buffer[deps_size], string);
|
||||
deps_size += size;
|
||||
deps_column += size;
|
||||
if (spacer == ':') {
|
||||
deps_buffer[deps_size++] = ':';
|
||||
deps_column++;
|
||||
|
@ -10272,10 +10220,11 @@ VMS_freopen (fname, type, oldfile)
|
|||
char *type;
|
||||
FILE *oldfile;
|
||||
{
|
||||
#undef freopen /* Get back the real freopen routine. */
|
||||
if (strcmp (type, "w") == 0)
|
||||
return decc$freopen (fname, type, oldfile,
|
||||
return freopen (fname, type, oldfile,
|
||||
"mbc=16", "deq=64", "fop=tef", "shr=nil");
|
||||
return decc$freopen (fname, type, oldfile, "mbc=16");
|
||||
return freopen (fname, type, oldfile, "mbc=16");
|
||||
}
|
||||
|
||||
static FILE *
|
||||
|
@ -10283,10 +10232,11 @@ VMS_fopen (fname, type)
|
|||
char *fname;
|
||||
char *type;
|
||||
{
|
||||
#undef fopen /* Get back the real fopen routine. */
|
||||
/* The gcc-vms-1.42 distribution's header files prototype fopen with two
|
||||
fixed arguments, which matches ANSI's specification but not VAXCRTL's
|
||||
pre-ANSI implementation. This hack circumvents the mismatch problem. */
|
||||
FILE *(*vmslib_fopen)() = (FILE *(*)()) decc$fopen;
|
||||
FILE *(*vmslib_fopen)() = (FILE *(*)()) fopen;
|
||||
|
||||
if (*type == 'w')
|
||||
return (*vmslib_fopen) (fname, type, "mbc=32",
|
||||
|
@ -10301,7 +10251,8 @@ VMS_open (fname, flags, prot)
|
|||
int flags;
|
||||
int prot;
|
||||
{
|
||||
return decc$open (fname, flags, prot, "mbc=16", "deq=64", "fop=tef");
|
||||
#undef open /* Get back the real open routine. */
|
||||
return open (fname, flags, prot, "mbc=16", "deq=64", "fop=tef");
|
||||
}
|
||||
|
||||
/* more VMS hackery */
|
||||
|
@ -10322,13 +10273,14 @@ extern unsigned long sys$parse(), sys$search();
|
|||
bad enough, but then compounding the problem by reporting the reason for
|
||||
failure as "normal successful completion." */
|
||||
|
||||
#undef fstat /* Get back to the library version. */
|
||||
|
||||
static int
|
||||
VMS_fstat (fd, statbuf)
|
||||
int fd;
|
||||
struct stat *statbuf;
|
||||
{
|
||||
int result = decc$fstat (fd, statbuf);
|
||||
int result = fstat (fd, statbuf);
|
||||
|
||||
if (result < 0)
|
||||
{
|
||||
|
|
38
gcc/cexp.c
38
gcc/cexp.c
|
@ -1,6 +1,6 @@
|
|||
|
||||
/* A Bison parser, made from cexp.y
|
||||
by Bison version A2.5 (Andrew Consortium)
|
||||
by GNU Bison version 1.25
|
||||
*/
|
||||
|
||||
#define YYBISON 1 /* Identify Bison output. */
|
||||
|
@ -332,7 +332,7 @@ static const short yyrline[] = { 0,
|
|||
#endif
|
||||
|
||||
|
||||
#if YYDEBUG != 0
|
||||
#if YYDEBUG != 0 || defined (YYERROR_VERBOSE)
|
||||
|
||||
static const char * const yytname[] = { "$","error","$undefined.","INT","CHAR",
|
||||
"NAME","ERROR","'?'","':'","','","OR","AND","'|'","'^'","'&'","EQUAL","NOTEQUAL",
|
||||
|
@ -588,16 +588,16 @@ int yyparse (void);
|
|||
#endif
|
||||
|
||||
#if __GNUC__ > 1 /* GNU C and GNU C++ define this. */
|
||||
#define __yy_memcpy(FROM,TO,COUNT) __builtin_memcpy(TO,FROM,COUNT)
|
||||
#define __yy_memcpy(TO,FROM,COUNT) __builtin_memcpy(TO,FROM,COUNT)
|
||||
#else /* not GNU C or C++ */
|
||||
#ifndef __cplusplus
|
||||
|
||||
/* This is the most reliable way to avoid incompatibilities
|
||||
in available built-in functions on various systems. */
|
||||
static void
|
||||
__yy_memcpy (from, to, count)
|
||||
char *from;
|
||||
__yy_memcpy (to, from, count)
|
||||
char *to;
|
||||
char *from;
|
||||
int count;
|
||||
{
|
||||
register char *f = from;
|
||||
|
@ -613,7 +613,7 @@ __yy_memcpy (from, to, count)
|
|||
/* This is the most reliable way to avoid incompatibilities
|
||||
in available built-in functions on various systems. */
|
||||
static void
|
||||
__yy_memcpy (char *from, char *to, int count)
|
||||
__yy_memcpy (char *to, char *from, int count)
|
||||
{
|
||||
register char *f = from;
|
||||
register char *t = to;
|
||||
|
@ -626,7 +626,7 @@ __yy_memcpy (char *from, char *to, int count)
|
|||
#endif
|
||||
#endif
|
||||
|
||||
#line 192 "/usr/share/bison.simple"
|
||||
#line 196 "/usr/share/bison.simple"
|
||||
|
||||
/* The user can define YYPARSE_PARAM as the name of an argument to be passed
|
||||
into yyparse. The argument should have type void *.
|
||||
|
@ -635,14 +635,20 @@ __yy_memcpy (char *from, char *to, int count)
|
|||
to the proper pointer type. */
|
||||
|
||||
#ifdef YYPARSE_PARAM
|
||||
#define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
|
||||
#else
|
||||
#define YYPARSE_PARAM
|
||||
#ifdef __cplusplus
|
||||
#define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
|
||||
#define YYPARSE_PARAM_DECL
|
||||
#endif
|
||||
#else /* not __cplusplus */
|
||||
#define YYPARSE_PARAM_ARG YYPARSE_PARAM
|
||||
#define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
|
||||
#endif /* not __cplusplus */
|
||||
#else /* not YYPARSE_PARAM */
|
||||
#define YYPARSE_PARAM_ARG
|
||||
#define YYPARSE_PARAM_DECL
|
||||
#endif /* not YYPARSE_PARAM */
|
||||
|
||||
int
|
||||
yyparse(YYPARSE_PARAM)
|
||||
yyparse(YYPARSE_PARAM_ARG)
|
||||
YYPARSE_PARAM_DECL
|
||||
{
|
||||
register int yystate;
|
||||
|
@ -759,12 +765,12 @@ yynewstate:
|
|||
if (yystacksize > YYMAXDEPTH)
|
||||
yystacksize = YYMAXDEPTH;
|
||||
yyss = (short *) alloca (yystacksize * sizeof (*yyssp));
|
||||
__yy_memcpy ((char *)yyss1, (char *)yyss, size * sizeof (*yyssp));
|
||||
__yy_memcpy ((char *)yyss, (char *)yyss1, size * sizeof (*yyssp));
|
||||
yyvs = (YYSTYPE *) alloca (yystacksize * sizeof (*yyvsp));
|
||||
__yy_memcpy ((char *)yyvs1, (char *)yyvs, size * sizeof (*yyvsp));
|
||||
__yy_memcpy ((char *)yyvs, (char *)yyvs1, size * sizeof (*yyvsp));
|
||||
#ifdef YYLSP_NEEDED
|
||||
yyls = (YYLTYPE *) alloca (yystacksize * sizeof (*yylsp));
|
||||
__yy_memcpy ((char *)yyls1, (char *)yyls, size * sizeof (*yylsp));
|
||||
__yy_memcpy ((char *)yyls, (char *)yyls1, size * sizeof (*yylsp));
|
||||
#endif
|
||||
#endif /* no yyoverflow */
|
||||
|
||||
|
@ -1201,7 +1207,7 @@ case 40:
|
|||
break;}
|
||||
}
|
||||
/* the action file gets copied in in place of this dollarsign */
|
||||
#line 487 "/usr/share/bison.simple"
|
||||
#line 498 "/usr/share/bison.simple"
|
||||
|
||||
yyvsp -= yylen;
|
||||
yyssp -= yylen;
|
||||
|
|
|
@ -34,6 +34,18 @@ Boston, MA 02111-1307, USA. */
|
|||
#include <sys/file.h>
|
||||
#include <sys/stat.h>
|
||||
|
||||
#ifdef HAVE_STDLIB_H
|
||||
#include <stdlib.h>
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_STRING_H
|
||||
#include <string.h>
|
||||
#else
|
||||
#ifdef HAVE_STRINGS_H
|
||||
#include <strings.h>
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#define COLLECT
|
||||
|
||||
#include "demangle.h"
|
||||
|
@ -292,9 +304,17 @@ static void scan_libraries PROTO((char *));
|
|||
char *xcalloc ();
|
||||
char *xmalloc ();
|
||||
|
||||
#ifdef NEED_DECLARATION_INDEX
|
||||
extern char *index ();
|
||||
#endif
|
||||
|
||||
#ifdef NEED_DECLARATION_RINDEX
|
||||
extern char *rindex ();
|
||||
#endif
|
||||
|
||||
#ifdef NEED_DECLARATION_FREE
|
||||
extern void free ();
|
||||
#endif
|
||||
|
||||
#ifdef NO_DUP2
|
||||
int
|
||||
|
@ -1760,11 +1780,22 @@ write_c_file_stat (stream, name)
|
|||
write_list (stream, "\t\t&", frame_tables.first);
|
||||
fprintf (stream, "\t0\n};\n");
|
||||
|
||||
fprintf (stream, "extern void __register_frame_table (void *);\n");
|
||||
/* This must match what's in frame.h. */
|
||||
fprintf (stream, "struct object {\n");
|
||||
fprintf (stream, " void *pc_begin;\n");
|
||||
fprintf (stream, " void *pc_end;\n");
|
||||
fprintf (stream, " void *fde_begin;\n");
|
||||
fprintf (stream, " void *fde_array;\n");
|
||||
fprintf (stream, " size_t count;\n");
|
||||
fprintf (stream, " struct object *next;\n");
|
||||
fprintf (stream, "};\n");
|
||||
|
||||
fprintf (stream, "extern void __register_frame_table (void *, struct object *);\n");
|
||||
fprintf (stream, "extern void __deregister_frame (void *);\n");
|
||||
|
||||
fprintf (stream, "static void reg_frame () {\n");
|
||||
fprintf (stream, "\t__register_frame_table (frame_table);\n");
|
||||
fprintf (stream, "\tstatic struct object ob;\n");
|
||||
fprintf (stream, "\t__register_frame_table (frame_table, &ob);\n");
|
||||
fprintf (stream, "\t}\n");
|
||||
|
||||
fprintf (stream, "static void dereg_frame () {\n");
|
||||
|
|
|
@ -1055,6 +1055,43 @@ can_combine_p (insn, i3, pred, succ, pdest, psrc)
|
|||
return 1;
|
||||
}
|
||||
|
||||
/* Check if PAT is an insn - or a part of it - used to set up an
|
||||
argument for a function in a hard register. */
|
||||
|
||||
static int
|
||||
sets_function_arg_p (pat)
|
||||
rtx pat;
|
||||
{
|
||||
int i;
|
||||
rtx inner_dest;
|
||||
|
||||
switch (GET_CODE (pat))
|
||||
{
|
||||
case INSN:
|
||||
return sets_function_arg_p (PATTERN (pat));
|
||||
|
||||
case PARALLEL:
|
||||
for (i = XVECLEN (pat, 0); --i >= 0;)
|
||||
if (sets_function_arg_p (XVECEXP (pat, 0, i)))
|
||||
return 1;
|
||||
|
||||
break;
|
||||
|
||||
case SET:
|
||||
inner_dest = SET_DEST (pat);
|
||||
while (GET_CODE (inner_dest) == STRICT_LOW_PART
|
||||
|| GET_CODE (inner_dest) == SUBREG
|
||||
|| GET_CODE (inner_dest) == ZERO_EXTRACT)
|
||||
inner_dest = XEXP (inner_dest, 0);
|
||||
|
||||
return (GET_CODE (inner_dest) == REG
|
||||
&& REGNO (inner_dest) < FIRST_PSEUDO_REGISTER
|
||||
&& FUNCTION_ARG_REGNO_P (REGNO (inner_dest)));
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* LOC is the location within I3 that contains its pattern or the component
|
||||
of a PARALLEL of the pattern. We validate that it is valid for combining.
|
||||
|
||||
|
@ -1150,19 +1187,28 @@ combinable_i3pat (i3, loc, i2dest, i1dest, i1_not_in_src, pi3dest_killed)
|
|||
if ((inner_dest != dest
|
||||
&& (reg_overlap_mentioned_p (i2dest, inner_dest)
|
||||
|| (i1dest && reg_overlap_mentioned_p (i1dest, inner_dest))))
|
||||
|
||||
/* This is the same test done in can_combine_p except that we
|
||||
allow a hard register with SMALL_REGISTER_CLASSES if SRC is a
|
||||
CALL operation.
|
||||
Moreover, we can't test all_adjacent; we don't have to, since
|
||||
this instruction will stay in place, thus we are not considering
|
||||
to increase the lifetime of INNER_DEST. */
|
||||
CALL operation. Moreover, we can't test all_adjacent; we don't
|
||||
have to, since this instruction will stay in place, thus we are
|
||||
not considering increasing the lifetime of INNER_DEST.
|
||||
|
||||
Also, if this insn sets a function argument, combining it with
|
||||
something that might need a spill could clobber a previous
|
||||
function argument; the all_adjacent test in can_combine_p also
|
||||
checks this; here, we do a more specific test for this case. */
|
||||
|
||||
|| (GET_CODE (inner_dest) == REG
|
||||
&& REGNO (inner_dest) < FIRST_PSEUDO_REGISTER
|
||||
&& (! HARD_REGNO_MODE_OK (REGNO (inner_dest),
|
||||
GET_MODE (inner_dest))
|
||||
|| (SMALL_REGISTER_CLASSES && GET_CODE (src) != CALL
|
||||
&& ! REG_USERVAR_P (inner_dest)
|
||||
&& FUNCTION_VALUE_REGNO_P (REGNO (inner_dest)))))
|
||||
&& (FUNCTION_VALUE_REGNO_P (REGNO (inner_dest))
|
||||
|| (FUNCTION_ARG_REGNO_P (REGNO (inner_dest))
|
||||
&& i3 != 0
|
||||
&& sets_function_arg_p (prev_nonnote_insn (i3)))))))
|
||||
|| (i1_not_in_src && reg_overlap_mentioned_p (i1dest, src)))
|
||||
return 0;
|
||||
|
||||
|
@ -7188,7 +7234,7 @@ simplify_and_const_int (x, mode, varop, constop)
|
|||
/* We let num_sign_bit_copies recur into nonzero_bits as that is useful.
|
||||
We don't let nonzero_bits recur into num_sign_bit_copies, because that
|
||||
is less useful. We can't allow both, because that results in exponential
|
||||
run time recusion. There is a nullstone testcase that triggered
|
||||
run time recursion. There is a nullstone testcase that triggered
|
||||
this. This macro avoids accidental uses of num_sign_bit_copies. */
|
||||
#define num_sign_bit_copies()
|
||||
|
||||
|
|
|
@ -14,18 +14,60 @@
|
|||
/* Whether free must be declared even if <stdlib.h> is included. */
|
||||
#undef NEED_DECLARATION_FREE
|
||||
|
||||
/* Whether index must be declared even if <stdlib.h> is included. */
|
||||
#undef NEED_DECLARATION_INDEX
|
||||
|
||||
/* Whether rindex must be declared even if <stdlib.h> is included. */
|
||||
#undef NEED_DECLARATION_RINDEX
|
||||
|
||||
/* Define if you have the ANSI C header files. */
|
||||
#undef STDC_HEADERS
|
||||
|
||||
/* Define if `sys_siglist' is declared by <signal.h>. */
|
||||
#undef SYS_SIGLIST_DECLARED
|
||||
|
||||
/* Define if you can safely include both <sys/time.h> and <time.h>. */
|
||||
#undef TIME_WITH_SYS_TIME
|
||||
|
||||
/* Define if you have the bcmp function. */
|
||||
#undef HAVE_BCMP
|
||||
|
||||
/* Define if you have the bcopy function. */
|
||||
#undef HAVE_BCOPY
|
||||
|
||||
/* Define if you have the bsearch function. */
|
||||
#undef HAVE_BSEARCH
|
||||
|
||||
/* Define if you have the bzero function. */
|
||||
#undef HAVE_BZERO
|
||||
|
||||
/* Define if you have the index function. */
|
||||
#undef HAVE_INDEX
|
||||
|
||||
/* Define if you have the kill function. */
|
||||
#undef HAVE_KILL
|
||||
|
||||
/* Define if you have the popen function. */
|
||||
#undef HAVE_POPEN
|
||||
|
||||
/* Define if you have the putenv function. */
|
||||
#undef HAVE_PUTENV
|
||||
|
||||
/* Define if you have the rindex function. */
|
||||
#undef HAVE_RINDEX
|
||||
|
||||
/* Define if you have the strerror function. */
|
||||
#undef HAVE_STRERROR
|
||||
|
||||
/* Define if you have the strtoul function. */
|
||||
#undef HAVE_STRTOUL
|
||||
|
||||
/* Define if you have the vprintf function. */
|
||||
#undef HAVE_VPRINTF
|
||||
|
||||
/* Define if you have the <fcntl.h> header file. */
|
||||
#undef HAVE_FCNTL_H
|
||||
|
||||
/* Define if you have the <limits.h> header file. */
|
||||
#undef HAVE_LIMITS_H
|
||||
|
||||
|
@ -41,6 +83,21 @@
|
|||
/* Define if you have the <strings.h> header file. */
|
||||
#undef HAVE_STRINGS_H
|
||||
|
||||
/* Define if you have the <sys/file.h> header file. */
|
||||
#undef HAVE_SYS_FILE_H
|
||||
|
||||
/* Define if you have the <sys/param.h> header file. */
|
||||
#undef HAVE_SYS_PARAM_H
|
||||
|
||||
/* Define if you have the <sys/resource.h> header file. */
|
||||
#undef HAVE_SYS_RESOURCE_H
|
||||
|
||||
/* Define if you have the <sys/time.h> header file. */
|
||||
#undef HAVE_SYS_TIME_H
|
||||
|
||||
/* Define if you have the <sys/times.h> header file. */
|
||||
#undef HAVE_SYS_TIMES_H
|
||||
|
||||
/* Define if you have the <sys/varargs.h> header file. */
|
||||
#undef HAVE_SYS_VARARGS_H
|
||||
|
||||
|
|
|
@ -1201,10 +1201,9 @@ alpha_adjust_cost (insn, link, dep_insn, cost)
|
|||
|
||||
if (alpha_cpu == PROCESSOR_EV5)
|
||||
{
|
||||
/* On EV5, "A special bypass provides an effective latency of 0
|
||||
cycles for an ICMP or ILOG insn producing the test operand of an
|
||||
IBR or CMOV insn." */
|
||||
|
||||
/* And the lord DEC saith: "A special bypass provides an effective
|
||||
latency of 0 cycles for an ICMP or ILOG insn producing the test
|
||||
operand of an IBR or CMOV insn." */
|
||||
if (recog_memoized (dep_insn) >= 0
|
||||
&& (get_attr_type (dep_insn) == TYPE_ICMP
|
||||
|| get_attr_type (dep_insn) == TYPE_ILOG)
|
||||
|
@ -1753,10 +1752,12 @@ alpha_builtin_saveregs (arglist)
|
|||
emit_move_insn (dest, addr);
|
||||
|
||||
if (flag_check_memory_usage)
|
||||
emit_library_call (chkr_set_right_libfunc, 1, VOIDmode, 3, dest,
|
||||
ptr_mode, GEN_INT (GET_MODE_SIZE (ptr_mode)),
|
||||
emit_library_call (chkr_set_right_libfunc, 1, VOIDmode, 3,
|
||||
dest, ptr_mode,
|
||||
GEN_INT (GET_MODE_SIZE (ptr_mode)),
|
||||
TYPE_MODE (sizetype),
|
||||
GEN_INT (MEMORY_USE_RW), QImode);
|
||||
GEN_INT (MEMORY_USE_RW),
|
||||
TYPE_MODE (integer_type_node));
|
||||
|
||||
/* Store the argsize as the __va_offset member. */
|
||||
dest = change_address (block, TYPE_MODE (integer_type_node),
|
||||
|
@ -1765,12 +1766,13 @@ alpha_builtin_saveregs (arglist)
|
|||
emit_move_insn (dest, argsize);
|
||||
|
||||
if (flag_check_memory_usage)
|
||||
emit_library_call (chkr_set_right_libfunc, 1, VOIDmode, 3, dest,
|
||||
ptr_mode,
|
||||
emit_library_call (chkr_set_right_libfunc, 1, VOIDmode, 3,
|
||||
dest, ptr_mode,
|
||||
GEN_INT (GET_MODE_SIZE
|
||||
(TYPE_MODE (integer_type_node))),
|
||||
TYPE_MODE (sizetype),
|
||||
GEN_INT (MEMORY_USE_RW), QImode);
|
||||
GEN_INT (MEMORY_USE_RW),
|
||||
TYPE_MODE (integer_type_node));
|
||||
|
||||
/* Return the address of the va_list constructor, but don't put it in a
|
||||
register. Doing so would fail when not optimizing and produce worse
|
||||
|
|
|
@ -747,8 +747,9 @@ enum reg_class { NO_REGS, GENERAL_REGS, FLOAT_REGS, ALL_REGS,
|
|||
&& (GET_CODE (SUBREG_REG (OUT)) == MEM \
|
||||
|| (GET_CODE (SUBREG_REG (OUT)) == REG \
|
||||
&& REGNO (SUBREG_REG (OUT)) >= FIRST_PSEUDO_REGISTER)))) \
|
||||
&& ((((MODE) == HImode || (MODE) == QImode) && ! TARGET_BWX \
|
||||
|| ((MODE) == SImode && (CLASS) == FLOAT_REGS)))) \
|
||||
&& ((((MODE) == HImode || (MODE) == QImode) \
|
||||
&& (! TARGET_BWX || (CLASS) == FLOAT_REGS)) \
|
||||
|| ((MODE) == SImode && (CLASS) == FLOAT_REGS))) \
|
||||
? GENERAL_REGS \
|
||||
: ((CLASS) == FLOAT_REGS && GET_CODE (OUT) == MEM \
|
||||
&& GET_CODE (XEXP (OUT, 0)) == AND) ? GENERAL_REGS \
|
||||
|
@ -911,8 +912,9 @@ enum reg_class { NO_REGS, GENERAL_REGS, FLOAT_REGS, ALL_REGS,
|
|||
|
||||
#define FUNCTION_VALUE(VALTYPE, FUNC) \
|
||||
gen_rtx (REG, \
|
||||
(INTEGRAL_TYPE_P (VALTYPE) \
|
||||
&& TYPE_PRECISION (VALTYPE) < BITS_PER_WORD) \
|
||||
((INTEGRAL_TYPE_P (VALTYPE) \
|
||||
&& TYPE_PRECISION (VALTYPE) < BITS_PER_WORD) \
|
||||
|| POINTER_TYPE_P (VALTYPE)) \
|
||||
? word_mode : TYPE_MODE (VALTYPE), \
|
||||
((TARGET_FPREGS \
|
||||
&& (TREE_CODE (VALTYPE) == REAL_TYPE \
|
||||
|
@ -2278,7 +2280,7 @@ do { \
|
|||
#else
|
||||
/* In OSF/1 v3.2c, the assembler by default does not output file names which
|
||||
causes mips-tfile to fail. Passing -g to the assembler fixes this problem.
|
||||
??? Stricly speaking, we only need -g if the user specifies -g. Passing
|
||||
??? Strictly speaking, we need -g only if the user specifies -g. Passing
|
||||
it always means that we get slightly larger than necessary object files
|
||||
if the user does not specify -g. If we don't pass -g, then mips-tfile
|
||||
will need to be fixed to work in this case. Pass -O0 since some
|
||||
|
|
|
@ -37,7 +37,7 @@
|
|||
(const_string "iadd"))
|
||||
|
||||
;; The TRAP_TYPE attribute marks instructions that may generate traps
|
||||
;; (which are imprecise and may need a trapb if software complention
|
||||
;; (which are imprecise and may need a trapb if software completion
|
||||
;; is desired).
|
||||
(define_attr "trap" "no,yes" (const_string "no"))
|
||||
|
||||
|
|
|
@ -20,10 +20,10 @@ the Free Software Foundation, 59 Temple Place - Suite 330,
|
|||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
/* This is used on Alpha platforms that use the ELF format.
|
||||
Currently only Linux uses this. */
|
||||
Currently only GNU/Linux uses this. */
|
||||
|
||||
#undef TARGET_VERSION
|
||||
#define TARGET_VERSION fprintf (stderr, " (Alpha Linux/ELF)");
|
||||
#define TARGET_VERSION fprintf (stderr, " (Alpha GNU/Linux with ELF)");
|
||||
|
||||
#undef OBJECT_FORMAT_COFF
|
||||
#undef EXTENDED_COFF
|
||||
|
@ -489,8 +489,8 @@ do { \
|
|||
#undef PREFERRED_DEBUGGING_TYPE
|
||||
#define PREFERRED_DEBUGGING_TYPE DBX_DEBUG
|
||||
|
||||
/* Provide a STARTFILE_SPEC appropriate for Linux. Here we add
|
||||
the Linux magical crtbegin.o file (see crtstuff.c) which
|
||||
/* Provide a STARTFILE_SPEC appropriate for GNU/Linux. Here we add
|
||||
the GNU/Linux magical crtbegin.o file (see crtstuff.c) which
|
||||
provides part of the support for getting C++ file-scope static
|
||||
object constructed before entering `main'. */
|
||||
|
||||
|
@ -500,11 +500,11 @@ do { \
|
|||
%{pg:gcrt1.o%s} %{!pg:%{p:gcrt1.o%s} %{!p:crt1.o%s}}}\
|
||||
crti.o%s crtbegin.o%s"
|
||||
|
||||
/* Provide a ENDFILE_SPEC appropriate for Linux. Here we tack on
|
||||
the Linux magical crtend.o file (see crtstuff.c) which
|
||||
/* Provide a ENDFILE_SPEC appropriate for GNU/Linux. Here we tack on
|
||||
the GNU/Linux magical crtend.o file (see crtstuff.c) which
|
||||
provides part of the support for getting C++ file-scope static
|
||||
object constructed before entering `main', followed by a normal
|
||||
Linux "finalizer" file, `crtn.o'. */
|
||||
GNU/Linux "finalizer" file, `crtn.o'. */
|
||||
|
||||
#undef ENDFILE_SPEC
|
||||
#define ENDFILE_SPEC \
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/* Definitions of target machine for GNU compiler, for Alpha Linux,
|
||||
using ECOFF.
|
||||
/* Definitions of target machine for GNU compiler, for Alpha Linux-based GNU
|
||||
systems using ECOFF.
|
||||
Copyright (C) 1996, 1997 Free Software Foundation, Inc.
|
||||
Contributed by Bob Manson.
|
||||
|
||||
|
@ -23,7 +23,7 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
|
|||
#define TARGET_DEFAULT (3 | MASK_GAS)
|
||||
|
||||
#undef TARGET_VERSION
|
||||
#define TARGET_VERSION fprintf (stderr, " (Linux/Alpha)");
|
||||
#define TARGET_VERSION fprintf (stderr, " (GNU/Linux/Alpha)");
|
||||
|
||||
#undef CPP_PREDEFINES
|
||||
#define CPP_PREDEFINES "\
|
||||
|
@ -80,8 +80,7 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
|
|||
range and so the target is in range of something on the stack.
|
||||
Omitting the hint saves a bogus branch-prediction cache line load.
|
||||
|
||||
Linux always has an executable stack -- no need for a system call.
|
||||
*/
|
||||
GNU/Linux always has an executable stack -- no need for a system call. */
|
||||
|
||||
#undef INITIALIZE_TRAMPOLINE
|
||||
#define INITIALIZE_TRAMPOLINE(TRAMP, FNADDR, CXT) \
|
||||
|
|
|
@ -89,10 +89,7 @@ Boston, MA 02111-1307, USA. */
|
|||
#define POINTER_SIZE 32
|
||||
#define POINTERS_EXTEND_UNSIGNED 0
|
||||
|
||||
/* No data type wants to be aligned rounder than this. */
|
||||
#undef BIGGEST_ALIGNMENT
|
||||
#define BIGGEST_ALIGNMENT 128 /* X Complex */
|
||||
#define MAX_OFILE_ALIGNMENT 524288 /* 8 x 2^16 by DEC Test CD40VRA */
|
||||
#define MAX_OFILE_ALIGNMENT 524288 /* 8 x 2^16 by DEC Ada Test CD40VRA */
|
||||
|
||||
#undef FIXED_REGISTERS
|
||||
#define FIXED_REGISTERS \
|
||||
|
@ -213,13 +210,6 @@ extern struct rtx_def *alpha_arg_info_reg_val ();
|
|||
+ ALPHA_ARG_SIZE (MODE, TYPE, NAMED) \
|
||||
? 6 - (CUM).num_args : 0)
|
||||
|
||||
#undef ENCODE_SECTION_INFO
|
||||
#define ENCODE_SECTION_INFO(DECL) \
|
||||
do { \
|
||||
if (TREE_CODE (DECL) == FUNCTION_DECL && ! TREE_PUBLIC (DECL)) \
|
||||
SYMBOL_REF_FLAG (XEXP (DECL_RTL (DECL), 0)) = 1; \
|
||||
} while (0)
|
||||
|
||||
/* Perform any needed actions needed for a function that is receiving a
|
||||
variable number of arguments.
|
||||
|
||||
|
@ -457,28 +447,11 @@ do { \
|
|||
sprintf ((OUTPUT), "%s___%d", (NAME), (LABELNO)))
|
||||
|
||||
#undef ASM_SPEC
|
||||
#define ASM_SPEC "-nocpp %{pg}"
|
||||
|
||||
#undef ASM_FINAL_SPEC
|
||||
|
||||
#define OPTIMIZATION_OPTIONS \
|
||||
{ \
|
||||
write_symbols = PREFERRED_DEBUGGING_TYPE; \
|
||||
debug_info_level = (enum debug_info_level) 2; \
|
||||
}
|
||||
|
||||
#undef OVERRIDE_OPTIONS
|
||||
#define OVERRIDE_OPTIONS \
|
||||
{ \
|
||||
if (write_symbols == NO_DEBUG) \
|
||||
debug_info_level = (enum debug_info_level) 0; \
|
||||
override_options (); \
|
||||
}
|
||||
|
||||
#undef LINK_SPEC
|
||||
#define LINK_SPEC "%{g3:-g3} %{g0:-g0} %{shared:-shared} %{v:-v}"
|
||||
|
||||
#undef STARTFILE_SPEC
|
||||
#define ASM_SPEC "-nocpp %{pg}"
|
||||
#define LINK_SPEC "%{g3:-g3} %{g0:-g0} %{shared:-shared} %{v:-v}"
|
||||
|
||||
/* Define the names of the division and modulus functions. */
|
||||
#define DIVSI3_LIBCALL "OTS$DIV_I"
|
||||
|
|
|
@ -71,14 +71,6 @@ extern void *malloc (), *realloc (), *calloc ();
|
|||
#include "string.h"
|
||||
#endif
|
||||
|
||||
/* OSF/1 has vprintf. */
|
||||
|
||||
#define HAVE_VPRINTF
|
||||
|
||||
/* OSF/1 has putenv. */
|
||||
|
||||
#define HAVE_PUTENV
|
||||
|
||||
/* OSF/1 is POSIX.1 compliant. */
|
||||
|
||||
#define POSIX
|
||||
|
|
|
@ -1118,7 +1118,7 @@ arc_output_function_prologue (file, size)
|
|||
if (size == 0 && gmask)
|
||||
abort ();
|
||||
|
||||
/* Allocate space for register argumenets if this is a variadic function. */
|
||||
/* Allocate space for register arguments if this is a variadic function. */
|
||||
if (current_frame_info.pretend_size != 0)
|
||||
fprintf (file, "\tsub %s,%s,%d\n",
|
||||
sp_str, sp_str, current_frame_info.pretend_size);
|
||||
|
@ -1565,7 +1565,7 @@ arc_print_operand (file, x, code)
|
|||
switch (code)
|
||||
{
|
||||
case '#' :
|
||||
/* Conditional brances. For now these are equivalent. */
|
||||
/* Conditional branches. For now these are equivalent. */
|
||||
case '*' :
|
||||
/* Unconditional branches. Output the appropriate delay slot suffix. */
|
||||
if (!final_sequence || XVECLEN (final_sequence, 0) == 1)
|
||||
|
@ -1971,7 +1971,7 @@ arc_final_prescan_insn (insn, opvec, noperands)
|
|||
if (GET_CODE (insn) != JUMP_INSN)
|
||||
return;
|
||||
|
||||
/* This jump might be paralled with a clobber of the condition codes,
|
||||
/* This jump might be paralleled with a clobber of the condition codes,
|
||||
the jump should always come first. */
|
||||
if (GET_CODE (body) == PARALLEL && XVECLEN (body, 0) > 0)
|
||||
body = XVECEXP (body, 0, 0);
|
||||
|
@ -2161,7 +2161,7 @@ arc_final_prescan_insn (insn, opvec, noperands)
|
|||
|
||||
/* Restore recog_operand. Getting the attributes of other insns can
|
||||
destroy this array, but final.c assumes that it remains intact
|
||||
accross this call; since the insn has been recognized already we
|
||||
across this call; since the insn has been recognized already we
|
||||
call insn_extract direct. */
|
||||
insn_extract (insn);
|
||||
}
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/* Output routines for GCC for ARM/RISCiX.
|
||||
Copyright (C) 1991, 93, 94, 95, 96, 1997 Free Software Foundation, Inc.
|
||||
Contributed by Pieter `Tiggr' Schoenmakers (rcpieter@win.tue.nl)
|
||||
and Martin Simmons (@harleqn.co.uk).
|
||||
and Martin Simmons (@harleqn.co.uk).
|
||||
More major hacks by Richard Earnshaw (rwe11@cl.cam.ac.uk)
|
||||
|
||||
This file is part of GNU CC.
|
||||
|
@ -176,7 +176,7 @@ static struct processors all_procs[] =
|
|||
{"arm600", PROCESSOR_ARM6, FL_CO_PROC | FL_MODE32 | FL_MODE26},
|
||||
{"arm610", PROCESSOR_ARM6, FL_MODE32 | FL_MODE26},
|
||||
{"arm7", PROCESSOR_ARM7, FL_CO_PROC | FL_MODE32 | FL_MODE26},
|
||||
/* arm7m doesn't exist on its own, only in conjuction with D, (and I), but
|
||||
/* arm7m doesn't exist on its own, only in conjunction with D, (and I), but
|
||||
those don't alter the code, so it is sometimes known as the arm7m */
|
||||
{"arm7m", PROCESSOR_ARM7, (FL_CO_PROC | FL_FAST_MULT | FL_MODE32
|
||||
| FL_MODE26)},
|
||||
|
@ -1302,10 +1302,12 @@ arm_finalize_pic ()
|
|||
l1 = gen_label_rtx ();
|
||||
|
||||
global_offset_table = gen_rtx (SYMBOL_REF, Pmode, "_GLOBAL_OFFSET_TABLE_");
|
||||
/* The PC contains 'dot'+8, but the label L1 is on the next
|
||||
instruction, so the offset is only 'dot'+4. */
|
||||
pic_tmp = gen_rtx (CONST, VOIDmode,
|
||||
gen_rtx (PLUS, Pmode,
|
||||
gen_rtx (LABEL_REF, VOIDmode, l1),
|
||||
GEN_INT (8)));
|
||||
GEN_INT (4)));
|
||||
pic_tmp2 = gen_rtx (CONST, VOIDmode,
|
||||
gen_rtx (PLUS, Pmode,
|
||||
global_offset_table,
|
||||
|
@ -3050,7 +3052,7 @@ gen_rotated_half_load (memref)
|
|||
base = XEXP (base, 0);
|
||||
}
|
||||
|
||||
/* If we aren't allowed to generate unalligned addresses, then fail. */
|
||||
/* If we aren't allowed to generate unaligned addresses, then fail. */
|
||||
if (TARGET_SHORT_BY_BYTES
|
||||
&& ((BYTES_BIG_ENDIAN ? 1 : 0) ^ ((offset & 2) == 0)))
|
||||
return NULL;
|
||||
|
@ -3075,7 +3077,7 @@ select_dominance_cc_mode (op, x, y, cond_or)
|
|||
|
||||
/* Currently we will probably get the wrong result if the individual
|
||||
comparisons are not simple. This also ensures that it is safe to
|
||||
reverse a comparions if necessary. */
|
||||
reverse a comparison if necessary. */
|
||||
if ((arm_select_cc_mode (cond1 = GET_CODE (x), XEXP (x, 0), XEXP (x, 1))
|
||||
!= CCmode)
|
||||
|| (arm_select_cc_mode (cond2 = GET_CODE (y), XEXP (y, 0), XEXP (y, 1))
|
||||
|
@ -3191,10 +3193,10 @@ arm_select_cc_mode (op, x, y)
|
|||
|| GET_CODE (x) == ROTATERT))
|
||||
return CC_SWPmode;
|
||||
|
||||
/* This is a special case, that is used by combine to alow a
|
||||
comarison of a shifted byte load to be split into a zero-extend
|
||||
/* This is a special case that is used by combine to allow a
|
||||
comparison of a shifted byte load to be split into a zero-extend
|
||||
followed by a comparison of the shifted integer (only valid for
|
||||
equalities and unsigned inequalites. */
|
||||
equalities and unsigned inequalities). */
|
||||
if (GET_MODE (x) == SImode
|
||||
&& GET_CODE (x) == ASHIFT
|
||||
&& GET_CODE (XEXP (x, 1)) == CONST_INT && INTVAL (XEXP (x, 1)) == 24
|
||||
|
@ -5940,7 +5942,7 @@ aof_data_section ()
|
|||
|
||||
/* The AOF assembler is religiously strict about declarations of
|
||||
imported and exported symbols, so that it is impossible to declare
|
||||
a function as imported near the begining of the file, and then to
|
||||
a function as imported near the beginning of the file, and then to
|
||||
export it later on. It is, however, possible to delay the decision
|
||||
until all the functions in the file have been compiled. To get
|
||||
around this, we maintain a list of the imports and exports, and
|
||||
|
|
|
@ -41,6 +41,9 @@ Boston, MA 02111-1307, USA. */
|
|||
-D__cdecl=__attribute__((__cdecl__)) \
|
||||
-Asystem(winnt) -Acpu(i386) -Amachine(i386)"
|
||||
|
||||
#undef CPP_SPEC
|
||||
#define CPP_SPEC "-remap %(cpp_cpu) %[cpp_cpu] %{posix:-D_POSIX_SOURCE}"
|
||||
|
||||
/* We have to dynamic link to get to the system DLLs. All of libc, libm and
|
||||
the Unix stuff is in cygwin.dll. The import library is called
|
||||
'libcygwin.a'. For Windows applications, include more libraries, but
|
||||
|
|
|
@ -35,7 +35,6 @@ Boston, MA 02111-1307, USA. */
|
|||
#include "flags.h"
|
||||
#include "except.h"
|
||||
#include "function.h"
|
||||
#include "dwarf2.h"
|
||||
|
||||
#ifdef EXTRA_CONSTRAINT
|
||||
/* If EXTRA_CONSTRAINT is defined, then the 'S'
|
||||
|
@ -4841,7 +4840,7 @@ reg_mentioned_in_mem (reg, rtl)
|
|||
return 0;
|
||||
}
|
||||
|
||||
/* Output the approprate insns for doing strlen if not just doing repnz; scasb
|
||||
/* Output the appropriate insns for doing strlen if not just doing repnz; scasb
|
||||
|
||||
operands[0] = result, initialized with the startaddress
|
||||
operands[1] = alignment of the address.
|
||||
|
@ -4896,7 +4895,7 @@ output_strlen_unroll (operands)
|
|||
therefore use andl rather than andb. */
|
||||
output_asm_insn (AS2 (and%L1,%4,%1), xops);
|
||||
|
||||
/* Is aligned to 4-byte adress when zero */
|
||||
/* Is aligned to 4-byte address when zero */
|
||||
output_asm_insn (AS1 (je,%l8), xops);
|
||||
|
||||
/* Side-effect even Parity when %eax == 3 */
|
||||
|
@ -4916,7 +4915,7 @@ output_strlen_unroll (operands)
|
|||
check if is aligned to 4 - byte. */
|
||||
output_asm_insn (AS2 (and%L1,%3,%1), xops);
|
||||
|
||||
/* Is aligned to 4-byte adress when zero */
|
||||
/* Is aligned to 4-byte address when zero */
|
||||
output_asm_insn (AS1 (je,%l8), xops);
|
||||
}
|
||||
|
||||
|
|
|
@ -207,6 +207,8 @@ extern int target_flags;
|
|||
{ "no-debug-arg", -MASK_DEBUG_ARG }, \
|
||||
{ "stack-arg-probe", MASK_STACK_PROBE }, \
|
||||
{ "no-stack-arg-probe", -MASK_STACK_PROBE }, \
|
||||
{ "windows", 0 }, \
|
||||
{ "dll", 0 }, \
|
||||
SUBTARGET_SWITCHES \
|
||||
{ "", MASK_SCHEDULE_PROLOGUE | TARGET_DEFAULT}}
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* Definitions for rtems targetting an Intel i386 using coff.
|
||||
/* Definitions for rtems targeting an Intel i386 using coff.
|
||||
Copyright (C) 1996, 1997 Free Software Foundation, Inc.
|
||||
Contributed by Joel Sherrill (joel@OARcorp.com).
|
||||
|
||||
|
|
|
@ -289,8 +289,8 @@ do { \
|
|||
NAME whose size is SIZE bytes and alignment is ALIGN bytes.
|
||||
Try to use asm_output_aligned_bss to implement this macro. */
|
||||
|
||||
#define ASM_OUTPUT_ALIGNED_BSS(FILE, DECL, NAME, SIZE, ALIGN) \
|
||||
asm_output_aligned_bss (FILE, DECL, NAME, SIZE, ALIGN)
|
||||
#define ASM_OUTPUT_ALIGNED_BSS(FILE, DECL, NAME, SIZE, ALIGN) \
|
||||
asm_output_aligned_bss (FILE, DECL, NAME, SIZE, ALIGN)
|
||||
|
||||
#undef ESCAPES
|
||||
#define ESCAPES \
|
||||
|
@ -694,7 +694,7 @@ dtors_section () \
|
|||
#undef NO_IMPLICIT_EXTERN_C
|
||||
#define NO_IMPLICIT_EXTERN_C 1
|
||||
|
||||
/* JKJ FIXME - examine the rammifications of RETURN_IN_MEMORY and
|
||||
/* JKJ FIXME - examine the ramifications of RETURN_IN_MEMORY and
|
||||
RETURN_POPS_ARGS */
|
||||
|
||||
#undef RETURN_POPS_ARGS
|
||||
|
|
|
@ -1,8 +1,5 @@
|
|||
#include "i386/xm-i386.h"
|
||||
|
||||
/* Inhibit cccp.c's definition of putenv. */
|
||||
#define HAVE_PUTENV
|
||||
|
||||
/* Use semicolons to separate elements of a path. */
|
||||
#define PATH_SEPARATOR ';'
|
||||
|
||||
|
|
|
@ -33,20 +33,13 @@ Boston, MA 02111-1307, USA. */
|
|||
#define USE_PROTOTYPES 1
|
||||
#endif
|
||||
|
||||
#ifndef HAVE_VPRINTF
|
||||
#define HAVE_VPRINTF 1
|
||||
#endif
|
||||
|
||||
#define NO_SYS_SIGLIST 1
|
||||
#define bcmp(a,b,c) memcmp (a,b,c)
|
||||
#define bcopy(a,b,c) memcpy (b,a,c)
|
||||
#define bzero(a,b) memset (a,0,b)
|
||||
#define index strchr
|
||||
#define rindex strrchr
|
||||
#define kill(a,b) raise(b)
|
||||
#define link(a,b) -1
|
||||
#define environ _environ
|
||||
|
||||
/* Even though we support "/", allow "\" since everybody tests both. */
|
||||
#define DIR_SEPARATOR '\\'
|
||||
#define EXECUTABLE_SUFFIX ".exe"
|
||||
|
||||
#undef PATH_SEPARATOR
|
||||
#define PATH_SEPARATOR ';'
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* Definitions for rtems targetting an Intel i960.
|
||||
/* Definitions for rtems targeting an Intel i960.
|
||||
Copyright (C) 1996, 1997 Free Software Foundation, Inc.
|
||||
Contributed by Joel Sherrill (joel@OARcorp.com).
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* Definitions for Linux with ELF format
|
||||
/* Definitions for Linux-based GNU systems with ELF format
|
||||
Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
|
||||
Contributed by Eric Youngdale.
|
||||
Modified for stabs-in-ELF by H.J. Lu.
|
||||
|
@ -26,7 +26,7 @@ Boston, MA 02111-1307, USA. */
|
|||
#undef HAVE_ATEXIT
|
||||
#define HAVE_ATEXIT
|
||||
|
||||
/* Linux uses ctype from glibc.a. I am not sure how complete it is.
|
||||
/* GNU/Linux uses ctype from glibc.a. I am not sure how complete it is.
|
||||
For now, we play safe. It may change later. */
|
||||
|
||||
#if 0
|
||||
|
@ -59,8 +59,8 @@ Boston, MA 02111-1307, USA. */
|
|||
fprintf (FILE, "\t.version\t\"01.01\"\n"); \
|
||||
} while (0)
|
||||
|
||||
/* Provide a STARTFILE_SPEC appropriate for Linux. Here we add
|
||||
the Linux magical crtbegin.o file (see crtstuff.c) which
|
||||
/* Provide a STARTFILE_SPEC appropriate for GNU/Linux. Here we add
|
||||
the GNU/Linux magical crtbegin.o file (see crtstuff.c) which
|
||||
provides part of the support for getting C++ file-scope static
|
||||
object constructed before entering `main'. */
|
||||
|
||||
|
@ -72,11 +72,11 @@ Boston, MA 02111-1307, USA. */
|
|||
%{!profile:crt1.o%s}}}} \
|
||||
crti.o%s %{!shared:crtbegin.o%s} %{shared:crtbeginS.o%s}"
|
||||
|
||||
/* Provide a ENDFILE_SPEC appropriate for Linux. Here we tack on
|
||||
the Linux magical crtend.o file (see crtstuff.c) which
|
||||
/* Provide a ENDFILE_SPEC appropriate for GNU/Linux. Here we tack on
|
||||
the GNU/Linux magical crtend.o file (see crtstuff.c) which
|
||||
provides part of the support for getting C++ file-scope static
|
||||
object constructed before entering `main', followed by a normal
|
||||
Linux "finalizer" file, `crtn.o'. */
|
||||
GNU/Linux "finalizer" file, `crtn.o'. */
|
||||
|
||||
#undef ENDFILE_SPEC
|
||||
#define ENDFILE_SPEC \
|
||||
|
@ -94,9 +94,8 @@ Boston, MA 02111-1307, USA. */
|
|||
|
||||
#undef LIB_SPEC
|
||||
/* We no longer link with libc_p.a or libg.a by default. If you
|
||||
* want to profile or debug the Linux C library, please add
|
||||
* -profile or -ggdb to LDFLAGS at the link time, respectively.
|
||||
*/
|
||||
want to profile or debug the GNU/Linux C library, please add
|
||||
-profile or -ggdb to LDFLAGS at the link time, respectively. */
|
||||
#if 1
|
||||
#ifdef USE_GNULIBC_1
|
||||
#define LIB_SPEC \
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
/* Definitions for Motorola 68k running Linux with ELF format.
|
||||
/* Definitions for Motorola 68k running Linux-based GNU systems with
|
||||
ELF format.
|
||||
Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU CC.
|
||||
|
@ -30,7 +31,7 @@ Boston, MA 02111-1307, USA. */
|
|||
#include <linux.h> /* some common stuff */
|
||||
|
||||
#undef TARGET_VERSION
|
||||
#define TARGET_VERSION fprintf (stderr, " (68k Linux/ELF)");
|
||||
#define TARGET_VERSION fprintf (stderr, " (68k GNU/Linux with ELF)");
|
||||
|
||||
/* 68020 with 68881 */
|
||||
#define TARGET_DEFAULT (MASK_BITFIELD|MASK_68881|MASK_68020)
|
||||
|
@ -135,7 +136,7 @@ Boston, MA 02111-1307, USA. */
|
|||
"%{v:-V} %{Qy:} %{!Qn:-Qy} %{n} %{T} %{Ym,*} %{Yd,*} %{Wa,*:%*} \
|
||||
%{m68040} %{m68060:-m68040}"
|
||||
|
||||
/* Provide a LINK_SPEC appropriate for Linux. Here we provide support
|
||||
/* Provide a LINK_SPEC appropriate for GNU/Linux. Here we provide support
|
||||
for the special GCC options -static and -shared, which allow us to
|
||||
link things in one of these three modes by applying the appropriate
|
||||
combinations of options at link-time. We like to support here for
|
||||
|
|
|
@ -32,7 +32,7 @@ Boston, MA 02111-1307, USA. */
|
|||
#include "insn-flags.h"
|
||||
#include "output.h"
|
||||
#include "insn-attr.h"
|
||||
#include "dwarf2.h"
|
||||
#include "tree.h"
|
||||
|
||||
/* Needed for use_return_insn. */
|
||||
#include "flags.h"
|
||||
|
@ -1313,6 +1313,8 @@ legitimize_pic_address (orig, mode, reg)
|
|||
gen_rtx (PLUS, Pmode,
|
||||
pic_offset_table_rtx, orig));
|
||||
current_function_uses_pic_offset_table = 1;
|
||||
if (reload_in_progress)
|
||||
regs_ever_live[PIC_OFFSET_TABLE_REGNUM] = 1;
|
||||
RTX_UNCHANGING_P (pic_ref) = 1;
|
||||
emit_move_insn (reg, pic_ref);
|
||||
return reg;
|
||||
|
|
|
@ -280,8 +280,8 @@ extern int target_flags;
|
|||
|
||||
/* No data type wants to be aligned rounder than this.
|
||||
Most published ABIs say that ints should be aligned on 16 bit
|
||||
boundries, but cpus with 32 bit busses get better performance
|
||||
aligned on 32 bit boundries. Coldfires without a misalignment
|
||||
boundaries, but cpus with 32 bit busses get better performance
|
||||
aligned on 32 bit boundaries. Coldfires without a misalignment
|
||||
module require 32 bit alignment. */
|
||||
#define BIGGEST_ALIGNMENT (TARGET_ALIGN_INT ? 32 : 16)
|
||||
|
||||
|
@ -378,7 +378,7 @@ extern int target_flags;
|
|||
and are not available for the register allocator.
|
||||
On the 68000, only the stack pointer is such. */
|
||||
|
||||
/* fpa0 is also reserved so that it can be used to move shit back and
|
||||
/* fpa0 is also reserved so that it can be used to move data back and
|
||||
forth between high fpa regs and everything else. */
|
||||
|
||||
#define FIXED_REGISTERS \
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* Definitions for rtems targetting a Motorola m68k using coff.
|
||||
/* Definitions for rtems targeting a Motorola m68k using coff.
|
||||
Copyright (C) 1996, 1997 Free Software Foundation, Inc.
|
||||
Contributed by Joel Sherrill (joel@OARcorp.com).
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/* Configuration for GNU C-compiler for Motorola 68000 family.
|
||||
SysV68 Motorola 3300 Delta Series
|
||||
Copyright (C) 1994, 1995, 1996 Free Software Foundation, Inc.
|
||||
Copyright (C) 1994, 1995, 1996, 1997 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU CC.
|
||||
|
||||
|
@ -24,13 +24,6 @@ Boston, MA 02111-1307, USA. */
|
|||
|
||||
#include "m68k/xm-m68k.h"
|
||||
|
||||
#define bcopy(a,b,c) memcpy (b,a,c)
|
||||
#define bzero(a,b) memset (a,0,b)
|
||||
#define bcmp(a,b,c) memcmp (a,b,c)
|
||||
|
||||
#define rindex strrchr
|
||||
#define index strchr
|
||||
|
||||
#define NO_SYS_SIGLIST
|
||||
|
||||
/* do not use alloca from -lPW with cc, because function epilogues use %sp */
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/* Definitions of target machine for GNU compiler.
|
||||
Motorola m88100 running DG/UX.
|
||||
Copyright (C) 1988, 92, 93, 94, 95, 1996 Free Software Foundation, Inc.
|
||||
Copyright (C) 1988, 92, 93, 94, 95, 96, 1997 Free Software Foundation, Inc.
|
||||
Contributed by Michael Tiemann (tiemann@mcc.com)
|
||||
Currently maintained by (gcc@dg-rtp.dg.com)
|
||||
|
||||
|
@ -30,7 +30,7 @@ Boston, MA 02111-1307, USA. */
|
|||
(TARGET_SVR4 ? DWARF_DEBUG : SDB_DEBUG)
|
||||
|
||||
#ifndef VERSION_INFO2
|
||||
#define VERSION_INFO2 "$Revision: 1.1.1.1 $"
|
||||
#define VERSION_INFO2 "$Revision: 1.3 $"
|
||||
#endif
|
||||
#ifndef NO_BUGS
|
||||
#define AS_BUG_IMMEDIATE_LABEL
|
||||
|
@ -134,6 +134,8 @@ Boston, MA 02111-1307, USA. */
|
|||
{ "startfile_default", STARTFILE_DEFAULT_SPEC }, \
|
||||
{ "startfile_crtbegin", STARTFILE_CRTBEGIN_SPEC }
|
||||
|
||||
/* Keep this left justified, no white space is allowed between
|
||||
the arguments to the -Wc option */
|
||||
#define ASM_CPU_SPEC "\
|
||||
%{v:-V}\
|
||||
%{g:\
|
||||
|
|
|
@ -2650,13 +2650,15 @@ m88k_builtin_saveregs (arglist)
|
|||
emit_library_call (chkr_set_right_libfunc, 1, VOIDmode, 3,
|
||||
block, ptr_mode,
|
||||
GEN_INT (3 * UNITS_PER_WORD), TYPE_MODE (sizetype),
|
||||
GEN_INT (MEMORY_USE_RW), QImode);
|
||||
GEN_INT (MEMORY_USE_RW),
|
||||
TYPE_MODE (integer_type_node));
|
||||
if (fixed < 8)
|
||||
emit_library_call (chkr_set_right_libfunc, 1, VOIDmode, 3,
|
||||
dest, ptr_mode,
|
||||
GEN_INT (UNITS_PER_WORD * (8 - fixed)),
|
||||
TYPE_MODE (sizetype),
|
||||
GEN_INT (MEMORY_USE_RW), QImode);
|
||||
GEN_INT (MEMORY_USE_RW),
|
||||
TYPE_MODE (integer_type_node));
|
||||
}
|
||||
|
||||
/* Return the address of the va_list constructor, but don't put it in a
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/* Configuration for GNU compiler.
|
||||
Motorola m88100 in an 88open OCS/BCS environment.
|
||||
Copyright (C) 1988, 1989, 1990, 1991, 1993 Free Software Foundation, Inc.
|
||||
Copyright (C) 1988, 89, 90, 91, 93, 1997 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU CC.
|
||||
|
||||
|
@ -37,14 +37,6 @@ Boston, MA 02111-1307, USA. */
|
|||
#define SUCCESS_EXIT_CODE 0
|
||||
#define FATAL_EXIT_CODE 33
|
||||
|
||||
/* Use System V memory functions. */
|
||||
#define bcopy(a,b,c) memcpy (b,a,c)
|
||||
#define bzero(a,b) memset (a,0,b)
|
||||
#define bcmp(a,b,c) memcmp (a,b,c)
|
||||
|
||||
#define rindex strrchr
|
||||
#define index strchr
|
||||
|
||||
/* The 88open BCS (and ABI) environment doesn't support BSD features
|
||||
(vfork, getrusage), so use USG. The Omron Luna/88k is BSD though. */
|
||||
#ifndef luna88k
|
||||
|
@ -54,9 +46,6 @@ Boston, MA 02111-1307, USA. */
|
|||
#define NO_SYS_SIGLIST
|
||||
#endif
|
||||
|
||||
/* Define HAVE_VPRINTF if it is available on host system. */
|
||||
#define HAVE_VPRINTF
|
||||
|
||||
/* If not compiled with GNU C, use the C alloca */
|
||||
#ifndef __GNUC__
|
||||
#define USE_C_ALLOCA
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/* Definitions of target machine for GNU compiler. Iris version 6.
|
||||
Copyright (C) 1994, 1995, 1996 Free Software Foundation, Inc.
|
||||
Copyright (C) 1994, 1995, 1996, 1997 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU CC.
|
||||
|
||||
|
@ -140,7 +140,7 @@ Boston, MA 02111-1307, USA. */
|
|||
} while (0)
|
||||
|
||||
/* Tell function_prologue in mips.c that we have already output the .ent/.end
|
||||
psuedo-ops. */
|
||||
pseudo-ops. */
|
||||
#define FUNCTION_NAME_ALREADY_DECLARED
|
||||
|
||||
#undef SET_ASM_OP /* Has no equivalent. See ASM_OUTPUT_DEF below. */
|
||||
|
|
|
@ -3687,7 +3687,7 @@ override_options ()
|
|||
}
|
||||
|
||||
/* This optimization requires a linker that can support a R_MIPS_LO16
|
||||
relocation which is not immediately preceeded by a R_MIPS_HI16 relocation.
|
||||
relocation which is not immediately preceded by a R_MIPS_HI16 relocation.
|
||||
GNU ld has this support, but not all other MIPS linkers do, so we enable
|
||||
this optimization only if the user requests it, or if GNU ld is the
|
||||
standard linker for this configuration. */
|
||||
|
|
|
@ -1448,7 +1448,7 @@ do { \
|
|||
|
||||
On the MIPS, all general registers are one word long. Except on
|
||||
the R4000 with the FR bit set, the floating point uses register
|
||||
pairs, with the second register not being allocatable. */
|
||||
pairs, with the second register not being allocable. */
|
||||
|
||||
#define HARD_REGNO_NREGS(REGNO, MODE) \
|
||||
(! FP_REG_P (REGNO) \
|
||||
|
|
|
@ -255,7 +255,7 @@
|
|||
(and (eq_attr "mode" "DI") (eq_attr "cpu" "r5000")))
|
||||
68 68)
|
||||
|
||||
;; The R4300 does *NOT* have a seperate Floating Point Unit, instead
|
||||
;; The R4300 does *NOT* have a separate Floating Point Unit, instead
|
||||
;; the FP hardware is part of the normal ALU circuitry. This means FP
|
||||
;; instructions affect the pipe-line, and no functional unit
|
||||
;; parallelism can occur on R4300 processors. To force GCC into coding
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* Definitions for rtems targetting a MIPS ORION using ecoff.
|
||||
/* Definitions for rtems targeting a MIPS ORION using ecoff.
|
||||
Copyright (C) 1996, 1997 Free Software Foundation, Inc.
|
||||
Contributed by Joel Sherrill (joel@OARcorp.com).
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/* Configuration for GNU C-compiler for MIPS Rx000 family
|
||||
Copyright (C) 1989, 1990, 1991, 1993 Free Software Foundation, Inc.
|
||||
Copyright (C) 1989, 1990, 1991, 1993, 1997 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU CC.
|
||||
|
||||
|
@ -77,8 +77,6 @@ extern char * alloca ();
|
|||
|
||||
/* Say if we have vprintf. BSD Mips targets probably don't have vfprintf. */
|
||||
#if defined(__OSF1__) || defined(__OSF__) || defined(__osf__) || defined(bsd4_4)
|
||||
#define HAVE_VPRINTF
|
||||
#define HAVE_PUTENV
|
||||
|
||||
#else
|
||||
#define NO_STAB_H /* mips doesn't typically have stab.h */
|
||||
|
|
|
@ -896,7 +896,7 @@ secondary_reload_class (class, mode, in, input)
|
|||
&& class == ADDRESS_REGS)
|
||||
return DATA_REGS;
|
||||
|
||||
/* Address register stores which are not PSImode need a scrach register. */
|
||||
/* Address register stores which are not PSImode need a scratch register. */
|
||||
if (! input
|
||||
&& GET_CODE (in) == MEM
|
||||
&& (mode != PSImode)
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
/* Definitions of target machine for GNU compiler.
|
||||
Matsushita MN10200 series
|
||||
/* Definitions of target machine for GNU compiler. Matsushita MN10200 series
|
||||
Copyright (C) 1997 Free Software Foundation, Inc.
|
||||
Contributed by Jeff Law (law@cygnus.com).
|
||||
|
||||
|
@ -954,7 +953,7 @@ do { char dstr[30]; \
|
|||
if ((LOG) != 0) \
|
||||
fprintf (FILE, "\t.align %d\n", (LOG))
|
||||
|
||||
/* We don't have to worry about dbx compatability for the mn10200. */
|
||||
/* We don't have to worry about dbx compatibility for the mn10200. */
|
||||
#define DEFAULT_GDB_EXTENSIONS 1
|
||||
|
||||
/* Use stabs debugging info by default. */
|
||||
|
|
|
@ -30,7 +30,7 @@
|
|||
;; none_0hit - insn does not affect cc but it does modify operand 0
|
||||
;; This attribute is used to keep track of when operand 0 changes.
|
||||
;; See the description of NOTICE_UPDATE_CC for more info.
|
||||
;; set_znv - sets z,n,v to useable values; c is unknown.
|
||||
;; set_znv - sets z,n,v to usable values; c is unknown.
|
||||
;; set_zn - sets z,n to usable values; v,c is unknown.
|
||||
;; compare - compare instruction
|
||||
;; clobber - value of cc is unknown
|
||||
|
@ -1708,7 +1708,7 @@
|
|||
;; a few times, then truncating the value to PSImode.
|
||||
;;
|
||||
;; This first pattern combines the shifting & truncation operations, by
|
||||
;; itself it is a win because the shifts end up occuring in PSImode instead
|
||||
;; itself it is a win because the shifts end up occurring in PSImode instead
|
||||
;; of SImode. However, it has the secondary effect of giving us the
|
||||
;; opportunity to match patterns which allow us to remove the initial
|
||||
;; extension completely, which is a big win.
|
||||
|
|
|
@ -581,7 +581,7 @@ expand_epilogue ()
|
|||
the stack with one instruction.
|
||||
|
||||
?!? Only save registers which are actually used. Reduces
|
||||
stack requireents and is faster. */
|
||||
stack requirements and is faster. */
|
||||
if (regs_ever_live[2] || regs_ever_live[3]
|
||||
|| regs_ever_live[6] || regs_ever_live[7]
|
||||
|| frame_pointer_needed)
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
/* Definitions of target machine for GNU compiler.
|
||||
Matsushita MN10300 series
|
||||
/* Definitions of target machine for GNU compiler. Matsushita MN10300 series
|
||||
Copyright (C) 1996, 1997 Free Software Foundation, Inc.
|
||||
Contributed by Jeff Law (law@cygnus.com).
|
||||
|
||||
|
@ -937,7 +936,7 @@ do { char dstr[30]; \
|
|||
if ((LOG) != 0) \
|
||||
fprintf (FILE, "\t.align %d\n", (LOG))
|
||||
|
||||
/* We don't have to worry about dbx compatability for the mn10300. */
|
||||
/* We don't have to worry about dbx compatibility for the mn10300. */
|
||||
#define DEFAULT_GDB_EXTENSIONS 1
|
||||
|
||||
/* Use stabs debugging info by default. */
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
; GCC machine description for Matsushita MN10300
|
||||
;; GCC machine description for Matsushita MN10300
|
||||
;; Copyright (C) 1996, 1997 Free Software Foundation, Inc.
|
||||
|
||||
;; Contributed by Jeff Law (law@cygnus.com).
|
||||
|
@ -30,8 +30,8 @@
|
|||
;; none_0hit - insn does not affect cc but it does modify operand 0
|
||||
;; This attribute is used to keep track of when operand 0 changes.
|
||||
;; See the description of NOTICE_UPDATE_CC for more info.
|
||||
;; set_znv - insn sets z,n,v to useable values; c is unusable.
|
||||
;; set_zn - insn sets z,n to useable values; v,c are unuseable.
|
||||
;; set_znv - insn sets z,n,v to usable values; c is unusable.
|
||||
;; set_zn - insn sets z,n to usable values; v,c are unusable.
|
||||
;; compare - compare instruction
|
||||
;; invert -- like compare, but flags are inverted.
|
||||
;; clobber - value of cc is unknown
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/* Definitions of target machine for GNU compiler, for HP PA-RISC 1.1
|
||||
Copyright (C) 1995, 1996 Free Software Foundation, Inc.
|
||||
Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
|
||||
Contributed by Tim Moore (moore@defmacro.cs.utah.edu)
|
||||
|
||||
This file is part of GNU CC.
|
||||
|
@ -20,7 +20,7 @@ the Free Software Foundation, 59 Temple Place - Suite 330,
|
|||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
/* We can debug dynamically linked executables on hpux9; we also want
|
||||
derefercing of a NULL pointer to cause a SEGV. */
|
||||
dereferencing of a NULL pointer to cause a SEGV. */
|
||||
#undef LINK_SPEC
|
||||
#if ((TARGET_DEFAULT | TARGET_CPU_DEFAULT) & 1)
|
||||
#define LINK_SPEC \
|
||||
|
|
|
@ -126,17 +126,17 @@ override_options ()
|
|||
|
||||
if (flag_pic && (TARGET_NO_SPACE_REGS || TARGET_FAST_INDIRECT_CALLS))
|
||||
{
|
||||
warning ("PIC code generation is not compatable with fast indirect calls\n");
|
||||
warning ("PIC code generation is not compatible with fast indirect calls\n");
|
||||
}
|
||||
|
||||
if (flag_pic && profile_flag)
|
||||
{
|
||||
warning ("PIC code generation is not compatable with profiling\n");
|
||||
warning ("PIC code generation is not compatible with profiling\n");
|
||||
}
|
||||
|
||||
if (TARGET_SPACE && (flag_pic || profile_flag))
|
||||
{
|
||||
warning ("Out of line entry/exit sequences are not compatable\n");
|
||||
warning ("Out of line entry/exit sequences are not compatible\n");
|
||||
warning ("with PIC or profiling\n");
|
||||
}
|
||||
|
||||
|
@ -1885,7 +1885,7 @@ find_addr_reg (addr)
|
|||
OPERANDS[4] is the size as a CONST_INT
|
||||
OPERANDS[3] is a register for temporary storage.
|
||||
OPERANDS[5] is the alignment safe to use, as a CONST_INT.
|
||||
OPERNADS[6] is another temporary register. */
|
||||
OPERANDS[6] is another temporary register. */
|
||||
|
||||
char *
|
||||
output_block_move (operands, size_is_constant)
|
||||
|
@ -4324,7 +4324,7 @@ hppa_builtin_saveregs (arglist)
|
|||
individually as scalar stores.
|
||||
|
||||
However, other insns may later load from the same addresses for
|
||||
a struture load (passing a struct to a varargs routine).
|
||||
a structure load (passing a struct to a varargs routine).
|
||||
|
||||
The alias code assumes that such aliasing can never happen, so we
|
||||
have to keep memory referencing insns from moving up beyond the
|
||||
|
@ -4335,7 +4335,8 @@ hppa_builtin_saveregs (arglist)
|
|||
emit_library_call (chkr_set_right_libfunc, 1, VOIDmode, 3,
|
||||
dest, ptr_mode,
|
||||
GEN_INT (4 * UNITS_PER_WORD), TYPE_MODE (sizetype),
|
||||
GEN_INT (MEMORY_USE_RW), QImode);
|
||||
GEN_INT (MEMORY_USE_RW),
|
||||
TYPE_MODE (integer_type_node));
|
||||
|
||||
return copy_to_reg (expand_binop (Pmode, add_optab,
|
||||
current_function_internal_arg_pointer,
|
||||
|
@ -6041,7 +6042,7 @@ pa_reorg (insns)
|
|||
continue;
|
||||
|
||||
/* Now generate markers for the beginning and end of the
|
||||
branc table. */
|
||||
branch table. */
|
||||
emit_insn_before (gen_begin_brtab (), insn);
|
||||
emit_insn_after (gen_end_brtab (), insn);
|
||||
}
|
||||
|
@ -6098,7 +6099,7 @@ pa_combine_instructions (insns)
|
|||
|
||||
/* This can get expensive since the basic algorithm is on the
|
||||
order of O(n^2) (or worse). Only do it for -O2 or higher
|
||||
levels of optimizaton. */
|
||||
levels of optimization. */
|
||||
if (optimize < 2)
|
||||
return;
|
||||
|
||||
|
|
|
@ -77,7 +77,7 @@ extern int target_flags;
|
|||
this option will fail miserably if the executable is dynamically linked
|
||||
or uses nested functions!
|
||||
|
||||
This is also used to trigger agressive unscaled index addressing. */
|
||||
This is also used to trigger aggressive unscaled index addressing. */
|
||||
#define TARGET_NO_SPACE_REGS (target_flags & 4)
|
||||
|
||||
/* Allow unconditional jumps in the delay slots of call instructions. */
|
||||
|
@ -118,7 +118,7 @@ extern int target_flags;
|
|||
#define TARGET_FAST_INDIRECT_CALLS (target_flags & 1024)
|
||||
|
||||
/* Generate code with big switch statements to avoid out of range branches
|
||||
occuring within the switch table. */
|
||||
occurring within the switch table. */
|
||||
#define TARGET_BIG_SWITCH (target_flags & 2048)
|
||||
|
||||
/* Macro to define tables used to set the flags.
|
||||
|
@ -281,7 +281,7 @@ extern int target_flags;
|
|||
or "static /usr/lib/X11R5/libX11.sl".
|
||||
|
||||
HPUX 10.20 also has lines like "static branch prediction ..."
|
||||
so we filter that out explcitly.
|
||||
so we filter that out explicitly.
|
||||
|
||||
We also try to bound our search for libraries with marker
|
||||
lines. What a pain. */
|
||||
|
|
|
@ -5082,7 +5082,7 @@
|
|||
/* Must import the magic millicode routine. */
|
||||
output_asm_insn (\".IMPORT $$sh_func_adrs,MILLICODE\", NULL);
|
||||
|
||||
/* This is absolutely fucking amazing.
|
||||
/* This is absolutely amazing.
|
||||
|
||||
First, copy our input parameter into %r29 just in case we don't
|
||||
need to call $$sh_func_adrs. */
|
||||
|
@ -5138,7 +5138,7 @@
|
|||
(const_int 0)))
|
||||
(const_int 32)
|
||||
|
||||
;; PORTABLE_RUTNIME
|
||||
;; PORTABLE_RUNTIME
|
||||
(ne (symbol_ref "TARGET_PORTABLE_RUNTIME")
|
||||
(const_int 0))
|
||||
(const_int 40)]
|
||||
|
|
|
@ -49,7 +49,7 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
|
|||
#define LINK_OS_DEFAULT_SPEC "%(link_os_linux)"
|
||||
|
||||
#undef TARGET_VERSION
|
||||
#define TARGET_VERSION fprintf (stderr, " (PowerPC Linux)");
|
||||
#define TARGET_VERSION fprintf (stderr, " (PowerPC GNU/Linux)");
|
||||
|
||||
/* Define this macro as a C expression for the initializer of an
|
||||
array of string to tell the driver program which options are
|
||||
|
|
|
@ -19,9 +19,9 @@ 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. */
|
||||
|
||||
#include "config.h"
|
||||
#include <stdio.h>
|
||||
#include <ctype.h>
|
||||
#include "config.h"
|
||||
#include "rtl.h"
|
||||
#include "regs.h"
|
||||
#include "hard-reg-set.h"
|
||||
|
@ -2140,7 +2140,7 @@ rs6000_got_register (value)
|
|||
}
|
||||
|
||||
|
||||
/* Replace all occurances of register FROM with an new pseduo register in an insn X.
|
||||
/* Replace all occurrences of register FROM with an new pseudo register in an insn X.
|
||||
Store the pseudo register used in REG.
|
||||
This is only safe during FINALIZE_PIC, since the registers haven't been setup
|
||||
yet. */
|
||||
|
@ -2215,7 +2215,7 @@ void
|
|||
rs6000_finalize_pic ()
|
||||
{
|
||||
/* Loop through all of the insns, replacing the special GOT_TOC_REGNUM
|
||||
with an appropriate pseduo register. If we find we need GOT/TOC,
|
||||
with an appropriate pseudo register. If we find we need GOT/TOC,
|
||||
add the appropriate init code. */
|
||||
if (flag_pic && (DEFAULT_ABI == ABI_V4 || DEFAULT_ABI == ABI_SOLARIS))
|
||||
{
|
||||
|
@ -2257,7 +2257,7 @@ rs6000_finalize_pic ()
|
|||
}
|
||||
|
||||
|
||||
/* Search for any occurrance of the GOT_TOC register marker that should
|
||||
/* Search for any occurrence of the GOT_TOC register marker that should
|
||||
have been eliminated, but may have crept back in. */
|
||||
|
||||
void
|
||||
|
|
|
@ -52,7 +52,7 @@ Boston, MA 02111-1307, USA. */
|
|||
|
||||
#define CPP_SPEC "%{posix: -D_POSIX_SOURCE} %(cpp_cpu)"
|
||||
|
||||
/* Common CPP definitions used by CPP_SPEC amonst the various targets
|
||||
/* Common CPP definitions used by CPP_SPEC among the various targets
|
||||
for handling -mcpu=xxx switches. */
|
||||
#define CPP_CPU_SPEC \
|
||||
"%{!mcpu*: \
|
||||
|
@ -101,7 +101,7 @@ Boston, MA 02111-1307, USA. */
|
|||
#define CPP_SYSV_DEFAULT_SPEC ""
|
||||
#endif
|
||||
|
||||
/* Common ASM definitions used by ASM_SPEC amonst the various targets
|
||||
/* Common ASM definitions used by ASM_SPEC among the various targets
|
||||
for handling -mcpu=xxx switches. */
|
||||
#define ASM_CPU_SPEC \
|
||||
"%{!mcpu*: \
|
||||
|
@ -242,7 +242,7 @@ extern int target_flags;
|
|||
if there are more than 16K unique variables/constant in a single module.
|
||||
|
||||
This is at the cost of having 2 extra loads and one extra store per
|
||||
function, and one less allocatable register. */
|
||||
function, and one less allocable register. */
|
||||
#define MASK_MINIMAL_TOC 0x00000200
|
||||
|
||||
/* Nonzero for the 64bit model: ints, longs, and pointers are 64 bits. */
|
||||
|
@ -424,7 +424,7 @@ extern enum processor_type rs6000_cpu;
|
|||
extern char *m88k_short_data;
|
||||
#define TARGET_OPTIONS { { "short-data-", &m88k_short_data } } */
|
||||
|
||||
/* This is meant to be overriden in target specific files. */
|
||||
/* This is meant to be overridden in target specific files. */
|
||||
#ifndef SUBTARGET_OPTIONS
|
||||
#define SUBTARGET_OPTIONS
|
||||
#endif
|
||||
|
@ -909,7 +909,7 @@ extern int rs6000_debug_arg; /* debug argument handling */
|
|||
Also, cr0 is the only condition code register that can be used in
|
||||
arithmetic insns, so make a separate class for it.
|
||||
|
||||
There is a special 'registrer' (76), which is not a register, but a
|
||||
There is a special 'register' (76), which is not a register, but a
|
||||
placeholder for memory allocated to convert between floating point and
|
||||
integral types. This works around a problem where if we allocate memory
|
||||
with allocate_stack_{local,temp} and the function is an inline function, the
|
||||
|
|
|
@ -7241,7 +7241,7 @@
|
|||
DONE;
|
||||
}")
|
||||
|
||||
;; If we have -mmiminal-toc, we need to reload r30 after a nonlocal goto.
|
||||
;; If we have -mminimal-toc, we need to reload r30 after a nonlocal goto.
|
||||
|
||||
(define_insn "nonlocal_goto_receiver"
|
||||
[(unspec_volatile [(const_int 0)] 1)]
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* Definitions for rtems targetting a PowerPC using elf.
|
||||
/* Definitions for rtems targeting a PowerPC using elf.
|
||||
Copyright (C) 1996, 1997 Free Software Foundation, Inc.
|
||||
Contributed by Joel Sherrill (joel@OARcorp.com).
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/* Target definitions for GNU compiler for PowerPC running System V.4
|
||||
Copyright (C) 1995, 1996 Free Software Foundation, Inc.
|
||||
Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
|
||||
Contributed by Cygnus Support.
|
||||
|
||||
This file is part of GNU CC.
|
||||
|
@ -584,7 +584,7 @@ extern void rs6000_select_rtx_section (), rs6000_select_section ();
|
|||
we can't check that since not every file that uses
|
||||
GO_IF_LEGITIMATE_ADDRESS_P includes real.h.
|
||||
|
||||
Unlike AIX, we don't key off of -mmininal-toc, but instead do not
|
||||
Unlike AIX, we don't key off of -mminimal-toc, but instead do not
|
||||
allow floating point constants in the TOC if -mrelocatable. */
|
||||
|
||||
#undef ASM_OUTPUT_SPECIAL_POOL_ENTRY_P
|
||||
|
@ -713,7 +713,7 @@ do { \
|
|||
} \
|
||||
} while (0)
|
||||
|
||||
/* Describe how to emit unitialized external linkage items */
|
||||
/* Describe how to emit uninitialized external linkage items */
|
||||
#define ASM_OUTPUT_ALIGNED_BSS(FILE, DECL, NAME, SIZE, ALIGN) \
|
||||
do { \
|
||||
ASM_GLOBALIZE_LABEL (FILE, NAME); \
|
||||
|
@ -1030,7 +1030,7 @@ do { \
|
|||
|
||||
#undef LINK_SHLIB_SPEC
|
||||
#ifndef NO_SHARED_LIB_SUPPORT
|
||||
/* Shared libaries are default. */
|
||||
/* Shared libraries are default. */
|
||||
#define LINK_SHLIB_SPEC "\
|
||||
%{!static: %(link_path) %{!R*:%{L*:-R %*}}} \
|
||||
%{mshlib: } \
|
||||
|
@ -1269,7 +1269,7 @@ do { \
|
|||
#define CPP_OS_SIM_SPEC ""
|
||||
#endif
|
||||
|
||||
/* Linux support. */
|
||||
/* GNU/Linux support. */
|
||||
#ifndef LIB_LINUX_SPEC
|
||||
#define LIB_LINUX_SPEC "%{mnewlib: --start-group -llinux -lc --end-group } %{!mnewlib: -lc }"
|
||||
#endif
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/* Configuration for GNU C-compiler for hosting on Windows NT.
|
||||
using a unix style C library.
|
||||
Copyright (C) 1995 Free Software Foundation, Inc.
|
||||
Copyright (C) 1995, 1997 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU CC.
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* Definitions for rtems targetting a SH using elf.
|
||||
/* Definitions for rtems targeting a SH using elf.
|
||||
Copyright (C) 1997 Free Software Foundation, Inc.
|
||||
Contributed by Joel Sherrill (joel@OARcorp.com).
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/* Output routines for GCC for Hitachi Super-H.
|
||||
Copyright (C) 1993, 1994, 1995, 1996 Free Software Foundation, Inc.
|
||||
Copyright (C) 1993, 1994, 1995, 1996, 1997 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU CC.
|
||||
|
||||
|
@ -1919,7 +1919,7 @@ find_barrier (num_mova, mova, from)
|
|||
delay slot. This gives 1018. */
|
||||
|
||||
/* The branch will always be shortened now that the reference address for
|
||||
forward branches is the sucessor address, thus we need no longer make
|
||||
forward branches is the successor address, thus we need no longer make
|
||||
adjustments to the [sh]i_limit for -O0. */
|
||||
|
||||
si_limit = 1018;
|
||||
|
@ -1937,7 +1937,7 @@ find_barrier (num_mova, mova, from)
|
|||
if (GET_CODE (from) == BARRIER)
|
||||
{
|
||||
found_barrier = from;
|
||||
/* If we are at the end of the function, or in front of an alignemnt
|
||||
/* If we are at the end of the function, or in front of an alignment
|
||||
instruction, we need not insert an extra alignment. We prefer
|
||||
this kind of barrier. */
|
||||
|
||||
|
@ -2004,7 +2004,7 @@ find_barrier (num_mova, mova, from)
|
|||
/* We have just passed the barrier in front front of the
|
||||
ADDR_DIFF_VEC. Since the ADDR_DIFF_VEC is accessed
|
||||
as data, just like our pool constants, this is a good
|
||||
opportunity to accomodate what we have gathered so far.
|
||||
opportunity to accommodate what we have gathered so far.
|
||||
If we waited any longer, we could end up at a barrier in
|
||||
front of code, which gives worse cache usage for separated
|
||||
instruction / data caches. */
|
||||
|
@ -2286,7 +2286,7 @@ regs_used (x, is_dest)
|
|||
}
|
||||
|
||||
/* Create an instruction that prevents redirection of a conditional branch
|
||||
to the desitination of the JUMP with address ADDR.
|
||||
to the destination of the JUMP with address ADDR.
|
||||
If the branch needs to be implemented as an indirect jump, try to find
|
||||
a scratch register for it.
|
||||
If NEED_BLOCK is 0, don't do anything unless we need a scratch register.
|
||||
|
@ -2327,7 +2327,7 @@ gen_block_redirect (jump, addr, need_block)
|
|||
{
|
||||
rtx scan;
|
||||
/* Don't look for the stack pointer as a scratch register,
|
||||
it would cause trouble if an interrupt occured. */
|
||||
it would cause trouble if an interrupt occurred. */
|
||||
unsigned try = 0x7fff, used;
|
||||
int jump_left = flag_expensive_optimizations + 1;
|
||||
|
||||
|
@ -2385,7 +2385,7 @@ gen_block_redirect (jump, addr, need_block)
|
|||
/* If the immediate destination is still in range, check for possible
|
||||
threading with a jump beyond the delay slot insn.
|
||||
Don't check if we are called recursively; the jump has been or will be
|
||||
checked in a different invokation then. */
|
||||
checked in a different invocation then. */
|
||||
|
||||
else if (optimize && need_block >= 0)
|
||||
{
|
||||
|
@ -2406,7 +2406,7 @@ gen_block_redirect (jump, addr, need_block)
|
|||
rtx reg = gen_rtx (REG, SImode, exact_log2 (dead & -dead));
|
||||
|
||||
/* It would be nice if we could convert the jump into an indirect
|
||||
jump / far branch right now, and thus exposing all consitituent
|
||||
jump / far branch right now, and thus exposing all constituent
|
||||
instructions to further optimization. However, reorg uses
|
||||
simplejump_p to determine if there is an unconditional jump where
|
||||
it should try to schedule instructions from the target of the
|
||||
|
@ -2936,7 +2936,7 @@ machine_dependent_reorg (first)
|
|||
}
|
||||
|
||||
/* The following processing passes need length information.
|
||||
addr_diff_vec_adjust needs to know if insn_addreses is valid. */
|
||||
addr_diff_vec_adjust needs to know if insn_addresses is valid. */
|
||||
insn_addresses = 0;
|
||||
|
||||
/* If not optimizing for space, we want extra alignment for code after
|
||||
|
@ -3076,7 +3076,7 @@ machine_dependent_reorg (first)
|
|||
/* range of mova is 1020, add 4 because pc counts from address of
|
||||
second instruction after this one, subtract 2 in case pc is 2
|
||||
byte aligned. Possible alignment needed for the ADDR_DIFF_VEC
|
||||
chancles out with alignment effects of the mova itself. */
|
||||
cancels out with alignment effects of the mova itself. */
|
||||
if (total > 1022)
|
||||
{
|
||||
/* Change the mova into a load, and restart scanning
|
||||
|
@ -3278,7 +3278,7 @@ split_branches (first)
|
|||
the label if th lABEL_BUSES count drops to zero. There is
|
||||
always a jump_optimize pass that sets these values, but it
|
||||
proceeds to delete unreferenced code, and then if not
|
||||
optimizeing, to un-delete the deleted instructions, thus
|
||||
optimizing, to un-delete the deleted instructions, thus
|
||||
leaving labels with too low uses counts. */
|
||||
if (! optimize)
|
||||
{
|
||||
|
@ -3936,7 +3936,7 @@ handle_pragma (file, t)
|
|||
sp_switch -- specifies an alternate stack for an interrupt handler
|
||||
to run on.
|
||||
|
||||
trap_exit -- use a trapa to exit an interrupt function intead of
|
||||
trap_exit -- use a trapa to exit an interrupt function instead of
|
||||
an rte instruction. */
|
||||
|
||||
int
|
||||
|
@ -4263,7 +4263,7 @@ branch_offset (branch)
|
|||
while (dest_uid >= uid_align_max || ! uid_align[dest_uid])
|
||||
{
|
||||
/* Label might be outside the insn stream, or even in a separate
|
||||
insn stream, after a syntax errror. */
|
||||
insn stream, after a syntax error. */
|
||||
if (! NEXT_INSN (dest))
|
||||
return 0;
|
||||
dest = NEXT_INSN (dest), dest_uid = INSN_UID (dest);
|
||||
|
|
|
@ -404,7 +404,7 @@ do { \
|
|||
frame pointer register can often be eliminated in favor of the stack
|
||||
pointer register. Secondly, the argument pointer register can always be
|
||||
eliminated; it is replaced with either the stack or frame pointer.
|
||||
Third, there is the retuen address pointer, which can also be replaced
|
||||
Third, there is the return address pointer, which can also be replaced
|
||||
with either the stack or the frame pointer. */
|
||||
|
||||
/* This is an array of structures. Each structure initializes one pair
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
;;- Machine description for the Hitachi SH.
|
||||
;; Copyright (C) 1993, 1994, 1995 Free Software Foundation, Inc.
|
||||
;; Copyright (C) 1993, 1994, 1995, 1997Free Software Foundation, Inc.
|
||||
;; Contributed by Steve Chamberlain (sac@cygnus.com).
|
||||
;; Improved by Jim Wilson (wilson@cygnus.com).
|
||||
|
||||
|
@ -80,7 +80,7 @@
|
|||
;; cbranch conditional branch instructions
|
||||
;; jump unconditional jumps
|
||||
;; arith ordinary arithmetic
|
||||
;; arith3 a compound insn that behaves similarily to a sequence of
|
||||
;; arith3 a compound insn that behaves similarly to a sequence of
|
||||
;; three insns of type arith
|
||||
;; arith3b like above, but might end with a redirected branch
|
||||
;; load from memory
|
||||
|
@ -169,7 +169,7 @@
|
|||
;; between the actual call address and the function arguments.
|
||||
;; ADJUST_COST can only properly handle reductions of the cost, so we
|
||||
;; use a latency of three here.
|
||||
;; We only do this for SImode loads of general regsiters, to make the work
|
||||
;; We only do this for SImode loads of general registers, to make the work
|
||||
;; for ADJUST_COST easier.
|
||||
(define_function_unit "memory" 1 0
|
||||
(eq_attr "type" "load_si,pcload_si")
|
||||
|
@ -563,7 +563,7 @@
|
|||
;; registers as a normal function call would.
|
||||
|
||||
;; The INSN_REFERENCES_ARE_DELAYED in sh.h is problematic because it
|
||||
;; also has an effect on the register that holds the addres of the sfunc.
|
||||
;; also has an effect on the register that holds the address of the sfunc.
|
||||
;; To make this work, we have an extra dummy insns that shows the use
|
||||
;; of this register for reorg.
|
||||
|
||||
|
@ -2646,7 +2646,7 @@
|
|||
return \"\";
|
||||
}"
|
||||
;; Need a variable length for this to be processed in each shorten_branch pass.
|
||||
;; The actual work is done in ADJUST_INSN_LENTH, because length attributes
|
||||
;; The actual work is done in ADJUST_INSN_LENGTH, because length attributes
|
||||
;; need to be (a choice of) constants.
|
||||
;; We use the calculated length before ADJUST_INSN_LENGTH to
|
||||
;; determine if the insn_addresses array contents are valid.
|
||||
|
@ -2807,7 +2807,7 @@
|
|||
"operands[2] = gen_reg_rtx (SImode);")
|
||||
|
||||
;; Recognize mov #-1/negc/neg sequence, and change it to movt/add #-1.
|
||||
;; This prevents a regression that occured when we switched from xor to
|
||||
;; This prevents a regression that occurred when we switched from xor to
|
||||
;; mov/neg for sne.
|
||||
|
||||
(define_split
|
||||
|
@ -2923,7 +2923,7 @@
|
|||
""
|
||||
".align %O0"
|
||||
;; Need a variable length for this to be processed in each shorten_branch pass.
|
||||
;; The actual work is done in ADJUST_INSN_LENTH, because length attributes
|
||||
;; The actual work is done in ADJUST_INSN_LENGTH, because length attributes
|
||||
;; need to be (a choice of) constants.
|
||||
[(set (attr "length")
|
||||
(if_then_else (ne (pc) (pc)) (const_int 2) (const_int 0)))
|
||||
|
@ -3322,7 +3322,7 @@
|
|||
}"
|
||||
[(set_attr "length" "10")])
|
||||
|
||||
;; Switch back to the original stack for interrupt funtions with the
|
||||
;; Switch back to the original stack for interrupt functions with the
|
||||
;; sp_switch attribute. */
|
||||
(define_insn "sp_switch_2"
|
||||
[(const_int 2)]
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* Definitions for SPARC running Linux with a.out
|
||||
/* Definitions for SPARC running Linux-based GNU systems with a.out.
|
||||
Copyright (C) 1996, 1997 Free Software Foundation, Inc.
|
||||
Contributed by Eddie C. Dost (ecd@skynet.be)
|
||||
|
||||
|
@ -28,7 +28,7 @@ Boston, MA 02111-1307, USA. */
|
|||
#undef HAVE_ATEXIT
|
||||
#define HAVE_ATEXIT
|
||||
|
||||
/* Linux uses ctype from glibc.a. I am not sure how complete it is.
|
||||
/* GNU/Linux uses ctype from glibc.a. I am not sure how complete it is.
|
||||
For now, we play safe. It may change later. */
|
||||
|
||||
#if 0
|
||||
|
@ -55,7 +55,7 @@ Boston, MA 02111-1307, USA. */
|
|||
#define STARTFILE_SPEC "%{pg:gcrt0.o%s} %{!pg:%{p:gcrt0.o%s} %{!p:crt0.o%s}} %{static:-static}"
|
||||
|
||||
#undef TARGET_VERSION
|
||||
#define TARGET_VERSION fprintf (stderr, " (sparc Linux/a.out)");
|
||||
#define TARGET_VERSION fprintf (stderr, " (sparc GNU/Linux with a.out)");
|
||||
|
||||
#undef SIZE_TYPE
|
||||
#define SIZE_TYPE "unsigned int"
|
||||
|
@ -84,9 +84,8 @@ Boston, MA 02111-1307, USA. */
|
|||
|
||||
#if 1
|
||||
/* We no longer link with libc_p.a or libg.a by default. If you
|
||||
* want to profile or debug the Linux C library, please add
|
||||
* -lc_p or -ggdb to LDFLAGS at the link time, respectively.
|
||||
*/
|
||||
want to profile or debug the GNU/Linux C library, please add
|
||||
-lc_p or -ggdb to LDFLAGS at the link time, respectively. */
|
||||
#define LIB_SPEC \
|
||||
"%{mieee-fp:-lieee} %{p:-lgmon} %{pg:-lgmon} %{!ggdb:-lc} %{ggdb:-lg}"
|
||||
#else
|
||||
|
@ -106,7 +105,7 @@ Boston, MA 02111-1307, USA. */
|
|||
|
||||
#if 0
|
||||
/* Define for support of TFmode long double and REAL_ARITHMETIC.
|
||||
Sparc ABI says that long double is 4 words. Linux does not support
|
||||
Sparc ABI says that long double is 4 words. GNU/Linux does not support
|
||||
long double yet. */
|
||||
#define LONG_DOUBLE_TYPE_SIZE 128
|
||||
#endif
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* Definitions for SPARC running Linux with ELF
|
||||
/* Definitions for SPARC running Linux-based GNU systems with ELF.
|
||||
Copyright (C) 1996, 1997 Free Software Foundation, Inc.
|
||||
Contributed by Eddie C. Dost (ecd@skynet.be)
|
||||
|
||||
|
@ -27,7 +27,7 @@ Boston, MA 02111-1307, USA. */
|
|||
#undef HAVE_ATEXIT
|
||||
#define HAVE_ATEXIT
|
||||
|
||||
/* Linux uses ctype from glibc.a. I am not sure how complete it is.
|
||||
/* GNU/Linux uses ctype from glibc.a. I am not sure how complete it is.
|
||||
For now, we play safe. It may change later. */
|
||||
|
||||
#if 0
|
||||
|
@ -57,8 +57,8 @@ Boston, MA 02111-1307, USA. */
|
|||
fprintf (FILE, "\t.version\t\"01.01\"\n"); \
|
||||
} while (0)
|
||||
|
||||
/* Provide a STARTFILE_SPEC appropriate for Linux. Here we add
|
||||
the Linux magical crtbegin.o file (see crtstuff.c) which
|
||||
/* Provide a STARTFILE_SPEC appropriate for GNU/Linux. Here we add
|
||||
the GNU/Linux magical crtbegin.o file (see crtstuff.c) which
|
||||
provides part of the support for getting C++ file-scope static
|
||||
object constructed before entering `main'. */
|
||||
|
||||
|
@ -68,11 +68,11 @@ Boston, MA 02111-1307, USA. */
|
|||
%{pg:gcrt1.o%s} %{!pg:%{p:gcrt1.o%s} %{!p:crt1.o%s}}}\
|
||||
crti.o%s %{!shared:crtbegin.o%s} %{shared:crtbeginS.o%s}"
|
||||
|
||||
/* Provide a ENDFILE_SPEC appropriate for Linux. Here we tack on
|
||||
the Linux magical crtend.o file (see crtstuff.c) which
|
||||
/* Provide a ENDFILE_SPEC appropriate for GNU/Linux. Here we tack on
|
||||
the GNU/Linux magical crtend.o file (see crtstuff.c) which
|
||||
provides part of the support for getting C++ file-scope static
|
||||
object constructed before entering `main', followed by a normal
|
||||
Linux "finalizer" file, `crtn.o'. */
|
||||
GNU/Linux "finalizer" file, `crtn.o'. */
|
||||
|
||||
#undef ENDFILE_SPEC
|
||||
#define ENDFILE_SPEC \
|
||||
|
@ -88,7 +88,7 @@ Boston, MA 02111-1307, USA. */
|
|||
"
|
||||
|
||||
#undef TARGET_VERSION
|
||||
#define TARGET_VERSION fprintf (stderr, " (sparc Linux/ELF)");
|
||||
#define TARGET_VERSION fprintf (stderr, " (sparc GNU/Linux with ELF)");
|
||||
|
||||
#undef SIZE_TYPE
|
||||
#define SIZE_TYPE "unsigned int"
|
||||
|
@ -116,9 +116,8 @@ Boston, MA 02111-1307, USA. */
|
|||
|
||||
#undef LIB_SPEC
|
||||
/* We no longer link with libc_p.a or libg.a by default. If you
|
||||
* want to profile or debug the Linux C library, please add
|
||||
* -lc_p or -ggdb to LDFLAGS at the link time, respectively.
|
||||
*/
|
||||
want to profile or debug the GNU/Linux C library, please add
|
||||
-lc_p or -ggdb to LDFLAGS at the link time, respectively. */
|
||||
#if 1
|
||||
#ifdef USE_GNULIBC_1
|
||||
#define LIB_SPEC \
|
||||
|
@ -136,7 +135,7 @@ Boston, MA 02111-1307, USA. */
|
|||
%{!p:%{!pg:%{!g*:-lc} %{g*:-lg}}}}"
|
||||
#endif
|
||||
|
||||
/* Provide a LINK_SPEC appropriate for Linux. Here we provide support
|
||||
/* Provide a LINK_SPEC appropriate for GNU/Linux. Here we provide support
|
||||
for the special GCC options -static and -shared, which allow us to
|
||||
link things in one of these three modes by applying the appropriate
|
||||
combinations of options at link-time. We like to support here for
|
||||
|
@ -234,7 +233,7 @@ do { \
|
|||
|
||||
#if 0
|
||||
/* Define for support of TFmode long double and REAL_ARITHMETIC.
|
||||
Sparc ABI says that long double is 4 words. Linux does not support
|
||||
Sparc ABI says that long double is 4 words. GNU/Linux does not support
|
||||
long double yet. */
|
||||
#define LONG_DOUBLE_TYPE_SIZE 128
|
||||
#endif
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* Definitions for 64-bit SPARC running Linux with ELF
|
||||
/* Definitions for 64-bit SPARC running Linux-based GNU systems with ELF.
|
||||
Copyright 1996, 1997 Free Software Foundation, Inc.
|
||||
Contributed by David S. Miller (davem@caip.rutgers.edu)
|
||||
|
||||
|
@ -52,8 +52,8 @@ Boston, MA 02111-1307, USA. */
|
|||
#define LIBGCC_SPEC \
|
||||
"%{!shared:-lgcc}"
|
||||
|
||||
/* Provide a STARTFILE_SPEC appropriate for Linux. Here we add
|
||||
the Linux magical crtbegin.o file (see crtstuff.c) which
|
||||
/* Provide a STARTFILE_SPEC appropriate for GNU/Linux. Here we add
|
||||
the GNU/Linux magical crtbegin.o file (see crtstuff.c) which
|
||||
provides part of the support for getting C++ file-scope static
|
||||
object constructed before entering `main'. */
|
||||
|
||||
|
@ -63,18 +63,18 @@ Boston, MA 02111-1307, USA. */
|
|||
%{pg:gcrt1.o%s} %{!pg:%{p:gcrt1.o%s} %{!p:crt1.o%s}}}\
|
||||
crti.o%s %{!shared:crtbegin.o%s} %{shared:crtbeginS.o%s}"
|
||||
|
||||
/* Provide a ENDFILE_SPEC appropriate for Linux. Here we tack on
|
||||
the Linux magical crtend.o file (see crtstuff.c) which
|
||||
/* Provide a ENDFILE_SPEC appropriate for GNU/Linux. Here we tack on
|
||||
the GNU/Linux magical crtend.o file (see crtstuff.c) which
|
||||
provides part of the support for getting C++ file-scope static
|
||||
object constructed before entering `main', followed by a normal
|
||||
Linux "finalizer" file, `crtn.o'. */
|
||||
GNU/Linux "finalizer" file, `crtn.o'. */
|
||||
|
||||
#undef ENDFILE_SPEC
|
||||
#define ENDFILE_SPEC \
|
||||
"%{!shared:crtend.o%s} %{shared:crtendS.o%s} crtn.o%s"
|
||||
|
||||
#undef TARGET_VERSION
|
||||
#define TARGET_VERSION fprintf (stderr, " (sparc64 Linux/ELF)");
|
||||
#define TARGET_VERSION fprintf (stderr, " (sparc64 GNU/Linux with ELF)");
|
||||
|
||||
/* A 64 bit v9 compiler with stack-bias,
|
||||
in a Medium/Anywhere code model environment. */
|
||||
|
@ -113,15 +113,14 @@ Boston, MA 02111-1307, USA. */
|
|||
%{posix:-D_POSIX_SOURCE} \
|
||||
"
|
||||
/* We no longer link with libc_p.a or libg.a by default. If you
|
||||
* want to profile or debug the Linux C library, please add
|
||||
* -lc_p or -ggdb to LDFLAGS at the link time, respectively.
|
||||
*/
|
||||
want to profile or debug the GNU/Linux C library, please add
|
||||
-lc_p or -ggdb to LDFLAGS at the link time, respectively. */
|
||||
#undef LIB_SPEC
|
||||
#define LIB_SPEC \
|
||||
"%{!shared: %{mieee-fp:-lieee} %{p:-lgmon} %{pg:-lgmon} \
|
||||
%{!ggdb:-lc} %{ggdb:-lg}}"
|
||||
|
||||
/* Provide a LINK_SPEC appropriate for Linux. Here we provide support
|
||||
/* Provide a LINK_SPEC appropriate for GNU/Linux. Here we provide support
|
||||
for the special GCC options -static and -shared, which allow us to
|
||||
link things in one of these three modes by applying the appropriate
|
||||
combinations of options at link-time. We like to support here for
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* Definitions for rtems targetting a SPARC using a.out.
|
||||
/* Definitions for rtems targeting a SPARC using a.out.
|
||||
Copyright (C) 1996, 1997 Free Software Foundation, Inc.
|
||||
Contributed by Joel Sherrill (joel@OARcorp.com).
|
||||
|
||||
|
|
|
@ -3334,8 +3334,8 @@ output_function_prologue (file, size, leaf_function)
|
|||
else if (! leaf_function && TARGET_BROKEN_SAVERESTORE)
|
||||
{
|
||||
/* We assume the environment will properly handle or otherwise avoid
|
||||
trouble associated with an interrupt occuring after the `save' or
|
||||
trap occuring during it. */
|
||||
trouble associated with an interrupt occurring after the `save' or
|
||||
trap occurring during it. */
|
||||
fprintf (file, "\tsave\n");
|
||||
|
||||
if (actual_fsize <= 4096)
|
||||
|
@ -3830,7 +3830,7 @@ function_arg (cum, mode, type, named, incoming_p)
|
|||
/* ??? This will cause the value to be passed in the fp reg and
|
||||
in the stack. When a prototype exists we want to pass the
|
||||
value in the reg but reserve space on the stack. That's an
|
||||
optimization, and is defered [for a bit]. */
|
||||
optimization, and is deferred [for a bit]. */
|
||||
if ((regno - SPARC_FP_ARG_FIRST) >= SPARC_INT_ARG_MAX * 2)
|
||||
return gen_rtx (PARALLEL, mode,
|
||||
gen_rtvec (2,
|
||||
|
@ -4246,7 +4246,8 @@ sparc_builtin_saveregs (arglist)
|
|||
address, ptr_mode,
|
||||
GEN_INT (UNITS_PER_WORD
|
||||
* (NPARM_REGS (word_mode) - first_reg)),
|
||||
TYPE_MODE (sizetype), GEN_INT (MEMORY_USE_RW), QImode);
|
||||
TYPE_MODE (sizetype), GEN_INT (MEMORY_USE_RW),
|
||||
TYPE_MODE (integer_type_node));
|
||||
|
||||
return address;
|
||||
}
|
||||
|
|
|
@ -440,8 +440,8 @@ extern int target_flags;
|
|||
/* Non-zero means the cpu has broken `save' and `restore' insns, only
|
||||
the trivial versions work (save %g0,%g0,%g0; restore %g0,%g0,%g0).
|
||||
We assume the environment will properly handle or otherwise avoid
|
||||
trouble associated with an interrupt occuring after the `save' or trap
|
||||
occuring during it. */
|
||||
trouble associated with an interrupt occurring after the `save' or trap
|
||||
occurring during it. */
|
||||
#define MASK_BROKEN_SAVERESTORE 0x200000
|
||||
#define TARGET_BROKEN_SAVERESTORE (target_flags & MASK_BROKEN_SAVERESTORE)
|
||||
|
||||
|
@ -1131,7 +1131,7 @@ extern int sparc_mode_class[];
|
|||
|
||||
It is important that SPARC_ICC_REG have class NO_REGS. Otherwise combine
|
||||
may try to use it to hold an SImode value. See register_operand.
|
||||
??? Should %fcc[0123] be handled similarily?
|
||||
??? Should %fcc[0123] be handled similarly?
|
||||
*/
|
||||
|
||||
enum reg_class { NO_REGS, FPCC_REGS, GENERAL_REGS, FP_REGS, EXTRA_FP_REGS,
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* Configuration for GCC for SPARC running Linux.
|
||||
/* Configuration for GCC for SPARC running Linux-based GNU systems.
|
||||
Copyright (C) 1996, 1997 Free Software Foundation, Inc.
|
||||
Contributed by Eddie C. Dost (ecd@skynet.be)
|
||||
|
||||
|
|
|
@ -1172,7 +1172,7 @@ __save_interrupt:
|
|||
.size __save_interrupt,.-__save_interrupt
|
||||
|
||||
/* Restore saved registers, deallocate stack and return from the interrupt */
|
||||
/* Called via: jr __return_interupt */
|
||||
/* Called via: jr __return_interrupt */
|
||||
.align 2
|
||||
.globl __return_interrupt
|
||||
.type __return_interrupt,@function
|
||||
|
|
|
@ -448,7 +448,7 @@ print_operand (file, x, code)
|
|||
break;
|
||||
case 'S':
|
||||
{
|
||||
/* if it's a referance to a TDA variable, use sst/sld vs. st/ld */
|
||||
/* if it's a reference to a TDA variable, use sst/sld vs. st/ld */
|
||||
if (GET_CODE (x) == MEM && ep_memory_operand (x, GET_MODE (x), FALSE))
|
||||
fputs ("s", file);
|
||||
|
||||
|
@ -2157,8 +2157,8 @@ pattern_is_ok_for_prologue (op, mode)
|
|||
return 0;
|
||||
|
||||
/* If the register is being pushed somewhere other than the stack
|
||||
space just aquired by the first operand then abandon this quest.
|
||||
Note: the test is <= becuase both values are negative. */
|
||||
space just acquired by the first operand then abandon this quest.
|
||||
Note: the test is <= because both values are negative. */
|
||||
if (INTVAL (XEXP (plus, 1))
|
||||
<= INTVAL (XEXP (SET_SRC (XVECEXP (op, 0, 0)), 1)))
|
||||
{
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
/* Definitions of target machine for GNU compiler.
|
||||
NEC V850 series
|
||||
/* Definitions of target machine for GNU compiler. NEC V850 series
|
||||
Copyright (C) 1996, 1997 Free Software Foundation, Inc.
|
||||
Contributed by Jeff Law (law@cygnus.com).
|
||||
|
||||
|
@ -83,7 +82,7 @@ extern int target_flags;
|
|||
|
||||
* Passing/returning of large structures probably isn't the same
|
||||
as GHS. We don't have enough documentation on their conventions
|
||||
to be compatable.
|
||||
to be compatible.
|
||||
|
||||
* Tests of SETUP_INCOMING_VARARGS need to be made runtime checks
|
||||
since it depends on TARGET_GHS. */
|
||||
|
@ -348,7 +347,7 @@ extern struct small_memory_info small_memory[(int)SMALL_MEMORY_max];
|
|||
|
||||
On the 850, we make the return registers first, then all of the volatile
|
||||
registers, then the saved registers in reverse order to better save the
|
||||
registers with an out of line function , and finnally the fixed
|
||||
registers with an out of line function, and finally the fixed
|
||||
registers. */
|
||||
|
||||
#define REG_ALLOC_ORDER \
|
||||
|
@ -1007,7 +1006,7 @@ do { \
|
|||
switch on CODE.
|
||||
|
||||
There aren't DImode MOD, DIV or MULT operations, so call them
|
||||
very expensive. Everything else is pretty much a costant cost. */
|
||||
very expensive. Everything else is pretty much a constant cost. */
|
||||
|
||||
#define RTX_COSTS(RTX,CODE,OUTER_CODE) \
|
||||
case MOD: \
|
||||
|
@ -1296,7 +1295,7 @@ do { char dstr[30]; \
|
|||
if ((LOG) != 0) \
|
||||
fprintf (FILE, "\t.align %d\n", (LOG))
|
||||
|
||||
/* We don't have to worry about dbx compatability for the v850. */
|
||||
/* We don't have to worry about dbx compatibility for the v850. */
|
||||
#define DEFAULT_GDB_EXTENSIONS 1
|
||||
|
||||
/* Use stabs debugging info by default. */
|
||||
|
|
|
@ -46,7 +46,7 @@
|
|||
;; none_0hit - insn does not affect cc but it does modify operand 0
|
||||
;; This attribute is used to keep track of when operand 0 changes.
|
||||
;; See the description of NOTICE_UPDATE_CC for more info.
|
||||
;; set_znv - sets z,n,v to useable values; c is unknown.
|
||||
;; set_znv - sets z,n,v to usable values; c is unknown.
|
||||
;; set_zn - sets z,n to usable values; v,c is unknown.
|
||||
;; compare - compare instruction
|
||||
;; clobber - value of cc is unknown
|
||||
|
@ -935,7 +935,7 @@
|
|||
|
||||
/* Shift index for the table array access. */
|
||||
emit_insn (gen_ashlsi3 (reg, reg, GEN_INT (TARGET_BIG_SWITCH ? 2 : 1)));
|
||||
/* Load the table address into a psuedo. */
|
||||
/* Load the table address into a pseudo. */
|
||||
emit_insn (gen_movsi (tableaddress,
|
||||
gen_rtx (LABEL_REF, VOIDmode, operands[3])));
|
||||
/* Add the table address to the index. */
|
||||
|
@ -1201,8 +1201,8 @@
|
|||
;; an interrupt function makes a call.
|
||||
;; UNSPEC_VOLATILE is considered to use and clobber all hard registers and
|
||||
;; all of memory. This blocks insns from being moved across this point.
|
||||
;; This is needed because the rest of the compiler is not reading to handle
|
||||
;; insns this compilcated
|
||||
;; This is needed because the rest of the compiler is not ready to handle
|
||||
;; insns this complicated.
|
||||
|
||||
(define_insn "save_all_interrupt"
|
||||
[(unspec_volatile [(const_int 0)] 0)]
|
||||
|
@ -1249,8 +1249,8 @@
|
|||
;; Restore all registers saved when an interrupt function makes a call.
|
||||
;; UNSPEC_VOLATILE is considered to use and clobber all hard registers and
|
||||
;; all of memory. This blocks insns from being moved across this point.
|
||||
;; This is needed because the rest of the compiler is not reading to handle
|
||||
;; insns this compilcated
|
||||
;; This is needed because the rest of the compiler is not ready to handle
|
||||
;; insns this complicated.
|
||||
|
||||
(define_insn "restore_all_interrupt"
|
||||
[(unspec_volatile [(const_int 0)] 1)]
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* Configuration for GCC for Intel i386 running Linux.
|
||||
/* Configuration for GCC for Intel i386 running Linux-based GNU systems.
|
||||
Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
|
||||
Contributed by H.J. Lu (hjl@nynexst.com)
|
||||
|
||||
|
@ -19,15 +19,6 @@ 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. */
|
||||
|
||||
#undef HAVE_VPRINTF
|
||||
#define HAVE_VPRINTF
|
||||
|
||||
#undef HAVE_POPEN
|
||||
#define HAVE_POPEN
|
||||
|
||||
#undef HAVE_PUTENV
|
||||
#define HAVE_PUTENV
|
||||
|
||||
#undef HAVE_ATEXIT
|
||||
#define HAVE_ATEXIT
|
||||
|
||||
|
@ -40,8 +31,3 @@ Boston, MA 02111-1307, USA. */
|
|||
|
||||
#undef BSTRING
|
||||
#define BSTRING
|
||||
#undef bcmp
|
||||
#undef bcopy
|
||||
#undef bzero
|
||||
#undef index
|
||||
#undef rindex
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/* Configuration for GNU C-compiler for hosts running System V Release 4
|
||||
Copyright (C) 1988 Free Software Foundation, Inc.
|
||||
Copyright (C) 1988, 1997 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU CC.
|
||||
|
||||
|
@ -18,15 +18,7 @@ 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. */
|
||||
|
||||
#define bcopy(src,dst,len) memcpy ((dst),(src),(len))
|
||||
#define bzero(dst,len) memset ((dst),0,(len))
|
||||
#define bcmp(left,right,len) memcmp ((left),(right),(len))
|
||||
|
||||
#define rindex strrchr
|
||||
#define index strchr
|
||||
|
||||
#define USG
|
||||
#define HAVE_VPRINTF
|
||||
|
||||
#define POSIX
|
||||
|
||||
|
|
1613
gcc/configure
vendored
1613
gcc/configure
vendored
File diff suppressed because it is too large
Load diff
123
gcc/configure.in
123
gcc/configure.in
|
@ -143,7 +143,9 @@ EGCS_PROG_INSTALL
|
|||
AC_PROG_CC
|
||||
AC_PROG_MAKE_SET
|
||||
|
||||
AC_CHECK_HEADERS(limits.h stddef.h string.h strings.h stdlib.h time.h unistd.h varargs.h sys/varargs.h)
|
||||
AC_HEADER_STDC
|
||||
AC_HEADER_TIME
|
||||
AC_CHECK_HEADERS(limits.h stddef.h string.h strings.h stdlib.h time.h fcntl.h unistd.h sys/file.h sys/time.h sys/resource.h sys/param.h sys/times.h varargs.h sys/varargs.h)
|
||||
|
||||
# Use <inttypes.h> only if it exists,
|
||||
# doesn't clash with <sys/types.h>, and declares intmax_t.
|
||||
|
@ -158,15 +160,29 @@ AC_CACHE_VAL(gcc_cv_header_inttypes_h,
|
|||
gcc_cv_header_inttypes_h=no)])
|
||||
AC_MSG_RESULT($gcc_cv_header_inttypes_h)
|
||||
|
||||
AC_CHECK_FUNCS(strtoul)
|
||||
AC_CHECK_FUNCS(bsearch)
|
||||
AC_CHECK_FUNCS(strerror)
|
||||
AC_CHECK_FUNCS(putenv)
|
||||
AC_CHECK_FUNCS(popen)
|
||||
AC_CHECK_FUNCS(vprintf)
|
||||
AC_CHECK_FUNCS(bcopy)
|
||||
AC_CHECK_FUNCS(bzero)
|
||||
AC_CHECK_FUNCS(bcmp)
|
||||
AC_CHECK_FUNCS(index)
|
||||
AC_CHECK_FUNCS(rindex)
|
||||
AC_CHECK_FUNCS(kill)
|
||||
|
||||
GCC_NEED_DECLARATION(malloc)
|
||||
GCC_NEED_DECLARATION(realloc)
|
||||
GCC_NEED_DECLARATION(calloc)
|
||||
GCC_NEED_DECLARATION(free)
|
||||
GCC_NEED_DECLARATION(index)
|
||||
GCC_NEED_DECLARATION(rindex)
|
||||
GCC_NEED_DECLARATION(getenv)
|
||||
|
||||
AC_DECL_SYS_SIGLIST
|
||||
|
||||
AC_CHECK_FUNCS(strerror strtoul bsearch)
|
||||
|
||||
# File extensions
|
||||
manext='.1'
|
||||
objext='.o'
|
||||
|
@ -414,9 +430,8 @@ for machine in $build $host $target; do
|
|||
tmake_file="t-netbsd arm/t-netbsd"
|
||||
# On NetBSD, the headers are already okay, except for math.h.
|
||||
fixincludes=fixinc.math
|
||||
use_collect2=yes
|
||||
;;
|
||||
arm-*-linux-gnuaout*) # ARM Linux
|
||||
arm-*-linux-gnuaout*) # ARM GNU/Linux
|
||||
cpu_type=arm
|
||||
xm_file=arm/xm-linux.h
|
||||
xmake_file=x-linux
|
||||
|
@ -788,7 +803,6 @@ for machine in $build $host $target; do
|
|||
;;
|
||||
i[[3456]]86-*-freebsdelf*)
|
||||
tm_file="i386/i386.h i386/att.h linux.h i386/freebsd-elf.h i386/perform.h"
|
||||
xm_file=i386/xm-freebsd.h
|
||||
# On FreeBSD, the headers are already ok, except for math.h.
|
||||
fixincludes=fixinc.math
|
||||
tmake_file=i386/t-freebsd
|
||||
|
@ -798,14 +812,12 @@ for machine in $build $host $target; do
|
|||
;;
|
||||
i[[3456]]86-*-freebsd*)
|
||||
tm_file=i386/freebsd.h
|
||||
xm_file=i386/xm-freebsd.h
|
||||
# On FreeBSD, the headers are already ok, except for math.h.
|
||||
fixincludes=fixinc.math
|
||||
tmake_file=i386/t-freebsd
|
||||
;;
|
||||
i[[3456]]86-*-netbsd*)
|
||||
tm_file=i386/netbsd.h
|
||||
xm_file=i386/xm-netbsd.h
|
||||
# On NetBSD, the headers are already okay, except for math.h.
|
||||
fixincludes=fixinc.math
|
||||
tmake_file=t-netbsd
|
||||
|
@ -836,7 +848,7 @@ for machine in $build $host $target; do
|
|||
fi
|
||||
install_headers_dir=install-headers-cpio
|
||||
;;
|
||||
i[[3456]]86-*-linux-gnuoldld*) # Intel 80386's running Linux
|
||||
i[[3456]]86-*-linux-gnuoldld*) # Intel 80386's running GNU/Linux
|
||||
xm_file=i386/xm-linux.h # with a.out format using pre BFD linkers
|
||||
xmake_file=x-linux-aout
|
||||
tmake_file="t-linux-aout i386/t-crtstuff"
|
||||
|
@ -844,7 +856,7 @@ for machine in $build $host $target; do
|
|||
fixincludes=Makefile.in #On Linux, the headers are ok already.
|
||||
gnu_ld=yes
|
||||
;;
|
||||
i[[3456]]86-*-linux-gnuaout*) # Intel 80386's running Linux
|
||||
i[[3456]]86-*-linux-gnuaout*) # Intel 80386's running GNU/Linux
|
||||
xm_file=i386/xm-linux.h # with a.out format
|
||||
xmake_file=x-linux-aout
|
||||
tmake_file="t-linux-aout i386/t-crtstuff"
|
||||
|
@ -853,9 +865,9 @@ for machine in $build $host $target; do
|
|||
gnu_ld=yes
|
||||
;;
|
||||
i[[3456]]86-*-linux-gnulibc1)
|
||||
xm_file=i386/xm-linux.h # Intel 80386's running Linux
|
||||
xm_file=i386/xm-linux.h # Intel 80386's running GNU/Linux
|
||||
xmake_file=x-linux # with ELF format using the
|
||||
tm_file=i386/linux.h # Linux C library 5
|
||||
tm_file=i386/linux.h # GNU/Linux C library 5
|
||||
tmake_file="t-linux t-linux-gnulibc1 i386/t-crtstuff"
|
||||
extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
|
||||
fixincludes=Makefile.in #On Linux, the headers are ok already.
|
||||
|
@ -864,9 +876,9 @@ for machine in $build $host $target; do
|
|||
thread_file='single'
|
||||
fi
|
||||
;;
|
||||
i[[3456]]86-*-linux-gnu*) # Intel 80386's running Linux
|
||||
i[[3456]]86-*-linux-gnu*) # Intel 80386's running GNU/Linux
|
||||
xm_file=i386/xm-linux.h # with ELF format using glibc 2
|
||||
xmake_file=x-linux # aka Linux C library 6
|
||||
xmake_file=x-linux # aka GNU/Linux C library 6
|
||||
tm_file=i386/linux.h
|
||||
tmake_file="t-linux i386/t-crtstuff"
|
||||
extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
|
||||
|
@ -1080,7 +1092,7 @@ for machine in $build $host $target; do
|
|||
;;
|
||||
i860-alliant-*) # Alliant FX/2800
|
||||
tm_file="${tm_file} svr4.h i860/sysv4.h i860/fx2800.h"
|
||||
xm_file="${xm_file} i860/xm-fx2800.h"
|
||||
xm_file="${xm_file}"
|
||||
xmake_file=i860/x-fx2800
|
||||
tmake_file=i860/t-fx2800
|
||||
extra_parts="crtbegin.o crtend.o"
|
||||
|
@ -1284,7 +1296,7 @@ for machine in $build $host $target; do
|
|||
;;
|
||||
m68k-ncr-sysv*) # NCR Tower 32 SVR3
|
||||
tm_file=m68k/tower-as.h
|
||||
xm_file=m68k/xm-tower.h
|
||||
xm_file="${xm_file} xm-svr3.h"
|
||||
xmake_file=m68k/x-tower
|
||||
extra_parts="crtbegin.o crtend.o"
|
||||
extra_headers=math-68881.h
|
||||
|
@ -1432,7 +1444,6 @@ for machine in $build $host $target; do
|
|||
else
|
||||
tm_file=m68k/sun3.h
|
||||
fi
|
||||
xm_file=m68k/xm-sun3.h
|
||||
use_collect2=yes
|
||||
extra_headers=math-68881.h
|
||||
;;
|
||||
|
@ -1465,7 +1476,6 @@ for machine in $build $host $target; do
|
|||
;;
|
||||
m68k-*-netbsd*)
|
||||
tm_file=m68k/netbsd.h
|
||||
xm_file=m68k/xm-netbsd.h
|
||||
# On NetBSD, the headers are already okay, except for math.h.
|
||||
fixincludes=fixinc.math
|
||||
tmake_file=t-netbsd
|
||||
|
@ -1483,32 +1493,32 @@ for machine in $build $host $target; do
|
|||
extra_parts="crtbegin.o crtend.o"
|
||||
extra_headers=math-68881.h
|
||||
;;
|
||||
m68k-*-linux-gnuaout*) # Motorola m68k's running Linux
|
||||
m68k-*-linux-gnuaout*) # Motorola m68k's running GNU/Linux
|
||||
xm_file=m68k/xm-linux.h # with a.out format
|
||||
xmake_file=x-linux
|
||||
tm_file=m68k/linux-aout.h
|
||||
tmake_file="t-linux-aout m68k/t-linux-aout"
|
||||
fixincludes=Makefile.in #On Linux, the headers are ok already.
|
||||
fixincludes=Makefile.in # The headers are ok already.
|
||||
extra_headers=math-68881.h
|
||||
gnu_ld=yes
|
||||
;;
|
||||
m68k-*-linux-gnulibc1) # Motorola m68k's running Linux
|
||||
m68k-*-linux-gnulibc1) # Motorola m68k's running GNU/Linux
|
||||
xm_file=m68k/xm-linux.h # with ELF format using the
|
||||
xmake_file=x-linux # Linux C library 5
|
||||
xmake_file=x-linux # GNU/Linux C library 5
|
||||
tm_file=m68k/linux.h
|
||||
tmake_file="t-linux t-linux-gnulibc1 m68k/t-linux"
|
||||
extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
|
||||
fixincludes=Makefile.in #On Linux, the headers are ok already.
|
||||
fixincludes=Makefile.in # The headers are ok already.
|
||||
extra_headers=math-68881.h
|
||||
gnu_ld=yes
|
||||
;;
|
||||
m68k-*-linux-gnu*) # Motorola m68k's running Linux
|
||||
m68k-*-linux-gnu*) # Motorola m68k's running GNU/Linux
|
||||
xm_file=m68k/xm-linux.h # with ELF format using glibc 2
|
||||
xmake_file=x-linux # aka the Linux C library 6.
|
||||
xmake_file=x-linux # aka the GNU/Linux C library 6.
|
||||
tm_file=m68k/linux.h
|
||||
tmake_file="t-linux m68k/t-linux"
|
||||
extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
|
||||
fixincludes=Makefile.in #On Linux, the headers are ok already.
|
||||
fixincludes=Makefile.in # The headers are ok already.
|
||||
extra_headers=math-68881.h
|
||||
gnu_ld=yes
|
||||
if [[ x$enable_threads = xyes ]]; then
|
||||
|
@ -1764,7 +1774,6 @@ for machine in $build $host $target; do
|
|||
;;
|
||||
mips-dec-netbsd*) # Decstation running NetBSD
|
||||
tm_file=mips/netbsd.h
|
||||
xm_file=mips/xm-netbsd.h
|
||||
# On NetBSD, the headers are already okay, except for math.h.
|
||||
fixincludes=fixinc.math
|
||||
tmake_file=t-netbsd
|
||||
|
@ -2092,7 +2101,6 @@ for machine in $build $host $target; do
|
|||
;;
|
||||
ns32k-pc532-netbsd*)
|
||||
tm_file=ns32k/netbsd.h
|
||||
xm_file=ns32k/xm-netbsd.h
|
||||
# On NetBSD, the headers are already okay, except for math.h.
|
||||
fixincludes=fixinc.math
|
||||
tmake_file=t-netbsd
|
||||
|
@ -2322,7 +2330,6 @@ for machine in $build $host $target; do
|
|||
;;
|
||||
sparc-*-netbsd*)
|
||||
tm_file=sparc/netbsd.h
|
||||
xm_file=sparc/xm-netbsd.h
|
||||
# On NetBSD, the headers are already okay, except for math.h.
|
||||
fixincludes=fixinc.math
|
||||
tmake_file=t-netbsd
|
||||
|
@ -2337,14 +2344,14 @@ for machine in $build $host $target; do
|
|||
#float_format=i128
|
||||
float_format=i64
|
||||
;;
|
||||
sparc-*-linux-gnuaout*) # Sparc's running Linux, a.out
|
||||
sparc-*-linux-gnuaout*) # Sparc's running GNU/Linux, a.out
|
||||
xm_file="sparc/xm-sparc.h sparc/xm-linux.h"
|
||||
tm_file=sparc/linux-aout.h
|
||||
xmake_file=x-linux
|
||||
fixincludes=Makefile.in #On Linux, the headers are ok already.
|
||||
gnu_ld=yes
|
||||
;;
|
||||
sparc-*-linux-gnulibc1*) # Sparc's running Linux, libc5
|
||||
sparc-*-linux-gnulibc1*) # Sparc's running GNU/Linux, libc5
|
||||
xm_file="sparc/xm-sparc.h sparc/xm-linux.h"
|
||||
xmake_file=x-linux
|
||||
tm_file=sparc/linux.h
|
||||
|
@ -2353,7 +2360,7 @@ for machine in $build $host $target; do
|
|||
fixincludes=Makefile.in #On Linux, the headers are ok already.
|
||||
gnu_ld=yes
|
||||
;;
|
||||
sparc-*-linux-gnu*) # Sparc's running Linux, libc6
|
||||
sparc-*-linux-gnu*) # Sparc's running GNU/Linux, libc6
|
||||
xm_file="sparc/xm-sparc.h sparc/xm-linux.h"
|
||||
xmake_file=x-linux
|
||||
tm_file=sparc/linux.h
|
||||
|
@ -2444,12 +2451,12 @@ for machine in $build $host $target; do
|
|||
tm_file=sparc/sp64-elf.h
|
||||
extra_parts="crtbegin.o crtend.o"
|
||||
;;
|
||||
sparc64-*-linux*) # 64-bit Sparc's running Linux
|
||||
sparc64-*-linux*) # 64-bit Sparc's running GNU/Linux
|
||||
tmake_file=sparc/t-sp64
|
||||
xm_file="sparc/xm-sp64.h sparc/xm-linux.h"
|
||||
tm_file=sparc/linux64.h
|
||||
xmake_file=x-linux
|
||||
fixincludes=Makefile.in # On Linux, the headers are ok already.
|
||||
fixincludes=Makefile.in # The headers are ok already.
|
||||
gnu_ld=yes
|
||||
;;
|
||||
# This hasn't been upgraded to GCC 2.
|
||||
|
@ -2479,12 +2486,11 @@ for machine in $build $host $target; do
|
|||
;;
|
||||
vax-*-sysv*) # vaxen running system V
|
||||
tm_file="${tm_file} vax/vaxv.h"
|
||||
xm_file="${tm_file} vax/xm-vaxv.h"
|
||||
xm_file="${xm_file} vax/xm-vaxv.h"
|
||||
float_format=vax
|
||||
;;
|
||||
vax-*-netbsd*)
|
||||
tm_file="${tm_file} netbsd.h vax/netbsd.h"
|
||||
xm_file="${xm_file} xm-netbsd.h"
|
||||
# On NetBSD, the headers are already okay, except for math.h.
|
||||
fixincludes=fixinc.math
|
||||
tmake_file=t-netbsd
|
||||
|
@ -2583,6 +2589,37 @@ for machine in $build $host $target; do
|
|||
fi
|
||||
fi
|
||||
;;
|
||||
arm*-*-*)
|
||||
case "x$with_cpu" in
|
||||
x)
|
||||
# The most generic
|
||||
target_cpu_default2="TARGET_CPU_generic"
|
||||
;;
|
||||
|
||||
# Distinguish cores, and major variants
|
||||
# arm7m doesn't exist, but D & I don't affect code
|
||||
xarm[23678] | xarm250 | xarm[67][01]0 \
|
||||
| xarm7m | xarm7dm | xarm7dmi | xarm7tdmi \
|
||||
| xarm7100 | xarm7500 | xarm7500fe | xarm810 \
|
||||
| xstrongarm | xstrongarm110)
|
||||
target_cpu_default2="TARGET_CPU_$with_cpu"
|
||||
;;
|
||||
|
||||
xyes | xno)
|
||||
echo "--with-cpu must be passed a value" 1>&2
|
||||
exit 1
|
||||
;;
|
||||
|
||||
*)
|
||||
if [[ x$pass2done = xyes ]]
|
||||
then
|
||||
echo "Unknown cpu used with --with-cpu=$with_cpu" 1>&2
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
|
||||
mips*-*-ecoff* | mips*-*-elf*)
|
||||
if [[ x$gas = xyes ]]
|
||||
then
|
||||
|
@ -2618,8 +2655,11 @@ for machine in $build $host $target; do
|
|||
;;
|
||||
|
||||
*)
|
||||
echo "Unknown cpu used with --with-cpu=$with_cpu" 1>&2
|
||||
exit 1
|
||||
if [[ x$pass2done = xyes ]]
|
||||
then
|
||||
echo "Unknown cpu used with --with-cpu=$with_cpu" 1>&2
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
|
@ -2632,8 +2672,11 @@ for machine in $build $host $target; do
|
|||
target_cpu_default2="TARGET_CPU_$with_cpu"
|
||||
;;
|
||||
*)
|
||||
echo "Unknown cpu used with --with-cpu=$with_cpu" 1>&2
|
||||
exit 1
|
||||
if [[ x$pass2done = xyes ]]
|
||||
then
|
||||
echo "Unknown cpu used with --with-cpu=$with_cpu" 1>&2
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
# configure.lang for GNU CC
|
||||
# This script is run by configure for configuration of language
|
||||
# subdirectories which conform to the old GCC configure mechansim
|
||||
# subdirectories which conform to the old GCC configure mechanism
|
||||
# for such subdirectories.
|
||||
|
||||
# Copyright (C) 1997 Free Software Foundation, Inc.
|
||||
|
|
|
@ -37,6 +37,13 @@ Wed Dec 3 11:44:52 1997 Jason Merrill <jason@yorick.cygnus.com>
|
|||
|
||||
* tree.c, cp-tree.h (get_target_expr): New fn.
|
||||
|
||||
Wed Dec 3 08:47:27 1997 Paul Eggert <eggert@twinsun.com>
|
||||
|
||||
* pt.c (check_explicit_specialization): Fix misspelling in
|
||||
diagnostic: `preceeded'.
|
||||
* typeck.c (get_delta_difference): Fix misspelling in diagnostic:
|
||||
`conversiona'.
|
||||
|
||||
1997-12-02 Mark Mitchell <mmitchell@usa.net>
|
||||
|
||||
* pt.c (determine_explicit_specialization): Avoid an internal
|
||||
|
@ -63,6 +70,11 @@ Fri Nov 28 01:58:14 1997 Jason Merrill <jason@yorick.cygnus.com>
|
|||
* pt.c (check_explicit_specialization): Complain about using a
|
||||
template-id for a non-specialization.
|
||||
|
||||
Fri Nov 28 12:35:19 1997 Scott Christley <scottc@net-community.com>
|
||||
|
||||
* repo.c: Prototype rindex only if needed.
|
||||
* xref.c: Likewise.
|
||||
|
||||
Fri Nov 28 01:56:35 1997 Bruno Haible <bruno@linuix.mathematik.uni-karlsruhe.de>
|
||||
|
||||
* error.c (dump_decl): Handle TEMPLATE_ID_EXPR.
|
||||
|
@ -101,6 +113,11 @@ Wed Nov 26 20:28:49 1997 Jason Merrill <jason@yorick.cygnus.com>
|
|||
|
||||
* except.c (expand_throw): Call mark_used on the destructor.
|
||||
|
||||
Wed Nov 26 15:13:48 1997 Jeffrey A Law (law@cygnus.com)
|
||||
|
||||
* lex.c (lang_init): Enable flag_exceptions by default if no
|
||||
command line switch was specified.
|
||||
|
||||
1997-11-26 Mark Mitchell <mmitchell@usa.net>
|
||||
|
||||
* pt.c (unify): Handle `void' template parameters in
|
||||
|
|
|
@ -1,8 +1,3 @@
|
|||
Wed Oct 22 18:56:31 1997 Jeffrey A Law (law@cygnus.com)
|
||||
|
||||
* lex.c (lang_init): Enable flag_exceptions by default if no
|
||||
command line switch was specified.
|
||||
|
||||
Wed Sep 10 16:39:26 1997 Jim Wilson <wilson@cygnus.com>
|
||||
|
||||
* Make-lang.in (LN, LN_S): New macros, use where appropriate.
|
||||
|
|
|
@ -92,8 +92,8 @@ g++.o: $(CONFIG_H) multilib.h config.status $(lang_specs_files) g++.c
|
|||
|
||||
# Create the compiler driver for g++.
|
||||
g++$(exeext): g++.o g++spec.o version.o choose-temp.o pexecute.o prefix.o $(LIBDEPS) $(EXTRA_GCC_OBJS)
|
||||
$(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ g++.o g++spec.o prefix.o version.o \
|
||||
choose-temp.o pexecute.o $(EXTRA_GCC_OBJS) $(LIBS)
|
||||
$(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ g++.o g++spec.o prefix.o \
|
||||
version.o choose-temp.o pexecute.o $(EXTRA_GCC_OBJS) $(LIBS)
|
||||
|
||||
# Create a version of the g++ driver which calls the cross-compiler.
|
||||
g++-cross$(exeext): g++$(exeext)
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/* Functions related to building classes and their related objects.
|
||||
Copyright (C) 1987, 92, 93, 94, 95, 1996 Free Software Foundation, Inc.
|
||||
Copyright (C) 1987, 92, 93, 94, 95, 96, 1997 Free Software Foundation, Inc.
|
||||
Contributed by Michael Tiemann (tiemann@cygnus.com)
|
||||
|
||||
This file is part of GNU CC.
|
||||
|
@ -72,7 +72,7 @@ struct class_level
|
|||
int unused;
|
||||
};
|
||||
|
||||
/* The currect_class_ptr is the pointer to the current class.
|
||||
/* The current_class_ptr is the pointer to the current class.
|
||||
current_class_ref is the actual current class. */
|
||||
tree current_class_ptr, current_class_ref;
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/* Process declarations and variables for C compiler.
|
||||
Copyright (C) 1988, 92, 93, 94, 95, 1996 Free Software Foundation, Inc.
|
||||
Copyright (C) 1988, 92, 93, 94, 95, 96, 1997 Free Software Foundation, Inc.
|
||||
Hacked by Michael Tiemann (tiemann@cygnus.com)
|
||||
|
||||
This file is part of GNU CC.
|
||||
|
@ -2307,7 +2307,7 @@ decls_match (newdecl, olddecl)
|
|||
tree oldargs = DECL_TEMPLATE_PARMS (olddecl);
|
||||
int i;
|
||||
|
||||
/* Run through all the levels of template parmaters, checking
|
||||
/* Run through all the levels of template parameters, checking
|
||||
that they match. */
|
||||
while (newargs && oldargs)
|
||||
{
|
||||
|
@ -6422,7 +6422,7 @@ cp_finish_decl (decl, init, asmspec_tree, need_pop, flags)
|
|||
|
||||
/* If we have installed this as the canonical typedef for this
|
||||
type, and that type has not been defined yet, delay emitting
|
||||
the debug informaion for it, as we will emit it later. */
|
||||
the debug information for it, as we will emit it later. */
|
||||
if (TYPE_MAIN_DECL (TREE_TYPE (decl)) == decl
|
||||
&& TYPE_SIZE (TREE_TYPE (decl)) == NULL_TREE)
|
||||
TYPE_DECL_SUPPRESS_DEBUG (decl) = 1;
|
||||
|
@ -7859,7 +7859,7 @@ grokdeclarator (declarator, declspecs, decl_context, initialized, attrlist)
|
|||
name = IDENTIFIER_POINTER (dname);
|
||||
}
|
||||
if (! IDENTIFIER_OPNAME_P (dname)
|
||||
/* Linux headers use '__op'. Arrgh. */
|
||||
/* GNU/Linux headers use '__op'. Arrgh. */
|
||||
|| IDENTIFIER_TYPENAME_P (dname) && ! TREE_TYPE (dname))
|
||||
name = IDENTIFIER_POINTER (dname);
|
||||
else
|
||||
|
@ -12144,7 +12144,7 @@ finish_function (lineno, call_poplevel, nested)
|
|||
poplevel (2, 0, 0); /* XXX change to 1 */
|
||||
|
||||
/* Back to the top of destructor. */
|
||||
/* Dont execute destructor code if `this' is NULL. */
|
||||
/* Don't execute destructor code if `this' is NULL. */
|
||||
|
||||
start_sequence ();
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/* Handle exceptional things in C++.
|
||||
Copyright (C) 1989, 92-95, 1996 Free Software Foundation, Inc.
|
||||
Copyright (C) 1989, 92-96, 1997 Free Software Foundation, Inc.
|
||||
Contributed by Michael Tiemann <tiemann@cygnus.com>
|
||||
Rewritten by Mike Stump <mrs@cygnus.com>, based upon an
|
||||
initial re-implementation courtesy Tad Hunt.
|
||||
|
@ -1109,7 +1109,7 @@ start_anon_func ()
|
|||
interface_unknown = 1;
|
||||
|
||||
params = void_list_node;
|
||||
/* tcf stands for throw clean funciton. */
|
||||
/* tcf stands for throw clean function. */
|
||||
sprintf (name, "__tcf_%d", counter++);
|
||||
t = make_call_declarator (get_identifier (name), params, NULL_TREE,
|
||||
NULL_TREE);
|
||||
|
|
|
@ -401,7 +401,7 @@ places
|
|||
|
||||
Eberhard Mattes did the EMX port. His address is
|
||||
mattes@@azu.informatik.uni-stuttgart.de.
|
||||
Read the FAQ file included with the distribution before harrassing the author.
|
||||
Read the FAQ file included with the distribution before harassing the author.
|
||||
|
||||
@cindex Apple support
|
||||
@cindex Macintosh support
|
||||
|
@ -1901,7 +1901,7 @@ still be true when 2.8.0 is released.
|
|||
As of version 2.7.0, g++ has exception support on most but not all
|
||||
platforms
|
||||
(no support on MIPS-based platforms yet), but
|
||||
it doesn't work right if optimizaton is enabled, which means the
|
||||
it doesn't work right if optimization is enabled, which means the
|
||||
exception
|
||||
implementation is still
|
||||
not really ready for production use.
|
||||
|
|
|
@ -1425,7 +1425,7 @@ Major disadvantages when enabling exceptions are:
|
|||
@itemize @bullet
|
||||
@item
|
||||
Code that uses caller saved registers, can't, when flow can be
|
||||
transfered into that code from an exception handler. In high performace
|
||||
transferred into that code from an exception handler. In high performance
|
||||
code this should not usually be true, so the effects should be minimal.
|
||||
|
||||
@end itemize
|
||||
|
@ -1478,7 +1478,7 @@ This can be passed in many ways, currently a tree is used. Another
|
|||
possibility would be insns for the handler, or a label that denotes a
|
||||
handler. I have a feeling insns might be the the best way to pass it.
|
||||
Semantics are, if an exception is thrown inside the region, control is
|
||||
transfered unconditionally to the handler. If control passes through
|
||||
transferred unconditionally to the handler. If control passes through
|
||||
the handler, then the backend is to rethrow the exception, in the
|
||||
context of the end of the original region. The handler is protected by
|
||||
the conventional mechanisms; it is the frontend's responsibility to
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/* Handle initialization things in C++.
|
||||
Copyright (C) 1987, 89, 92, 93, 94, 95, 1996 Free Software Foundation, Inc.
|
||||
Copyright (C) 1987, 89, 92-96, 1997 Free Software Foundation, Inc.
|
||||
Contributed by Michael Tiemann (tiemann@cygnus.com)
|
||||
|
||||
This file is part of GNU CC.
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/* Separate lexical analyzer for GNU C++.
|
||||
Copyright (C) 1987, 89, 92, 93, 94, 95, 1996 Free Software Foundation, Inc.
|
||||
Copyright (C) 1987, 89, 92-96, 1997 Free Software Foundation, Inc.
|
||||
Hacked by Michael Tiemann (tiemann@cygnus.com)
|
||||
|
||||
This file is part of GNU CC.
|
||||
|
|
7701
gcc/cp/parse.c
7701
gcc/cp/parse.c
File diff suppressed because it is too large
Load diff
10
gcc/cp/pt.c
10
gcc/cp/pt.c
|
@ -1,5 +1,5 @@
|
|||
/* Handle parameterized types (templates) for GNU C++.
|
||||
Copyright (C) 1992, 93, 94, 95, 1996 Free Software Foundation, Inc.
|
||||
Copyright (C) 1992, 93, 94, 95, 96, 1997 Free Software Foundation, Inc.
|
||||
Written by Ken Raeburn (raeburn@cygnus.com) while at Watchmaker Computing.
|
||||
Rewritten by Jason Merrill (jason@cygnus.com).
|
||||
|
||||
|
@ -150,7 +150,7 @@ is_member_template (t)
|
|||
|
||||
if (TREE_CODE (t) != FUNCTION_DECL
|
||||
&& !DECL_FUNCTION_TEMPLATE_P (t))
|
||||
/* Anything that isn't a template or a template functon is
|
||||
/* Anything that isn't a template or a template function is
|
||||
certainly not a member template. */
|
||||
return 0;
|
||||
|
||||
|
@ -509,7 +509,7 @@ check_explicit_specialization (declarator, decl, template_count, flags)
|
|||
return 0;
|
||||
}
|
||||
else if (pedantic || uses_template_parms (decl))
|
||||
pedwarn ("explicit specialization not preceeded by `template <>'");
|
||||
pedwarn ("explicit specialization not preceded by `template <>'");
|
||||
}
|
||||
|
||||
if (TREE_CODE (declarator) != TEMPLATE_ID_EXPR)
|
||||
|
@ -3505,7 +3505,7 @@ overload_template_name (type)
|
|||
pushdecl_class_level (decl);
|
||||
}
|
||||
|
||||
/* Like type_unfication but designed specially to handle conversion
|
||||
/* Like type_unification but designed specially to handle conversion
|
||||
operators. */
|
||||
|
||||
int
|
||||
|
@ -4613,7 +4613,7 @@ instantiate_decl (d)
|
|||
|
||||
setup_vtbl_ptr ();
|
||||
/* Always keep the BLOCK node associated with the outermost
|
||||
pair of curley braces of a function. These are needed
|
||||
pair of curly braces of a function. These are needed
|
||||
for correct operation of dwarfout.c. */
|
||||
keep_next_level ();
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/* Code to maintain a C++ template repository.
|
||||
Copyright (C) 1995 Free Software Foundation, Inc.
|
||||
Copyright (C) 1995, 1997 Free Software Foundation, Inc.
|
||||
Contributed by Jason Merrill (jason@cygnus.com)
|
||||
|
||||
This file is part of GNU CC.
|
||||
|
@ -41,7 +41,9 @@ Boston, MA 02111-1307, USA. */
|
|||
extern char * getenv ();
|
||||
#endif
|
||||
|
||||
#ifdef NEED_DECLARATION_RINDEX
|
||||
extern char *rindex ();
|
||||
#endif rindex
|
||||
extern char *getpwd PROTO((void));
|
||||
|
||||
static tree repo_get_id PROTO((tree));
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue