[PATCH v2] IBM zSystems: Accept (. - 0x100000000) PCRel32 operands

Andreas Krebbel krebbel@linux.ibm.com
Mon May 9 20:01:10 GMT 2022


On 5/4/22 12:36, Ilya Leoshkevich wrote:
> as does not accept instructions like brasl %r0,.-0x100000000, because
> of two problems with the generic overflow check:
> 
> 1. PCRel32 operands are signed, but are treated as unsigned.
> 
> 2. The allowed range for these operands is [-(1 << 32), (1 << 32) - 1],
>    and not [-(1 << 31), (1 << 31) - 1].
> 
> Fix both by disabling the generic overflow check - it's not needed,
> because s390_insert_operand () performs its own.
> 
> gas/ChangeLog:
> 
>         * config/tc-s390.c (md_gather_operands): Set fx_no_overflow.
>         * testsuite/gas/s390/s390.exp: Add zarch-z900-err.
>         * testsuite/gas/s390/esa-z900.d: New test.
>         * testsuite/gas/s390/esa-z900.s: New test.
>         * testsuite/gas/s390/zarch-z900-err.l: New test.
>         * testsuite/gas/s390/zarch-z900-err.s: New test.

Committed. Thanks!

Andreas


More information about the Binutils mailing list