diff options
author | Marek Michalkiewicz <marekm@amelek.gda.pl> | 2002-05-26 22:19:32 +0200 |
---|---|---|
committer | Marek Michalkiewicz <marekm@gcc.gnu.org> | 2002-05-26 20:19:32 +0000 |
commit | 331ca3501dda7ce9a91996117c5127d52ac1e02c (patch) | |
tree | ea23f56fa9169a28bf2f05e88970c86fa1a79396 /gcc/config/avr/avr-protos.h | |
parent | 9059e33cbbb601ed3a7f36d62a4dc7600b72bc60 (diff) | |
download | gcc-331ca3501dda7ce9a91996117c5127d52ac1e02c.zip gcc-331ca3501dda7ce9a91996117c5127d52ac1e02c.tar.gz gcc-331ca3501dda7ce9a91996117c5127d52ac1e02c.tar.bz2 |
avr-protos.h (avr_out_sbxx_branch): Declare.
* config/avr/avr-protos.h (avr_out_sbxx_branch): Declare.
* config/avr/avr.c (jump_over_one_insn_p): Take length of the
branch insn into account, do not assume 1.
(avr_out_sbxx_branch): New function. Optimize cases of skipping
over single word insn. Handle upper half of I/O space too.
* config/avr/avr.md (*sbrx_branch): Use it.
(*sbrx_and_branchhi, *sbrx_and_branchsi): Likewise.
(*sbix_branch, *sbix_branch_bit7): Likewise.
(*sbix_branch_tmp, *sbix_branch_tmp_bit7): New.
Use RTL peepholes to optimize register operand sign tests.
From-SVN: r53906
Diffstat (limited to 'gcc/config/avr/avr-protos.h')
-rw-r--r-- | gcc/config/avr/avr-protos.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/gcc/config/avr/avr-protos.h b/gcc/config/avr/avr-protos.h index f6dd880..3d0be48 100644 --- a/gcc/config/avr/avr-protos.h +++ b/gcc/config/avr/avr-protos.h @@ -98,6 +98,7 @@ extern const char * lshrsi3_out PARAMS ((rtx insn, rtx operands[], int *len)); extern void avr_output_bld PARAMS ((rtx operands[], int bit_nr)); extern void avr_output_addr_vec_elt PARAMS ((FILE *stream, int value)); +extern const char *avr_out_sbxx_branch PARAMS ((rtx insn, rtx operands[])); extern enum reg_class preferred_reload_class PARAMS ((rtx x, enum reg_class class)); |