Browse Prior Art Database

Load 16 and Jump

IP.com Disclosure Number: IPCOM000107749D
Original Publication Date: 1992-Mar-01
Included in the Prior Art Database: 2005-Mar-22
Document File: 6 page(s) / 193K

Publishing Venue

IBM

Related People

Relson, P: AUTHOR

Abstract

Disclosed is a method with which to accomplish a set-all-registers and branch-to-target-location function on a machine supporting the ESA/390* architecture. This method is not restricted to use by privileged routines.

This text was extracted from an ASCII text file.
This is the abbreviated version, containing approximately 24% of the total text.

Load 16 and Jump

       Disclosed is a method with which to accomplish a
set-all-registers and branch-to-target-location function on a machine
supporting the ESA/390* architecture.  This method is not restricted
to use by privileged routines.

      A load-and-branch algorithm is described which provides the
function of loading all of the registers with any desired value and
then branching to any desired location.

      The point of interest is that all the registers must be loaded,
thus not leaving an addressable location in which to save the target
location.  So, the question to be solved is how to continue execution
at the desired location while maintaining the capability of changing
the values of all of the registers.

      The following terms are used within this document:
      .   PSW - program status word
      .   ALET - Access List Entry Token which provides an
identification for a space containing data, potentially different
than the primary space
      .   AR - access register
      .   AR ASC mode - access register addressing control mode - a
PSW mode which uses the access registers in computing addresses.
      .   GPR - general-purpose register
      .   MVS - an IBM  operating system
      .   Instructions from the ESA/370 architecture
      .   RB - request block, which represents the unit of work.

      Solution:  Assume an area of storage is established which
contains the desired GPRs and target address.
      1.  Point GPR 1 to the storage area
      2.  Set GPR 15 to the target address
      3.  Set GPRs 2-14 from the storage area
      4.  Issue BAKR 15,0
      5.  Set up GPRs 15, 0, 1 from the storage area
      6.  Issue PR
      A data structure to achieve this is
      STORAGE_AREA DSECT
      JUMP@        DS     A         Target address
      GPRS_2_TO_14 DS     CL(4*13)  GPRs 2-14 to load
      GPRS_15_TO_1 DS     CL(4*)    GPRS 15-1 to load
      STORAGE_AREA_LEN EQU *_STORAGE-AREA

      The actual assembler instructions that would implement the
algorithm are:
      LA   1,STORAGE_AREA      Get addressability to storage area
      USING STORAGE_AREA,1     Define addressability
      L    15,JUMP@            Pick up jump target address
      LM   2,14,GPRS_2_TO_14   Set GPRs 2 through 14
      BAKR 15,0                Save on linkage stack
      LM   15,1,GPRS_15_TO_1   Set GPRs 15 through 1
      PR                       Load and jump
      Drop 1                   Release addressability

      The function described originally can be expanded to allow for
      .  Setting the access registers as well
      .  Producing the expansion running AR ASC mode as well
      .  Releasing the...