[PING] [m32c] mul and div insn
Richard Henderson
rth@redhat.com
Wed Apr 25 21:11:00 GMT 2007
On Tue, Apr 24, 2007 at 02:53:34PM -0400, DJ Delorie wrote:
> Immediate operands are always VOIDmode. Why did you add modes to
> those operands?
Because we do do things like validate that a given constant
is valid for the mode. That said, probably const_int_operand
and "n" is better than "immediate_operand" and "i", since the
later allows symbolics.
This test
+(define_expand "mulsi3"
+ [(set (match_operand:SI 0 "m32c_hl_operand" "=R02,R02")
+ (mult:SI (match_operand:SI 1 "m32c_hl_operand" "%0,0")
+ (match_operand:SI 2 "mra_operand" "RsiSd,?Rmm")))]
+ "TARGET_M32C"
+ "{
+ if ((GET_MODE (operands[2]) != SImode) && (GET_MODE (operands[2]) != VOIDm
should never be true.
> Do you really need the sign/zero extends for the divide? Doesn't GCC
> do the promotions according to the language standards before emitting
> the divide?
Yes, it does.
r~
More information about the Gcc-patches
mailing list