This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [Patch, i386] Avoid LCP stalls (issue5975045)
- From: Richard Henderson <rth at redhat dot com>
- To: Teresa Johnson <tejohnson at google dot com>
- Cc: reply at codereview dot appspotmail dot com, gcc-patches at gcc dot gnu dot org
- Date: Fri, 30 Mar 2012 11:11:40 -0400
- Subject: Re: [Patch, i386] Avoid LCP stalls (issue5975045)
- References: <20120330150340.4EA5F615CC@tjsboxrox.mtv.corp.google.com>
On 03/30/2012 11:03 AM, Teresa Johnson wrote:
> +(define_insn "*movhi_imm_internal"
> + [(set (match_operand:HI 0 "memory_operand" "=m")
> + (match_operand:HI 1 "immediate_operand" "n"))]
> + "!TARGET_LCP_STALL"
> +{
> + return "mov{w}\t{%1, %0|%0, %1}";
> +}
> + [(set (attr "type") (const_string "imov"))
> + (set (attr "mode") (const_string "HI"))])
> +
> (define_insn "*movhi_internal"
> [(set (match_operand:HI 0 "nonimmediate_operand" "=r,r,r,m")
> - (match_operand:HI 1 "general_operand" "r,rn,rm,rn"))]
> + (match_operand:HI 1 "general_operand" "r,rn,rm,r"))]
> "!(MEM_P (operands[0]) && MEM_P (operands[1]))"
For reload to work correctly, all alternatives must remain part of the same pattern.
This issue should be handled with the ISA and ENABLED attributes.
r~