Re: {standard input}:3978: Error: value 178 out of range

From: Andreas Schwab
Date: Fri Jun 10 2022 - 05:48:32 EST


On Jun 10 2022, Geert Uytterhoeven wrote:

> The offending instruction is:
>
> | drivers/scsi/mpi3mr/mpi3mr_fw.c:299: switch (host_tag) {
> mvz.w %d2,%d0 | tmp160, host_tag
> mov3q.l #5,%d1 |,
> cmp.l %d0,%d1 | host_tag,
> jcs .L154 |
> tst.w %d6 | host_tag
> jeq .L133 |
> subq.l #2,%d2 |, tmp238
> mvz.w %d2,%d2 | tmp238, tmp240
> mov3q.l #3,%d0 |,
> cmp.l %d2,%d0 | tmp240,
> jcs .L140 |
> add.l %d2,%d2 | tmp244
>>>> move.w .L155(%pc,%d2.l),%d0 |, tmp245
> jra .L186 |
>
> And the table L155 is just too far from the above instruction, so
> the displacement is too large, causing the failure.
>
> Looks like a compiler bug to me?

Yes, it's https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104028.

--
Andreas Schwab, schwab@xxxxxxxxxxxxxx
GPG Key fingerprint = 7578 EB47 D4E5 4D69 2510 2552 DF73 E780 A9DA AEC1
"And now for something completely different."