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 />

Multiply Accumulate High Halfword to<br />

Word Modulo Signed<br />

XO-form<br />

machhw RT,RA,RB (OE=0 Rc=0)<br />

machhw. RT,RA,RB (OE=0 Rc=1)<br />

machhwo RT,RA,RB (OE=1 Rc=0)<br />

machhwo. RT,RA,RB (OE=1 Rc=1)<br />

4 RT RA RB OE 44 Rc<br />

0 6 11 16 21 22 31<br />

Multiply Accumulate High Halfword to<br />

Word Saturate Signed<br />

XO-form<br />

machhws RT,RA,RB (OE=0 Rc=0)<br />

machhws. RT,RA,RB (OE=0 Rc=1)<br />

machhwso RT,RA,RB (OE=1 Rc=0)<br />

machhwso. RT,RA,RB<br />

(OE=1 Rc=1)<br />

4 RT RA RB OE 108 Rc<br />

0 6 11 16 21 22 31<br />

prod 0:31 (RA) 32:47 × si (RB) 32:47<br />

temp 0:32 prod 0:31 + (RT) 32:63<br />

RT 32:63 temp 1:32<br />

RT 0:31 undefined<br />

The signed-integer halfword in bits 32:47 of register RA<br />

is multiplied by the signed-integer halfword in bits 32:47<br />

of register RB.<br />

The 32-bit signed-integer product is added to the<br />

signed-integer word in bits 32:63 of register RT.<br />

The low-order 32 bits of the sum are placed into bits<br />

32:63 of register RT.<br />

The contents of bits 0:31 of register RT are undefined.<br />

Special Registers Altered:<br />

SO OV<br />

(if OE=1)<br />

CR0<br />

(if Rc=1)<br />

prod 0:31 (RA) 32:47 × si (RB) 32:47<br />

temp 0:32 prod 0:31 + (RT) 32:63<br />

if temp < -2 31 then RT 32:63 0x8000_0000<br />

else if temp > 2 31 -1 then RT 32:63 0x7FFF_FFFF<br />

else RT 32:63 temp 1:32<br />

RT 0:31 undefined<br />

The signed-integer halfword in bits 32:47 of register RA<br />

is multiplied by the signed-integer halfword in bits 32:47<br />

of register RB.<br />

The 32-bit signed-integer product is added to the<br />

signed-integer word in bits 32:63 of register RT.<br />

If the sum is less than -2 31 , then the value 0x8000_0000<br />

is placed into bits 32:63 of register RT.<br />

If the sum is greater than 2 31 -1, then the value<br />

0x7FFF_FFFF is placed into bits 32:63 of register RT.<br />

Otherwise, the sum is placed into bits 32:63 of register<br />

RT.<br />

The contents of bits 0:31 of register RT are undefined.<br />

Special Registers Altered:<br />

SO OV<br />

(if OE=1)<br />

CR0<br />

(if Rc=1)<br />

Chapter 9. Legacy Integer Multiply-Accumulate Instructions<br />

287

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

Saved successfully!

Ooh no, something went wrong!