14.06.2015 Views

Power ISA™ Version 2.03 - Power.org

Power ISA™ Version 2.03 - Power.org

Power ISA™ Version 2.03 - Power.org

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>Version</strong> <strong>2.03</strong><br />

restore machine state when an rfid instruction is executed.<br />

SRR0 //<br />

0 62 63<br />

SRR1<br />

0 63<br />

Figure 30. Save/Restore Registers<br />

SRR1 bits may be treated as reserved in a given implementation<br />

if they correspond to MSR bits that are<br />

reserved or are treated as reserved in that implementation<br />

or, for SRR1 bits in the range 33:36 and 42:47,<br />

they are specified as being set either to 0 or to an<br />

undefined value for all interrupts that set SRR1 (including<br />

implementation-dependent setting, e.g. by the<br />

Machine Check interrupt or by implementation-specific<br />

interrupts).<br />

6.2.2 Hypervisor Machine Status<br />

Save/Restore Registers<br />

When a Hypervisor Decrementer interrupt occurs, the<br />

state of the machine is saved in the Hypervisor<br />

Machine Status Save/Restore registers (HSRR0 and<br />

HSRR1). The contents of these registers are used to<br />

restore machine state when an hrfid instruction is executed.<br />

HSRR0 //<br />

0 62 63<br />

HSRR1<br />

0 63<br />

Figure 31. Hypervisor Save/Restore Registers<br />

6.2.3 Data Address Register<br />

The Data Address Register (DAR) is a 64-bit register<br />

that is set by the Machine Check, Data Storage, Data<br />

Segment, and Alignment interrupts; see Sections 6.5.2,<br />

6.5.3, 6.5.4, and 6.5.8. In general, when one of these<br />

interrupts occurs the DAR is set to an effective address<br />

associated with the storage access that caused the<br />

interrupt, with the high-order 32 bits of the DAR set to 0<br />

if the interrupt occurs in 32-bit mode.<br />

DAR<br />

0 63<br />

Figure 32. Data Address Register<br />

6.2.4 Data Storage Interrupt<br />

Status Register<br />

The Data Storage Interrupt Status Register (DSISR) is<br />

a 32-bit register that is set by the Machine Check, Data<br />

Storage, Data Segment, and Alignment interrupts; see<br />

Sections 6.5.2, 6.5.3, 6.5.4, and 6.5.8. In general, when<br />

one of these interrupts occurs the DSISR is set to indicate<br />

the cause of the interrupt.<br />

DSISR<br />

32 63<br />

Figure 33. Data Storage Interrupt Status Register<br />

DSISR bits may be treated as reserved in a given<br />

implementation if they are specified as being set either<br />

to 0 or to an undefined value for all interrupts that set<br />

the DSISR (including implementation-dependent setting,<br />

e.g. by the Machine Check interrupt or by implementation-specific<br />

interrupts).<br />

HSRR1 bits may be treated as reserved in a given<br />

implementation if they correspond to MSR bits that are<br />

reserved or are treated as reserved in that implementation<br />

or, for HSRR1 bits in the range 33:36 and 42:47,<br />

they are specified as being set either to 0 or to an<br />

undefined value for all interrupts that set HSRR1<br />

(including implementation-dependent setting, e.g. by<br />

implementation-specific interrupts).<br />

The HSRR0 and HSRR1 are hypervisor resources; see<br />

Chapter 2.<br />

Programming Note<br />

Execution of some instructions, and fetching<br />

instructions when MSR IR =1, may have the side<br />

effect of modifying HSRR0 and HSRR1; see Section<br />

6.4.4.<br />

440<br />

<strong>Power</strong> ISA -- Book III-S

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!