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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

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

registers are altered except those set by the<br />

interrupt.<br />

- Otherwise either an Illegal Instruction type<br />

Program interrupt occurs (in which case no<br />

architected registers are altered except those<br />

set by the interrupt) or the results are boundedly<br />

undefined (or possibly undefined, for<br />

mtspr; see Book III).<br />

A.18 Effects of Exceptions on<br />

FPSCR Bits FR and FI<br />

For the following cases, POWER does not specify how<br />

FR and FI are set, while <strong>Power</strong> ISA preserves them for<br />

Invalid Operation Exception caused by a Compare<br />

instruction, sets FI to 1 and FR to an undefined value<br />

for disabled Overflow Exception, and clears them otherwise.<br />

Invalid Operation Exception (enabled or disabled)<br />

Zero Divide Exception (enabled or disabled)<br />

Disabled Overflow Exception<br />

A.19 Store Floating-Point Single<br />

Instructions<br />

There are several respects in which <strong>Power</strong> ISA is<br />

incompatible with POWER for Store Floating-Point Single<br />

instructions.<br />

<br />

<br />

POWER uses FPSCR UE to help determine<br />

whether denormalization should be done, while<br />

<strong>Power</strong> ISA does not. Using FPSCR UE is in fact<br />

incorrect: if FPSCR UE =1 and a denormalized single-precision<br />

number is copied from one storage<br />

location to another by means of lfs followed by<br />

stfs, the two “copies” may not be the same.<br />

For an operand having an exponent that is less<br />

than 874 (unbiased exponent less than -149),<br />

POWER stores a zero (if FPSCR UE =0) while<br />

<strong>Power</strong> ISA stores an undefined value.<br />

A.20 Move From FPSCR<br />

POWER defines the high-order 32 bits of the result of<br />

mffs to be 0xFFFF_FFFF, while <strong>Power</strong> ISA specifies<br />

that they are undefined.<br />

A.21 Zeroing Bytes in the Data<br />

Cache<br />

The dclz instruction of POWER and the dcbz instruction<br />

of <strong>Power</strong> ISA have the same opcode. However, the<br />

functions differ in the following respects.<br />

dclz clears a line while dcbz clears a block.<br />

<br />

<br />

dclz saves the EA in RA (if RA≠0) while dcbz does<br />

not.<br />

dclz is privileged while dcbz is not.<br />

A.22 Synchronization<br />

The Synchronize instruction (called dcs in POWER)<br />

and the isync instruction (called ics in POWER) cause<br />

more pervasive synchronization in <strong>Power</strong> ISA than in<br />

POWER. However, unlike dcs, Synchronize does not<br />

wait until data cache block writes caused by preceding<br />

instructions have been performed in main storage.<br />

Also, Synchronize has an L field while dcs does not,<br />

and some uses of the instruction by the operating system<br />

require L=2. (The L field corresponds to<br />

reserved bits in dcs and hence is expected to be zero<br />

in POWER programs; see Section A.3.)<br />

A.23 Move To Machine State<br />

Register Instruction<br />

The mtmsr instruction has an L field in <strong>Power</strong> ISA but<br />

not in POWER. The function of the variant of mtmsr<br />

with L=1 differs from the function of the instruction in<br />

the POWER architecture in the following ways.<br />

In <strong>Power</strong> ISA, this variant of mtmsr modifies only<br />

the EE and RI bits of the MSR, while in the<br />

POWER mtmsr modifies all bits of the MSR.<br />

This variant of mtmsr is execution synchronizing<br />

in <strong>Power</strong> ISA but is context synchronizing in<br />

POWER. (The POWER architecture lacks <strong>Power</strong><br />

ISA’s distinction between execution synchronization<br />

and context synchronization. The statement in<br />

the POWER architecture specification that mtmsr<br />

is “synchronizing” is equivalent to stating that the<br />

instruction is context synchronizing.)<br />

Also, mtmsr is optional in <strong>Power</strong> ISA but required in<br />

POWER.<br />

A.24 Direct-Store Segments<br />

POWER’s direct-store segments are not supported in<br />

<strong>Power</strong> ISA.<br />

A.25 Segment Register<br />

Manipulation Instructions<br />

The definitions of the four Segment Register Manipulation<br />

instructions mtsr, mtsrin, mfsr, and mfsrin differ<br />

in two respects between POWER and <strong>Power</strong> ISA.<br />

Instructions similar to mtsrin and mfsrin are called<br />

mtsri and mfsri in POWER.<br />

730<br />

<strong>Power</strong> ISA -- Book Appendices

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

Saved successfully!

Ooh no, something went wrong!