On Fri, Sep 15, 2017 at 2:12 PM, Dan Greiner <[email protected]> wrote:

> BRANCH INDIRECT ON CONDITION (BIC) was primarily designed in support of
> the new guarded-storage facility (GSF).  GSF is described beginning on page
> 4-64 of the IBM z/Architecture Principles of Operation (SA22-7832-11).
> Programming note 1 on p. 4-72 gives a (very) brief overview of GSF concepts.
>
> Briefly, GSF provides support for programming languages that implement
> so-called "garbage collection" by allowing the language to designate
> sections of it's heap that are undergoing urban renewal. When the program
> loads a pointer to a program object (by means of the new LOAD GUARDED [LGG]
> or LOAD LOGICAL AND SHIFT GUARDED [LLGFSG] instructions), either (a) the
> instruction executes normally (i.e., the target location is not undergoing
> urban renewal), or (b) the target location is is in a guarded area, in
> which case a guarded-storage event (GSE) is recognized. In the case of GSE
> recognition, control branches to a pre-registered event handler, where the
> program can perform whatever fix-up is required to effect garbage
> collection, and then branch back to the original LGG / LLGFSG to try it
> again.
>
> BIC provides the means by which the GSE handler can branch back with only
> a stack pointer. That is, after performing whatever garbage-collection is
> necessary, the GSE handler can restore any and all registers it altered,
> and then branch back to the LGG / LLGFSG with only the stack pointer.
>
> Using BIC for indexed branches was considered to be interesting (though
> secondary).
>
> FYI: Although I was involved with the architecture definition of GSF and
> BIC, I am now retired.
>
​​

​Very interesting. Especially the part about the garbage collection. I was
curious what that was all about.

-- 
UNIX was not designed to stop you from doing stupid things, because that
would also stop you from doing clever things. -- Doug Gwyn

Maranatha! <><
John McKown

Reply via email to