Intel ITANIUM ARCHITECTURE - SOFTWARE DEVELOPERS MANUAL VOLUME 1 REV 2.3 Manual page 385

Hide thumbs Also See for ITANIUM ARCHITECTURE - SOFTWARE DEVELOPERS MANUAL VOLUME 1 REV 2.3:
Table of Contents

Advertisement

Figure 6-3. Four Partitions of the Register Stack
RSE.LoadReg
RSE Load
RSE.BspLoad
Backing Store
The boundaries between the four register stack partitions are defined by the current
frame marker (CFM) and three physical register numbers: a load, store and
bottom-of-frame register number. As described in
register numbers has a corresponding 64-bit backing store memory address pointer.
(For example, AR[BSP] always contains the address where GR[32] of the current frame
will be stored.)
Figure 6-3
RSE loads use invalid registers. RSE stores use dirty registers. Eager RSE loads and
stores grow the clean partition. A br.call, brl.call, or cover instruction can increase
the bottom-of-frame pointer (RSE.BOF) which moves registers from the current frame
to the dirty partition. An alloc may shrink or grow the current frame by updating
CFM.sof. A br.ret or rfi instruction may shrink or grow the current frame by updating
both the bottom-of-frame pointer (RSE.BOF) and CFM.sof.
6.4
RSE Operation
The register stack backing store is organized as a stack in memory that grows from
lower addresses towards higher addresses. The top of the backing store stack is defined
by the Backing Store Pointer (BSP) application register, which points to the first
memory location reserved for the current frame. The RSE load and store activities take
Volume 2, Part 1: Register Stack Engine
Invalid
Physical Stacked Registers
RSE.StoreReg
Clean
Dirty
RSE Store
AR[BSPSTORE]
also shows the effects of various instructions on the partition boundaries.
RSE.BOF
CFM.sof
Current
return, rfi
call, cover
AR[BSP]
Table 6-1
each of these physical
return, rfi, alloc
Higher Addresses
2:137

Advertisement

Table of Contents
loading

This manual is also suitable for:

Itanium architecture 2.3

Table of Contents