We do the same.
The relative halfword count is at +2 - so the instruction is 00
It's handy to see where exactly you died. And why.


On 8/6/18, 10:51 AM, "IBM Mainframe Assembler List on behalf of Paul 
Gilmartin" <ASSEMBLER-LIST@LISTSERV.UGA.EDU on behalf of 
00000014e0e4a59b-dmarc-requ...@listserv.uga.edu> wrote:
    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