From bf84f42d6199e83b91f3963fd4d10da27c5eaaf0 Mon Sep 17 00:00:00 2001 From: "David S. Miller" Date: Wed, 26 Oct 2011 21:14:56 +0000 Subject: Canonicalize sparc movcc patterns such that operand 0 always appears in operand 4. * config/sparc/sparc-protos.h (sparc_expand_conditional_move): Declare. * config/sparc/sparc.md (movcc, movcc): Call it. (*mov_cc_v9): Normalize to expect operand 0 always in operand 4. (*mov_cc_reg_sp64): Likewise. (*movsf_cc_v9): Likewise. (*movsf_cc_reg_sp64): Likewise. (*movdf_cc_v9): Likewise. (*movdf_cc_reg_sp64): Likewise. (*movtf_cc_hq_v9): Likewise. (*movtf_cc_reg_hq_sp64): Likewise. (*movtf_cc_v9): Likewise. (*movtf_cc_reg_sp64): Likewise. * config/sparc/sparc.c (sparc_expand_conditional_move): New function. (sparc_print_operand): Delete 'c' and 'd' handling, no longer used. From-SVN: r180542 --- gcc/config/sparc/sparc-protos.h | 1 + 1 file changed, 1 insertion(+) (limited to 'gcc/config/sparc/sparc-protos.h') diff --git a/gcc/config/sparc/sparc-protos.h b/gcc/config/sparc/sparc-protos.h index bb6fb07..108e105 100644 --- a/gcc/config/sparc/sparc-protos.h +++ b/gcc/config/sparc/sparc-protos.h @@ -107,6 +107,7 @@ extern void sparc_expand_compare_and_swap_12 (rtx, rtx, rtx, rtx); extern const char *output_v8plus_mult (rtx, rtx *, const char *); extern void sparc_expand_vector_init (rtx, rtx); extern void sparc_expand_vec_perm_bmask(enum machine_mode, rtx); +extern bool sparc_expand_conditional_move (enum machine_mode, rtx *); #endif /* RTX_CODE */ #endif /* __SPARC_PROTOS_H__ */ -- cgit v1.1