[PATCH] i386: Remove "m" constraint for "register_operand"
Jan Hubicka
hubicka@ucw.cz
Tue Aug 14 13:08:00 GMT 2007
> There is a mismatch between the constraints permitting memory operands
> and the predicate accepting only register operands. This patch fixes that.
> Bootstrapped and tested on x86_64-unknown-linux-gnu with no regressions. Ok
> for trunk?
The i386.md part is OK (zext variants really needs to destinate)
with following change:
> - (match_operand:SI 2 "general_operand" "ri,rm")))))
> + (match_operand:SI 2 "general_operand" "g")))))
"rim" here for consistency. I guess we should rename them all to "g" in
followup step.
For sse.md part:
> (define_insn "*sse4_1_extractps"
> - [(set (match_operand:SF 0 "register_operand" "=rm")
> + [(set (match_operand:SF 0 "register_operand" "=r")
H.J., can you please double check that memory is not allowed here?
It seems to me that changing register_operand to nonimmediate_operand
would be correct fix.
This instruction is not yet in my ISA reference.
> (vec_select:SF
> (match_operand:V4SF 1 "register_operand" "x")
> (parallel [(match_operand:SI 2 "const_0_to_3_operand" "n")])))]
> @@ -1694,7 +1694,7 @@
> (define_insn "sse2_vmsqrtv2df2"
> [(set (match_operand:V2DF 0 "register_operand" "=x")
> (vec_merge:V2DF
> - (sqrt:V2DF (match_operand:V2DF 1 "register_operand" "xm"))
> + (sqrt:V2DF (match_operand:V2DF 1 "register_operand" "x"))
nonimmediate_operand here instead of removing 'm'
Honza
> (match_operand:V2DF 2 "register_operand" "0")
> (const_int 1)))]
> "TARGET_SSE2"
More information about the Gcc-patches
mailing list