Commit 45ca2106 by Kazu Hirata Committed by Kazu Hirata

h8300-protos.h: Add a prototype for compute_a_shift_cc.

	* config/h8300/h8300-protos.h: Add a prototype for
	compute_a_shift_cc.
	* config/h8300/h8300.c (shift_one): Update the CC status.
	(shift_two): Likewise.
	(output_a_shift_cc): Set cc_inline and cc_special.
	(compute_a_shift_cc): New.
	* config/h8300/h8300.md (shift insns): Use compute_a_shift_cc.

From-SVN: r65251
parent 7c2aa9d7
2003-04-04 Kazu Hirata <kazu@cs.umass.edu>
* config/h8300/h8300-protos.h: Add a prototype for
compute_a_shift_cc.
* config/h8300/h8300.c (shift_one): Update the CC status.
(shift_two): Likewise.
(output_a_shift_cc): Set cc_inline and cc_special.
(compute_a_shift_cc): New.
* config/h8300/h8300.md (shift insns): Use compute_a_shift_cc.
2003-04-04 Richard Henderson <rth@redhat.com> 2003-04-04 Richard Henderson <rth@redhat.com>
* cse.c (fold_rtx): Fix 03-30 change; do check insn non-null. * cse.c (fold_rtx): Fix 03-30 change; do check insn non-null.
......
...@@ -31,6 +31,7 @@ extern unsigned int compute_plussi_length PARAMS ((rtx *)); ...@@ -31,6 +31,7 @@ extern unsigned int compute_plussi_length PARAMS ((rtx *));
extern int compute_plussi_cc PARAMS ((rtx *)); extern int compute_plussi_cc PARAMS ((rtx *));
extern const char *output_a_shift PARAMS ((rtx *)); extern const char *output_a_shift PARAMS ((rtx *));
extern unsigned int compute_a_shift_length PARAMS ((rtx, rtx *)); extern unsigned int compute_a_shift_length PARAMS ((rtx, rtx *));
extern int compute_a_shift_cc PARAMS ((rtx, rtx *));
extern const char *emit_a_rotate PARAMS ((enum rtx_code, rtx *)); extern const char *emit_a_rotate PARAMS ((enum rtx_code, rtx *));
extern const char *output_simode_bld PARAMS ((int, rtx[])); extern const char *output_simode_bld PARAMS ((int, rtx[]));
extern void print_operand_address PARAMS ((FILE *, rtx)); extern void print_operand_address PARAMS ((FILE *, rtx));
......
...@@ -2272,7 +2272,8 @@ ...@@ -2272,7 +2272,8 @@
"* return output_a_shift (operands);" "* return output_a_shift (operands);"
[(set (attr "length") [(set (attr "length")
(symbol_ref "compute_a_shift_length (insn, operands)")) (symbol_ref "compute_a_shift_length (insn, operands)"))
(set_attr "cc" "clobber")]) (set (attr "cc")
(symbol_ref "compute_a_shift_cc (insn, operands)"))])
;; HI BIT SHIFTS ;; HI BIT SHIFTS
...@@ -2307,7 +2308,8 @@ ...@@ -2307,7 +2308,8 @@
"* return output_a_shift (operands);" "* return output_a_shift (operands);"
[(set (attr "length") [(set (attr "length")
(symbol_ref "compute_a_shift_length (insn, operands)")) (symbol_ref "compute_a_shift_length (insn, operands)"))
(set_attr "cc" "clobber")]) (set (attr "cc")
(symbol_ref "compute_a_shift_cc (insn, operands)"))])
;; SI BIT SHIFTS ;; SI BIT SHIFTS
...@@ -2342,7 +2344,8 @@ ...@@ -2342,7 +2344,8 @@
"* return output_a_shift (operands);" "* return output_a_shift (operands);"
[(set (attr "length") [(set (attr "length")
(symbol_ref "compute_a_shift_length (insn, operands)")) (symbol_ref "compute_a_shift_length (insn, operands)"))
(set_attr "cc" "clobber")]) (set (attr "cc")
(symbol_ref "compute_a_shift_cc (insn, operands)"))])
;; Split a variable shift into a loop. If the register containing ;; Split a variable shift into a loop. If the register containing
;; the shift count dies, then we just use that register. ;; the shift count dies, then we just use that register.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment