Paolo Bonzini wrote:
> Andreas Krebbel wrote:
>> Hi,
>>
>>> r145594: http://gcc.gnu.org/ml/gcc-patches/2009-03/msg00545.html (s390)
>
> Note this patch is unrelated and only affects sync.md patterns.
>
>> The cond-optab branch (rev. 145751) fails to bootstrap on s390x:
>>
>> /build2/gcc-condoptab/libgcc/../gcc/libgcc2.c: In function '__fixunsdfti':
>> /build2/gcc-condoptab/libgcc/../gcc/libgcc2.c:1266: internal compiler error:
>> in prepare_cmp_insn, at optabs.c:4206
>
> What target? I do not have fixunsdfti here, only fixunsdf{si,di}.
Fixed like this:
Index: gcc/optabs.c
===================================================================
--- gcc/optabs.c (branch cond-optab)
+++ gcc/optabs.c (working copy)
@@ -4026,6 +4026,8 @@ prepare_cmp_insn (rtx x, rtx y, enum rtx
/* Don't let both operands fail to indicate the mode. */
if (GET_MODE (x) == VOIDmode && GET_MODE (y) == VOIDmode)
x = force_reg (mode, x);
+ if (mode == VOIDmode)
+ mode = GET_MODE (x) == VOIDmode ? GET_MODE (x) : GET_MODE (y);
/* Handle all BLKmode compares. */
... which I'll commit in a few hours to cond-optab branch.
Thanks!
Paolo