On 10/24/14 08:09, Jiong Wang wrote:
ping~
thanks.
Regards,
Jiong
On 17/10/14 13:04, Jiong Wang wrote:
the cause should be one minor bug in prepare_cmp_insn.
the last mode parameter "pmode" of "prepare_cmp_insn" should match the
mode of the first parameter "x", while during the recursive call of
"prepare_cmp_insn",
x is with mode of targetm.libgcc_cmp_return_mode () and pmode is
assign to word_mode.
generally this is OK, because default libgcc_cmp_return_mode hook
always return word_mode,
but AArch64 has a target private implementation which always return
SImode, so there is a
mismatch which cause a ICE later.
this minor issue is hidding because nearly all other targets use
default hook, and the
compare is rarely invoked.
Thanks
gcc/
PR target/63442
* optabs.c (prepare_cmp_insn): Use target hook
"libgcc_cmp_return_mode" instead of word_mode.
This is fine once you have run it through a bootstrap and regression test.
Any reason not to use RET_MODE since that's already set up with the
result of the target hook?
Jeff