diff options
author | aesok <aesok@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-05-19 10:59:17 +0000 |
---|---|---|
committer | aesok <aesok@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-05-19 10:59:17 +0000 |
commit | df3d6232299393f4c995d54e13ae47611bc8d823 (patch) | |
tree | e1afdb336d4a391ac60933901f808c63399b7edb /gcc/config/avr/constraints.md | |
parent | df68fc4283931e6bb003f53251573066150347f0 (diff) | |
download | gcc-df3d6232299393f4c995d54e13ae47611bc8d823.tar.gz |
* config/avr/avr-protos.h (expand_prologue, expand_epilogue,
avr_epilogue_uses) : Add declaration.
* config/avr/predicates.md (avr_sp_immediate_operand): New predicate.
* config/avr/constraints.md (R): New constraint.
config/avr/avr.md (SREG_ADDR, UNSPEC_SEI, UNSPEC_CLI,
UNSPECV_PROLOGUE_SAVES, UNSPECV_EPILOGUE_RESTORES): New constants.
(*pop1, *pop2, *pop3, *pop4, *pop5): Combine into ...
(*addhi3_sp_R_pc2, *addhi3_sp_R_pc3): ... these patterns.
(*movhi_sp, popqi, pophi, enable_interrupt, disable_interrupt,
call_prologue_saves, epilogue_restores, return_from_epilogue,
return_from_main_epilogue, return_from_interrupt_epilogue,
return_from_naked_epilogue, prologue, epilogue): New patterns.
(jump): Handle symbol reference.
* config/avr/avr.c (out_adj_frame_ptr, out_set_stack_ptr,
avr_output_function_prologue, avr_output_function_epilogue): Remove
functions.
(avr_init_machine_status, expand_prologue, expand_epilogue,
avr_asm_function_end_prologue, avr_epilogue_uses,
avr_asm_function_begin_epilogue): New functions.
(prologue_size, epilogue_size, jump_tables_size): Remove global
variables.
(TARGET_ASM_FUNCTION_PROLOGUE, TARGET_ASM_FUNCTION_EPILOGUE): Remove.
(TARGET_ASM_FUNCTION_END_PROLOGUE): Define.
(TARGET_ASM_FUNCTION_BEGIN_EPILOGUE): Define.
(avr_override_options): Initialise init_machine_status.
(output_movhi): Handle all stack pointer loads.
(out_movqi_r_mr, out_movqi_mr_r): Handle SREG_ADDR address.
(avr_output_addr_vec_elt): Do not use variable jump_tables_size.
* config/avr/avr.h (AVR_2_BYTE_PC, AVR_3_BYTE_PC): New.
(EPILOGUE_USES) Redefine.
(machine_function) Declare.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@124854 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/avr/constraints.md')
-rw-r--r-- | gcc/config/avr/constraints.md | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/gcc/config/avr/constraints.md b/gcc/config/avr/constraints.md index eca5cbef292..f3ff9e962cc 100644 --- a/gcc/config/avr/constraints.md +++ b/gcc/config/avr/constraints.md @@ -99,6 +99,11 @@ (and (match_code "const_double") (match_test "op == CONST0_RTX (SFmode)"))) +(define_constraint "R" + "Integer constant in the range -6 @dots{} 5." + (and (match_code "const_int") + (match_test "ival >= -6 && ival <= 5"))) + (define_memory_constraint "Q" "A memory address based on X or Y pointer with displacement." (and (match_code "mem") |