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