This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH RS6000] adding an unsigned SI and a DI together and subtracting an unsigned SI from an DI


On Tue, May 13, 2003 at 10:09:30PM -0400, Andrew Pinski wrote:
> +(define_insn_and_split "*zero_extendsidi2_no64"
> +  [(set (match_operand:DI 0 "gpc_reg_operand" "")
> +	(zero_extend:DI (match_operand:SI 1 "gpc_reg_operand" "")))]
> +  "! TARGET_POWERPC64"
> +  "#"
> +  ""

Need "&& 1" here, lest you split ppc64 patterns.

> +(define_insn "*adddi3_noppc64_disi"
> +  [(set (match_operand:DI 0 "gpc_reg_operand" "=r")
> +	(plus:DI (zero_extend:DI (match_operand:SI 1 "gpc_reg_operand" "r"))
> +		 (match_operand:DI 2 "gpc_reg_operand" "r")))]
> +  "! TARGET_POWERPC64 && WORDS_BIG_ENDIAN"
> +  "{a|addc} %L0,%1,%L2\;{aze|addze} %0,%2"
> +  [(set_attr "length" "8")])

It'd be nice if the fixed-point exception register was 
represented in gcc, so you could split these, but...

Otherwise it looks good to me.  Wait for ppc maintiner
approval, however.


r~


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]