From 1b7aefdbfa2539b169c00647ac09f0fab39af677 Mon Sep 17 00:00:00 2001 From: hariharans Date: Fri, 30 Apr 2010 09:40:21 +0000 Subject: * config/picochip/picochip.c (picochip_legitimize_address): Define. Use this function to do machine-specific conversion. (picochip_legitimize_reload_address): Likewise. (picochip_legitimate_address_p): Check valid base register only if strict. (picochip_check_conditional_copy): Check for modw only if opnd is register. * config/picochip/picochip.h (LEGITIMIZE_RELOAD_ADDRESS): Use this to call the function in c. * config/picochip/picochip-protos.h (picochip_legitimize_reload_address): Define. * config/picochip/picochip.md (supported_compare1): Define. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@158927 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/config/picochip/picochip.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'gcc/config/picochip/picochip.md') diff --git a/gcc/config/picochip/picochip.md b/gcc/config/picochip/picochip.md index 02f0f14850d..62103506123 100644 --- a/gcc/config/picochip/picochip.md +++ b/gcc/config/picochip/picochip.md @@ -590,6 +590,23 @@ (set_attr "length" "2,2,4") ]) +;; This pattern was added to match the previous pattern. When doing if-convert +;; the pattern generated using movhicc does not have a eq:CC but only a eq for +;; operator. If this pattern were not to be there, Gcc decides not to use +;; movhicc at all. Whereas, in Gcc 4.4, it seems to be cleverer. +(define_insn "*supported_compare1" + [(set (reg:CC CC_REGNUM) + (match_operator 0 "picochip_supported_comparison_operator" + [(match_operand:HI 1 "register_operand" "r,r,r") + (match_operand:HI 2 "picochip_comparison_operand" "r,J,i")]))] + "" + "* return picochip_output_compare(operands);" + [; Must be picoAlu because it sets the condition flags. + (set_attr "type" "picoAlu,picoAlu,picoAlu") + (set_attr "longConstant" "false,false,true") + (set_attr "length" "2,2,4") + ]) + (define_insn "*compare" [(set (reg:CC CC_REGNUM) (match_operator:CC 0 "comparison_operator" -- cgit v1.2.1