reload.c (find_reloads): If there are multiple RELOAD_FOR_INPUT_ADDRESS / RELOAD_FOR_OUTPUT_ADDRESS...
* reload.c (find_reloads): If there are multiple
RELOAD_FOR_INPUT_ADDRESS / RELOAD_FOR_OUTPUT_ADDRESS reloads for
one operand, change RELOAD_FOR_INPADDR_ADDRESS /
RELOAD_FOR_OUTADDR_ADDRESS for all but the first
RELOAD_FOR_INPUT_ADDRESS / RELOAD_FOR_OUTPUT_ADDRESS reloads.
Fix 980701-1.f (which was producing "unaligned trap" on an Alpha running GNU/Linux, as predicted):
Wed Jul 1 11:19:13 1998 Craig Burley <burley@gnu.org>
Fix 980701-1.f (which was producing "unaligned trap"
on an Alpha running GNU/Linux, as predicted):
* equiv.c (ffeequiv_layout_local_): Don't bother
coping with pre-padding of entire area while building
it; do that instead after the building is done, and
do it by modifying only the modulo field. This covers
the case of alignment stringency being increased without
lowering the starting offset, unlike the previous changes,
and even more elegantly than those.
* target.c (ffetarget_align): Make sure alignments
are non-zero, just in case.
Dave Love [Wed, 1 Jul 1998 10:30:22 +0000 (10:30 +0000)]
wsfe.c (s_wsfe): Fix setting of f__curunit lost in previous change.
1998-06-29 Dave Love <d.love@dl.ac.uk>
* libI77/wsfe.c (s_wsfe): Fix setting of f__curunit lost in
previous change.
* libI77/rsfe.c (s_rsfe): Likewise.
expr.c (emit_group_load, [...]): Rewrite considering the size and alignment of the structure being manipulated.
* expr.c (emit_group_load, emit_group_store): Rewrite considering
the size and alignment of the structure being manipulated.
* expr.c, calls.c, function.c: Update all callers.
* expr.h: Update prototypes.
* cse.c (invalidate): Cope with parallels.
Jeff Law [Tue, 30 Jun 1998 22:21:11 +0000 (16:21 -0600)]
jump.c (jump_optimize): Show that the jump chain is not valid when not optimizing.
* jump.c (jump_optimize): Show that the jump chain is not
valid when not optimizing.
Opps. Helps to actually commit the file you really wanted to change :-)
* rtl.def (CONSTANT_P_RTX): New.
* rtl.h (CONSTANT_P): Recognize it.
* cse.c (fold_rtx): Eliminate it.
* expr.c (can_handle_constant_p): New variable.
(init_expr_once): Initialize it.
(expand_builtin): Generate CONSTANT_P_RTX if the expression is not
immediately recognizable as a constant.
Kaveh R. Ghazi [Tue, 30 Jun 1998 11:10:55 +0000 (11:10 +0000)]
Add the ability to GCC_NEED_DECLARATION{S} for looking in arbitrary header...
Add the ability to GCC_NEED_DECLARATION{S} for looking in arbitrary
header files when searching for function declarations. Use this
functionality to check for getrlimit/setrlimit.
* aclocal.m4 (GCC_NEED_DECLARATION): Accept an optional second
argument, which is typically preprocessor code used to draw in
additional header files when looking for a function declaration.
(GCC_NEED_DECLARATIONS): Likewise.
* configure.in (GCC_NEED_DECLARATIONS): Add checks for getrlimit
and setrlimit, search for them in sys/resource.h.
* acconfig.h: Add stubs for NEED_DECLARATION_GETRLIMIT and
NEED_DECLARATION_SETRLIMIT.
* system.h: Prototype getrlimit/setrlimit if necessary.
David Edelsohn [Tue, 30 Jun 1998 10:20:04 +0000 (06:20 -0400)]
[multiple changes]
Tue Jun 30 13:11:42 1998 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
* rs6000/sysv4.h (asm output): add tabs for asm directives.
Tue Jun 30 13:11:42 1998 David Edelsohn <edelsohn@mhpcc.edu>
* Makefile.in (FLAGS_TO_PASS): Set AR_FLAGS to AR_FOR_TARGET_FLAGS.
Craig Burley [Tue, 30 Jun 1998 07:59:40 +0000 (03:59 -0400)]
Fix 980628-*.f:
Mon Jun 29 09:47:33 1998 Craig Burley <burley@gnu.org>
Fix 980628-*.f:
* bld.h: New `pad' field and accessor macros for
ACCTER, ARRTER, and CONTER ops.
* bld.c (ffebld_new_accter, ffebld_new_arrter,
ffebld_new_conter_with_orig): Initialize `pad' field
to zero.
* com.c (ffecom_transform_common_): Include initial
padding (aka modulo aka offset) in size calculation.
Copy initial padding value into FFE initialization expression
so the GBE transformation of that expression includes it.
Make array low bound 0 instead of 1, for consistency.
(ffecom_transform_equiv_): Include initial
padding (aka modulo aka offset) in size calculation.
Copy initial padding value into FFE initialization expression
so the GBE transformation of that expression includes it.
Make array low bound 0 instead of 1, for consistency.
(ffecom_expr_, case FFEBLD_opACCTER): Delete unused `size'
variable.
Track destination offset separately, allowing for
initial padding.
Don't bother setting initial PURPOSE offset if zero.
Include initial padding in size calculation.
(ffecom_expr_, case FFEBLD_opARRTER): Allow for
initial padding.
Include initial padding in size calculation.
Make array low bound 0 instead of 1, for consistency.
(ffecom_finish_global_): Make array low bound 0 instead
of 1, for consistency.
(ffecom_notify_init_storage): Copy `pad' field from old
ACCTER to new ARRTER.
(ffecom_notify_init_symbol): Ditto.
* data.c (ffedata_gather_): Initialize `pad' field in new
ARRTER to 0.
(ffedata_value_): Ditto.
* equiv.c (ffeequiv_layout_local_): When lowering start
of equiv area, extend lowering to maintain needed alignment.
* target.c (ffetarget_align): Handle negative offset correctly.
* global.c (ffeglobal_pad_common): Warn about non-zero
padding only the first time its seen.
If new padding larger than old, update old.
(ffeglobal_save_common): Use correct type for size throughout.
* global.h: Use correct type for size throughout.
(ffeglobal_common_pad): New macro.
(ffeglobal_pad): Delete this unused and broken macro.
Dave Love [Tue, 30 Jun 1998 06:14:57 +0000 (06:14 +0000)]
980628-7.f, [...]: New tests from Craig.
1998-06-29 Dave Love <d.love@dl.ac.uk>
* g77.f-torture/execute/980628-7.f,
g77.f-torture/execute/980628-8.f,
g77.f-torture/execute/980628-9.f,
g77.f-torture/execute/980628-10.f: New tests from Craig.
Kaveh R. Ghazi [Tue, 30 Jun 1998 06:11:43 +0000 (06:11 +0000)]
Remove autoconf things and OS header stuff (namely NULL) from gansidecl.h:
* gansidecl.h (ATTRIBUTE_UNUSED): Use __unused__ not `unused'.
Don't define NULL here. Also, remove all vestiges of autoconf
based checks for bcmp/bcopy/bzero/index/rindex.
* system.h: Immediately after including stdio.h, check for and if
necessary provide a default definition of NULL.
Jeffrey A Law [Tue, 30 Jun 1998 01:41:45 +0000 (01:41 +0000)]
choose-temp.c (make_temp_file): Accept new argument for the file suffix to use.
* choose-temp.c (make_temp_file): Accept new argument for the
file suffix to use. Allocate space for it and add it to the
template.
* mkstemp.c (mkstemps): Renamed from mkstemp. Accept new argument
for the length of the suffix. Update template struture checks
to handle optinal suffix.
* collect2.c (make_temp_file): Update prototype.
(main): Put proper suffixes on temporary files.
* gcc.c (make_temp_file): Update prototype.
(do_spec_1): Put proper suffixes on temporary files.
Should fix irix build problems.
Kaveh R. Ghazi [Mon, 29 Jun 1998 17:36:07 +0000 (17:36 +0000)]
Warning fixes:
* Makefile.in (fix-header): Don't needlessly depend on cpperror.o.
* alias.c (CHECK_ALIAS_SETS_FOR_CONSISTENCY): Cast expansion to
void since it is evaluated in a comma list.
* mips.h (ASM_GENERATE_INTERNAL_LABEL): Always sprintf `NUM'
argument as a long and cast `NUM' to long to ensure it is of the
proper width. Wrap macro arguments in parens when they appear in
the expansion.
* sol2.h (ASM_GENERATE_INTERNAL_LABEL): Likewise.
* sparc.h (ASM_GENERATE_INTERNAL_LABEL): Likewise.
(ASM_DECLARE_RESULT): Fix fprintf format specifier to match
function argument return type.
(REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P, REGNO_OK_FOR_FP_P,
REGNO_OK_FOR_CCFP_P): Use `(unsigned)' not `U'.
* cpplib.c (cpp_message_from_errno): Remove unneeded argument to
cpp_message.
* dbxout.c: Fix the comments after an #endif to reflect the actual
condition tested in the preceding #if.
* except.c (find_all_handler_type_matches): Switch to old-style
function definition.
* expr.c (expand_builtin): Remove unused variable `type' twice.
* gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Cast -1 before comparing it
to an unsigned long.
* haifa-sched.c (print_insn_chain): Remove unused function.
* objc/objc-act.c (build_msg_pool_reference): Hide prototype and
definition.
* toplev.c: When testing whether to include dbxout.h, also include
it when XCOFF_DEBUGGING_INFO is defined.
* unroll.c (unroll_loop): Add parentheses around assignment used
as truth value.
Jeffrey A Law [Sun, 28 Jun 1998 20:07:32 +0000 (20:07 +0000)]
choose-temp.c (choose_temp_base): Restore original variant of this function for compatibility.
* choose-temp.c (choose_temp_base): Restore original variant of
this function for compatibility.
(make_temp_file): This is the new, preferred interface to create
temporary files.
* collect2.c (choose_temp_base): Delete declaration.
(make_temp_file): Declare.
(temp_filename_length, temp_filename): Delete.
(main): Use make_temp_file to get temporary files. Use --lang-c
to force the resulting ctort/dtor file to be compiled with the C
compiler. Make sure to remove temporary files on all exit paths.
* gcc.c (make_temp_file): Provide prototype if MKTEMP_EACH_FILE is
defined.
(choose_temp_base): Only provide prototype if MKTEMP_EACH_FILE is
not defined.
(do_spec): Use make_temp_file if MKTEMP_EACH_FILE is defined.
Jeffrey A Law [Sat, 27 Jun 1998 23:51:33 +0000 (23:51 +0000)]
stl_config.h (__STL_PTHREADS): Don't define for glibc 2 if _G_USING_THUNKS is not defined.
* stl_config.h (__STL_PTHREADS): Don't define for glibc 2 if
_G_USING_THUNKS is not defined.
Bring over from egcs-1.0.3 branch since ppc-linux still uses glibc-1.9x.
jump.c (jump_optimize): Use side_effects_p & may_trap_p instead of rtx_unsafe_p.
* jump.c (jump_optimize): Use side_effects_p & may_trap_p instead
of rtx_unsafe_p. Use modified_between_p instead of reg_set_between_p.
Allow FP moves to be optimized.
(rtx_unsafe_p): Delete.
Carlo Wood [Sat, 27 Jun 1998 23:01:34 +0000 (01:01 +0200)]
libstdc++.exp: Use global variable ld_library_path (not local) that is a lot more persistent...
* lib/libstdc++.exp: Use global variable ld_library_path (not local)
that is a lot more persistent; dejagnu-980528 needs this.
* lib/libstdc++.exp (test_stdc++): Use regular expression " -lstdc.."
to remove -lstdc++ arguments (not " -lstdc.*").
Fred Fish [Sat, 27 Jun 1998 22:36:57 +0000 (22:36 +0000)]
g++spec.c (NEED_MATH_LIBRARY): Define to 1 if not already defined.
* g++spec.c (NEED_MATH_LIBRARY): Define to 1 if not already defined.
(lang_specific_driver): Initialize need_math with NEED_MATH_LIBRARY.
(lang_specific_driver): Only add -lm automatically if need_math is
nonzero.
John Carr [Sat, 27 Jun 1998 17:47:15 +0000 (17:47 +0000)]
dsp16xx.h (FIRST_PSEUDO_REGISTER): Add parentheses to definition.
* dsp16xx.h (FIRST_PSEUDO_REGISTER): Add parentheses to definition.
* dsp16xx.c (next_cc_user_unsigned): New function.
Remove save_next_cc_user_code.
(print_operand): Use HOST_WIDE_INT_PRINT_* macros.
* dsp16xx.md: Call next_cc_user_unsigned instead of using
save_next_cc_user_code.
Use gen_rtx_* functions instead of gen_rtx.
* rs6000.c: Add trap_comparison_operator to PREDICATE_CODES.
Kaveh R. Ghazi [Sat, 27 Jun 1998 09:37:37 +0000 (09:37 +0000)]
mkstemp.c: Include gansidecl.h.
* mkstemp.c: Include gansidecl.h. Rename uint64_t to gcc_uint64_t.
(mkstemp): Remove size specifier for variable `letters'. Call
gettimeofday, not __gettimeofday.
Kaveh R. Ghazi [Sat, 27 Jun 1998 04:44:42 +0000 (04:44 +0000)]
Replace Makefile.in dependencies on expr.h with variable $(EXPR_H),
which contains headers also pulled in via expr.h.
* Makefile.in (EXPR_H): New dependency variable.
(decl2.o): Depend on $(EXPR_H).
(typeck.o): Likewise.
(init.o): Likewise.
(expr.o): Likewise.
Kaveh R. Ghazi [Sat, 27 Jun 1998 04:42:25 +0000 (04:42 +0000)]
Replace Makefile.in dependencies on expr.h with variable $(EXPR_H),
which contains headers also pulled in via expr.h.
* Makefile.in (EXPR_H): New dependency variable.
(c-typeck.o): Depend on $(EXPR_H) instead of expr.h.
(c-iterate.o): Likewise.
(gencheck): Depend on $(TREE_H) instead of tree.h, etc.
(stor-layout.o): Depend on $(EXPR_H) instead of expr.h.
(toplev.o): Likewise. Also depend on $(RECOG_H) instead of recog.h.
(varasm.o): Depend on $(EXPR_H) instead of expr.h.
(function.o): Likewise.
(stmt.o): Likewise.
(except.o): Likewise.
(expr.o): Likewise.
(calls.o): Likewise.
(expmed.o): Likewise.
(explow.o): Likewise.
(optabs.o): Likewise.
(sdbout.o): Likewise.
(dwarf2out.o): Likewise.
(emit-rtl.o): Likewise.
(integrate.o): Likewise.
(jump.o): Likewise.
(cse.o): Likewise.
(gcse.o): Likewise. Also depend on $(BASIC_BLOCK_H) instead of
basic-block.h.
(loop.o): Depend on $(EXPR_H) instead of expr.h.
(unroll.o): Likewise.
(combine.o): Likewise.
(reload.o): Likewise.
(reload1.o): Likewise.
(caller-save.o): Likewise.
(reorg.o): Likewise.
(alias.o): Don't depend on insn-codes.h.
(regmove.o): Depend on $(RECOG_H)/$(EXPR_H) instead of recog.h/expr.h.
(insn-emit.o): Depend on $(EXPR_H) instead of expr.h.
(insn-opinit.o): Likewise.
* choose-temp.c (choose_temp_base): Remove MPW bits. Use mkstemp
instead of mktemp.
* gcc.c (MKTEMP_EACH_FILE): Define.
(main): No need to call choose_temp_base if we are going to
use choose_temp_base to create each file later.
* mkstemp.c: New file. Adapted from glibc.
* Makefile.in (xgcc, colect2, protoize, unprotoize): Link in mkstemp.o
(mkstemp.o): Add dependencies.
Jeff Law [Fri, 26 Jun 1998 17:07:31 +0000 (11:07 -0600)]
configure.in (gettimeofday): Check for its existance.
* configure.in (gettimeofday): Check for its existance.
* config.in (HAVE_GETTIMEOFDAY): Define.
* configure: Rebuilt.
Will be needed for mkstemp shortly.