diff options
author | bwilson <bwilson@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-02-10 01:35:53 +0000 |
---|---|---|
committer | bwilson <bwilson@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-02-10 01:35:53 +0000 |
commit | e060c9dfada09e5597b92fd8e60e917d8bef51af (patch) | |
tree | 5eba637467e7f664213b6a8716e2fea8bfccb32e /gcc/config/xtensa/xtensa-protos.h | |
parent | f9d5cfb5d5e5faa833bf4f07d4e343aa8202ba6c (diff) | |
download | ppe42-gcc-e060c9dfada09e5597b92fd8e60e917d8bef51af.tar.gz ppe42-gcc-e060c9dfada09e5597b92fd8e60e917d8bef51af.zip |
* config/xtensa/xtensa-protos.h (xtensa_copy_incoming_a7): Update.
(init_cumulative_args): Likewise.
(a7_overlap_mentioned_p): Delete prototype.
* config/xtensa/xtensa.c (struct machine_function): Replace
incoming_a7_copied field with need_a7_copy and vararg_a7 flags.
Add set_frame_ptr_insn field.
(xtensa_emit_move_sequence): Update call to xtensa_copy_incoming_a7.
(xtensa_copy_incoming_a7): Rewrite to check need_a7_copy flag and check
if the operand is an argument in a7. If so, copy a7 to a new pseudo
at the function entry and replace the operand with the pseudo.
(init_cumulative_args): Remove unused arguments. Add new "incoming"
argument and record this flag in CUMULATIVE_ARGS.
(function_arg): Remove result_mode and special-case code to handle
arguments in a7. Instead, set need_a7_copy flag when there is an
incoming argument in a7.
(xtensa_expand_prologue): Remove code to search for set_frame_ptr insn
and use the value recorded in cfun->machine->set_frame_ptr_insn.
(xtensa_builtin_saveregs): Check for negative gp_left value. Set
need_a7_copy and vararg_a7 flags. Use move_block_from_reg instead of
special-case code.
(a7_overlap_mentioned_p): Delete.
* config/xtensa/xtensa.h (CUMULATIVE_ARGS): Add "incoming" flag.
(INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Remove useless
arguments to init_cumulative_args and pass "incoming" flag instead.
(BLOCK_REG_PADDING): Delete.
* config/xtensa/xtensa.md (movdi, movsf, movdf): Remove unnecessary
checks for reload_in_progress and reload_completed. Update calls to
xtensa_copy_incoming_a7.
(ashlsi3): Rename existing insn to ashlsi3_internal. Add expander
to call xtensa_copy_incoming_a7.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@77583 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/xtensa/xtensa-protos.h')
-rw-r--r-- | gcc/config/xtensa/xtensa-protos.h | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/gcc/config/xtensa/xtensa-protos.h b/gcc/config/xtensa/xtensa-protos.h index 7d3208be7cd..38a5dce985e 100644 --- a/gcc/config/xtensa/xtensa-protos.h +++ b/gcc/config/xtensa/xtensa-protos.h @@ -68,14 +68,14 @@ extern int xtensa_expand_scc (rtx *); extern int xtensa_expand_block_move (rtx *); extern void xtensa_split_operand_pair (rtx *, enum machine_mode); extern int xtensa_emit_move_sequence (rtx *, enum machine_mode); -extern bool xtensa_copy_incoming_a7 (rtx *, enum machine_mode); +extern rtx xtensa_copy_incoming_a7 (rtx); extern void xtensa_emit_block_move (rtx *, rtx *, int); extern void xtensa_expand_nonlocal_goto (rtx *); extern void xtensa_emit_loop_end (rtx, rtx *); extern char *xtensa_emit_call (int, rtx *); #ifdef TREE_CODE -extern void init_cumulative_args (CUMULATIVE_ARGS *, tree, rtx); +extern void init_cumulative_args (CUMULATIVE_ARGS *, int); extern void xtensa_va_start (tree, rtx); extern rtx xtensa_va_arg (tree, tree); #endif /* TREE_CODE */ @@ -88,7 +88,6 @@ extern enum reg_class xtensa_preferred_reload_class (rtx, enum reg_class, int); extern enum reg_class xtensa_secondary_reload_class (enum reg_class, enum machine_mode, rtx, int); -extern int a7_overlap_mentioned_p (rtx); #endif /* RTX_CODE */ #ifdef TREE_CODE |