On 2018-08-06, at 08:35:57, Ed Jaffe wrote:

> We use 'Jxx *+2' which disturbs no registers and is guaranteed to fail with 
> an 0C1.
>  
I am *not* going to read the PoOps to learn why that "is guaranteed
to fail".  I'm merely dismissing it as elitist opaque code.  Comments
help only slightly.

> On 8/6/2018 3:10 AM, Jonathan Scott wrote:
>> J *+1 isn't even possible, as the hardware offset for relative
>> addressing is in halfwords.
>> 
>> For many years I have been using a conditional TRAP macro which
>> is equivalent to
>>     BC cond,*+1
>> but which is coded using LA with an ORG back to change the
>> opcode, to avoid getting an error message. This avoids a branch
>> in the normal case. It is primarily used for integrity and
>> consistency checks, and my recovery routine recognizes this
>> convention and reports it as "TRAP occurred at offset &1 in &2".
>>  
John Gilmore has argued, reasonably, in IBM-MAIN, for proper use
of the ABEND macro rather than such flamboyant stunts.

-- gil

Reply via email to