Merge from gcc-2.8

From-SVN: r16987
This commit is contained in:
Jeff Law 1997-12-06 17:31:01 -07:00
parent 27b6b158c2
commit 956d69504d
157 changed files with 14334 additions and 6220 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -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

View File

@ -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
View File

@ -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

View File

@ -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
View File

@ -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)])

View File

@ -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"

View File

@ -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) \

View File

@ -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)

View File

@ -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))

View File

@ -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));

View File

@ -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)

View File

@ -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)
{

View File

@ -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;

View File

@ -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");

View File

@ -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()

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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"))

View File

@ -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 \

View File

@ -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) \

View File

@ -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"

View File

@ -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

View File

@ -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);
}

View File

@ -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

View File

@ -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

View File

@ -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);
}

View File

@ -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}}

View File

@ -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).

View File

@ -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

View File

@ -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 ';'

View File

@ -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 ';'

View File

@ -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).

View File

@ -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 \

View File

@ -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

View File

@ -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;

View File

@ -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 \

View File

@ -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).

View File

@ -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 */

View File

@ -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:\

View File

@ -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

View File

@ -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

View File

@ -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. */

View File

@ -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. */

View File

@ -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) \

View File

@ -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

View File

@ -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).

View File

@ -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 */

View File

@ -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)

View File

@ -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. */

View File

@ -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.

View File

@ -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)

View File

@ -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. */

View File

@ -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

View File

@ -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 \

View File

@ -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;

View File

@ -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. */

View File

@ -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)]

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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)]

View File

@ -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).

View File

@ -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

View File

@ -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.

View File

@ -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).

View File

@ -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);

View File

@ -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

View File

@ -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)]

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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).

View File

@ -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;
}

View File

@ -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,

View File

@ -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)

View File

@ -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

View File

@ -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)))
{

View File

@ -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. */

View File

@ -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)]

View File

@ -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

View File

@ -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

File diff suppressed because it is too large Load Diff

View File

@ -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
;;

View File

@ -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.

View File

@ -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

View File

@ -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.

View File

@ -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)

View File

@ -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;

View File

@ -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 ();

View File

@ -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);

View File

@ -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.

View File

@ -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

View File

@ -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.

View File

@ -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.

File diff suppressed because it is too large Load Diff

View File

@ -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 ();

View File

@ -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