Paul Edwards wrote:
> if (operands[1] == const0_rtx)
> {
> CC_STATUS_INIT;
> mvs_check_page (0, 6, 8);
> return \"MVC %O0(8,%R0),=XL8'00'\";
> }
> mvs_check_page (0, 6, 8);
> return \"MVC %O0(8,%R0),%1\";
> }"
> [(set_attr "length" "8")]
> )
>
> forces it to use XL8'00' instead of the default F'0' and that
> seems to work. Does that seem like a proper solution to
> you?
Well, there isn't really anything special about const0_rtx.
*Any* CONST_INT that shows up as second operand to the movdi
pattern must be emitted into an 8 byte literal at this point.
You can do that inline; but the more usual way would be to
define an operand print format that encodes the fact that
a 64-bit operand is requested.
In fact, looking at the i370.h PRINT_OPERAND, there already
seems to be such a format: 'W'. (Maybe not quite; since 'W'
sign-extends a 32-bit operand to 64-bit. But since 'W'
doesn't seem to be used anyway, maybe this can be changed.)
Bye,
Ulrich
--
Dr. Ulrich Weigand
GNU Toolchain for Linux on System z and Cell BE
[email protected]