Browse Prior Art Database

Binding of Variables to Registers in Microcode

IP.com Disclosure Number: IPCOM000084937D
Original Publication Date: 1976-Jan-01
Included in the Prior Art Database: 2005-Mar-02
Document File: 2 page(s) / 13K

Publishing Venue

IBM

Related People

Ris, FN: AUTHOR [+2]

Abstract

Two new instructions are used in a procedure that is to be compiled or assembled into microcode. These instructions are "bind on entry", and "bind on exit", and may be written as follows: bindent v,h bindexit v,h.

This text was extracted from a PDF file.
This is the abbreviated version, containing approximately 53% of the total text.

Page 1 of 2

Binding of Variables to Registers in Microcode

Two new instructions are used in a procedure that is to be compiled or assembled into microcode. These instructions are "bind on entry", and "bind on exit", and may be written as follows: bindent v,h bindexit v,h.

The first parameter, v, is the name of a variable. The second parameter, h, is the name of a hardware resource (register) existing in the machine for which the procedure is being compiled.

It is assumed that the microcode compiler or assembler includes a "register allocation" action that assigns one or more physical registers to each occurrence of a variable in the procedure being compiled. It is further assumed that the register allocator employs global program optimization techniques, whereby the procedure's flow graph is taken into account to assign registers to variables in a manner that minimizes moves between registers and between registers and main storage.

The "bindent" instruction is used at the beginning of certain basic blocks defined by code sequences that are entered only at the first instruction, and whose only branching instruction is the last instruction. It is a command to the register allocator that the variable v must at that point be assigned to the specified hardware register h. A typical use of "bindent" is on procedure entry: bindent P,RO.

Here, it is assumed that the procedure is given a parameter P in hardware register RO. The resource allocator must have P assigned to RO at procedure entry, but it is free to generate "move" instructions that move the contents of RO to another register or to main storage, and to have P designate that new location, if doing so results in a more efficient procedure.

The "bindexit" instruct...