[Bug target/64160] msp430 code generation error adding 32-bit integers
nickc at redhat dot com
gcc-bugzilla@gcc.gnu.org
Thu Dec 11 14:57:00 GMT 2014
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64160
--- Comment #6 from Nick Clifton <nickc at redhat dot com> ---
Hi Ulrich,
> if (reg_overlap_mentioned_p (operands[3], operands[7])
> || reg_overlap_mentioned_p (operands[3], operands[8]))
> FAIL;
Thanks - that is indeed a better solution to the bug.
> B.t.w. is there a particular reason why the target-specific msp430_subreg is
> needed instead of the usual operand_subword?
I am not sure. According to the comments in msp430.c it is because;
"Simplify_gen_subreg() doesn't handle memory references the way we need it to
below, so we use this function for when we must get a valid subreg in a
'natural' state." I think that this is all connected with the fact that for
the MSP430 in large mode, pointers are 20-bits long, and that this tends to
confuse gcc.
Cheers
Nick
More information about the Gcc-bugs
mailing list