On Mon, 30 Sep 2013 13:38:28 -0400, Dave Rivers <riv...@dignus.com> wrote:

>I'd love to see that example!
>

                                   Page    3
  Active Usings: None

  Loc  Object Code    Addr1 Addr2  Stmt   Source Statement
                HLASM R6.0  2013/09/30 14.42
000000                00000 00014     1 NEGD64   CSECT

000000 C41C 0000 0008       00010     2          LGFRL R1,=F'2147483392'

                 R:1 FFFF00           3          USING 2147483392,R1

000006 4140 1200            00100     4          LA    R4,-2147483392

                                      5 *

                                      6          YREGS


I'd similarly be interested in how assemblers other than HLASM
treat this.  (But not so interested that this should be considered
an RPQ.)

>> And I have a test case showing incorrect base-displacement
>> resolution (it should be unresolvable).  The behavior is
>> arguably correct modulo 2**24 and modulo 2**31, but
>> inarguably incorrect modulo 2**64 or using non-congruential
>> arithmetic to any precision.  I am little impressed by
>> arguments that HLASM is dedicated to 32-bit arithmetic;
>> generally, overflows are reported as errors.
>>
By my guess, the (mis)behavior arises when base-displacement
resolution fails to detect or ignores an overflow condition
that occurs when subtracting the USING base from the operand
address.

-- gil

Reply via email to