diff options
author | dj <dj@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-08-17 22:51:28 +0000 |
---|---|---|
committer | dj <dj@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-08-17 22:51:28 +0000 |
commit | 3c1df5aa765240f7e3bb6ae9eff2313cc87bfe07 (patch) | |
tree | eaaa0a4a229363772043a644402f2d73e2975780 /gcc/config/stormy16/stormy16-protos.h | |
parent | c01dd063c7780adf7dc83d8a4b383e09ae60fa54 (diff) | |
download | gcc-3c1df5aa765240f7e3bb6ae9eff2313cc87bfe07.tar.gz |
* doc/extend.texi: Document new xstormy16 attribute.
* config/stormy16/stormy16.c (xstormy16_splittable_below100_operand): New.
(xstormy16_splittable_below100_or_register): New.
(combine_bnp): New.
(xstormy16_reorg): New.
(TARGET_MACHINE_DEPENDENT_REORG): Define.
* config/stormy16/stormy16.md (movqi_internal): Make name public.
(movhi_internal): Likewise.
(cbhranchhi): Likewise.
(cbhranchhi_neg): Likewise.
(andhi3): Only allow splittable below100 operands.
(iorhi3): Likewise.
(peephole2): New and/zero_extend->and peephole.
(peephole2): New load/ior/save->set1 peephole.
(peephole2): New load/and/save->clr1 peephole.
(bclrx, bclrx2, bclr7, bclr15): New.
(bsetx, bsetx2, bset7, bset15): New.
* config/stormy16/stormy16.c (xstormy16_print_operand): Be more
liberal about acceptable 'B' masks.
* config/stormy16/stormy16-protos.h
(xstormy16_asm_output_aligned_common, xstormy16_below100_symbol,
xstormy16_below100_operand, xstormy16_below100_or_register,
xstormy16_onebit_set_operand, xstormy16_onebit_clr_operand): New.
(PREDICATE_CODES): Add new predicates.
* config/stormy16/stormy16.c
(xstormy16_asm_output_aligned_common, xstormy16_below100_symbol,
xstormy16_below100_operand, xstormy16_below100_or_register,
xstormy16_onebit_set_operand, xstormy16_onebit_clr_operand): New.
(xstormy16_expand_iorqi3, xstormy16_expand_andqi3): New.
(xstormy16_legitimate_address_p): Allow below100 symbols.
(xstormy16_extra_constraint_p): Add 'W' for below100 operands.
(xstormy16_expand_move): Leave below100 operands as-is.
(xstormy16_encode_section_info): Encode below100 symbols.
(xstormy16_strip_name_encoding): New.
(xstormy16_print_operand): Print 'b' as shift mask.
(xstormy16_attribute_table): Add below100 attributes.
(xstormy16_handle_below100_attribute): New.
* config/stormy16/stormy16.h (EXTRA_SECTIONS): add in_bss100.
(XSTORMY16_SECTION_FUNCTION): New.
(EXTRA_SECTION_FUNCTIONS): Define using the above.
(ASM_OUTPUT_ALIGNED_DECL_COMMON, ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
(ASM_OUTPUT_SYMBOL_REF): Handle encoded symbols.
(ASM_OUTPUT_LABELREF): Define.
* config/stormy16/stormy16.md (movqi_internal): Add below100 support.
(movhi_internal): Add below100 support.
(andhi3): Add below100 support.
(iorhi3): Add below100 support.
(iorqi3, iorqi3_internal, andqi3, andqi3_internal): New.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@86154 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/stormy16/stormy16-protos.h')
-rw-r--r-- | gcc/config/stormy16/stormy16-protos.h | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/gcc/config/stormy16/stormy16-protos.h b/gcc/config/stormy16/stormy16-protos.h index 1d1d35c3591..a8b23565418 100644 --- a/gcc/config/stormy16/stormy16-protos.h +++ b/gcc/config/stormy16/stormy16-protos.h @@ -29,6 +29,13 @@ extern int direct_return (void); extern int xstormy16_interrupt_function_p (void); extern int xstormy16_epilogue_uses (int); extern void xstormy16_function_profiler (void); +extern const char *xstormy16_strip_name_encoding (const char *name); +extern void bss100_section (void); + +#if defined (TREE_CODE) +extern void xstormy16_asm_output_aligned_common (FILE *, tree, const char *, + int, int, int); +#endif #if defined (TREE_CODE) && defined (HAVE_MACHINE_MODES) extern CUMULATIVE_ARGS xstormy16_function_arg_advance @@ -56,6 +63,8 @@ extern void xstormy16_print_operand_address (FILE *, rtx); extern void xstormy16_expand_casesi (rtx, rtx, rtx, rtx, rtx); extern void xstormy16_output_addr_vec (FILE *, rtx, rtx); extern void xstormy16_expand_call (rtx, rtx, rtx); +extern void xstormy16_expand_iorqi3 (rtx *); +extern void xstormy16_expand_andqi3 (rtx *); #endif #if defined (HAVE_MACHINE_MODES) && defined (RTX_CODE) @@ -79,5 +88,12 @@ extern void xstormy16_expand_arith (enum machine_mode, enum rtx_code, extern int shift_operator (rtx, enum machine_mode); extern const char * xstormy16_output_shift (enum machine_mode, enum rtx_code, rtx, rtx, rtx); +extern int xstormy16_below100_symbol (rtx, enum machine_mode); +extern int xstormy16_below100_operand (rtx, enum machine_mode); +extern int xstormy16_splittable_below100_operand (rtx, enum machine_mode); +extern int xstormy16_below100_or_register (rtx, enum machine_mode); +extern int xstormy16_splittable_below100_or_register (rtx, enum machine_mode); +extern int xstormy16_onebit_set_operand (rtx, enum machine_mode); +extern int xstormy16_onebit_clr_operand (rtx, enum machine_mode); #endif |