OSDN Git Service

Convert ACCUMULATE_OUTGOING_ARGS to an expression.
authorhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 29 Mar 2000 13:10:44 +0000 (13:10 +0000)
committerhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 29 Mar 2000 13:10:44 +0000 (13:10 +0000)
commit4448f5433dc54e13237d4884d7abd95ebb327530
treef907c433c28df15d0d9341afb54624130db44220
parent70d4a8b78d42f525894bfad447d567cdcac33c0e
Convert ACCUMULATE_OUTGOING_ARGS to an expression.
* calls.c (PUSH_ARGS_REVERSED) Change to expression.
(ACCUMULATE_OUTGOING_ARGS, PUSH_ARGS): Provide default value.
(struct arg_data): Remove #ifdef ACCUMULATE_OUTGOING_ARGS.
(save_fixed_argument_area, restore_fixed_argument_area):
conditionize by #ifdef REG_PARM_STACK_SPACE only.
(emit_call): Change #ifdefs on ACCUMULATE_OUTGOING_ARGS
to conditions, handle RETURN_POPS_ARGS on ACCUMULATE_OUTGOING_ARGS.
(precompute_register_parameters): Avoid #ifdefs on
ACCUMULATE_OUTGOING_ARGS and PUSH_ARGS_REVERSED.
(stire_one_args): Likewise.
(expand_call): Likewise; conditionize PUSH_ROUNDING code by PUSH_ARGS.
(emit_library_call_value_1): Likewise.
(compute_argument_block_size): Align to STACK_BOUNDARY only for
ACCUMULATE_OUTGOING_ARGS.
* combine.c (ACCUMULATE_OUTGOING_ARGS, PUSH_ARGS): Provide default
value.
(nonzero_bits): Conditionize PUSH_ROUNDING code by USE_PUSH.
(use_crosses_set_p): Likewise.
* all targets (ACCUMULATE_OUTGOING_ARGS define): Change to
#define ACCUMULATE_OUTGOING_ARGS 1.
* i386.c (ix86_compute_frame_size): Handle ACCUMULATE_OUTGOING_ARGS
frames.
* i386.h (MASK_NO_PUSH_ARGS, MASK_ACCUMULATE_OUTGOING_ARGS): New
constants.
(TARGET_PUSH_ARGS, TARGET_ACCUMULATE_OUTGOING_ARGS): New macros.
(TARGET_SWITCHES): Add push-args, no-push-args,
accumulate-outgoing-args and no-accumulate-outgoing-args.
(ACCUMULATE_OUTGOING_ARGS, PUSH_ARGS): New macro.
* expr.c (ACCUMULATE_OUTGONG_ARGS, PUSH_ARGS): Provide default.
(push_block): Avoid ifdefs on ACCUMULATE_OUTGONG_ARGS
and PUSH_ROUNDING.
(emit_push_insn): Likewise.
* final.c (ACCUMULATE_OUTGOING_ARGS): Provide default.
(final_scan_insn): Avoid ifdefs on ACCUMULATE_OUTGOING_ARGS.
* function.c (ACCUMULATE_OUTGOING_ARGS): Provide default.
(STACK_DYNAMIC_OFFSET): Define correctly for both
ACCUMULATE_OUTGOING_ARGS and normal mode.
* invoke.texi (-mpush_args, -maccumulate-outgoing-args): Document.
* tm.texi (PUSH_ARGS): Document.
(ACCUMULATE_OUTGOING_ARGS, PUSH_ROUNDING): Update documentation.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@32803 138bc75d-0d04-0410-961f-82ee72b054a4
31 files changed:
gcc/ChangeLog
gcc/calls.c
gcc/combine.c
gcc/config/a29k/a29k.h
gcc/config/alpha/alpha.h
gcc/config/arc/arc.h
gcc/config/clipper/clipper.h
gcc/config/dsp16xx/dsp16xx.h
gcc/config/fr30/fr30.h
gcc/config/i370/i370.h
gcc/config/i386/i386.c
gcc/config/i386/i386.h
gcc/config/i960/i960.h
gcc/config/ia64/ia64.h
gcc/config/m32r/m32r.h
gcc/config/m88k/m88k.h
gcc/config/mcore/mcore.h
gcc/config/mips/mips.h
gcc/config/mn10200/mn10200.h
gcc/config/mn10300/mn10300.h
gcc/config/pa/pa.h
gcc/config/romp/romp.h
gcc/config/rs6000/rs6000.h
gcc/config/sparc/sparc.h
gcc/config/v850/v850.h
gcc/expr.c
gcc/final.c
gcc/function.c
gcc/invoke.texi
gcc/tm.texi
gcc/toplev.c