summaryrefslogtreecommitdiff
path: root/gcc/config/stormy16/stormy16-protos.h
diff options
context:
space:
mode:
authorDJ Delorie <dj@redhat.com>2004-08-17 18:51:28 -0400
committerDJ Delorie <dj@gcc.gnu.org>2004-08-17 18:51:28 -0400
commit54e9a19d9d7113828f585504d126e1a0c01fed77 (patch)
treeeaaa0a4a229363772043a644402f2d73e2975780 /gcc/config/stormy16/stormy16-protos.h
parentc3f84f61e3c13e4e16483cfc63322efe5a7949fd (diff)
downloadgcc-54e9a19d9d7113828f585504d126e1a0c01fed77.tar.gz
extend.texi: Document new xstormy16 attribute.
* 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. From-SVN: r86154
Diffstat (limited to 'gcc/config/stormy16/stormy16-protos.h')
-rw-r--r--gcc/config/stormy16/stormy16-protos.h16
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