[PATCH, commited]: Fix reg-stack.c UNSPEC_TRUNC_NOOP handling

Uros Bizjak ubizjak@gmail.com
Sat Nov 25 21:47:00 GMT 2006


Roger Sayle wrote:

>>internal compiler error: RTL check: expected elt 0 type 'e' or 'u',
>>have 'E' (rtx unspec) in get_true_reg, at reg-stack.c:452
>>    
>>
>
>Grr,  it looks like Uros meant to write:
>
>+      case UNSPEC:
>+       if (XINT (*pat, 1) == UNSPEC_TRUNC_NOOP)
>+         pat = & XVECEXP (*pat, 0, 0);
>+       break;
>
>Or else we fall through to the FLOAT_TRUNCATE case for UNSPECs other
>than UNSPEC_TRUNC_NOOP.
>
>I'll pre-approve that correction (as obvious?), if it bootstraps and
>regression tests without problems.  My apologies for missing this
>during review.
>  
>
Attached patch fixes these failures. Patch was regression tested on 
x86_64-pc-linux-gnu for c, c++ and fortran.

2006-11-25  Uros Bizjak  <ubizjak@gmail.com>

        * reg-stack.c (get_true_reg): Fix UNSPEC_TRUNC_NOOP handling.

Uros.


-------------- next part --------------
A non-text attachment was scrubbed...
Name: reg-stack.diff
Type: text/x-patch
Size: 416 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20061125/cd684a09/attachment.bin>


More information about the Gcc-patches mailing list