Power ISA™ Version 3.0 Programming Model Bulletin

advertisement
J
®
Power ISA™ Version 3.0
Programming Model
Bulletin
May 10, 2016
IBM Hardware Support Documentation
© Copyright International Business Machines Corporation 2016
Printed in the United States of America May, 2016
IBM, the IBM logo, and ibm.com are trademarks or registered trademarks of International Business
Machines Corp., registered in many jurisdictions worldwide. Other product and service names might be
trademarks of IBM or other compa-nies. A current list of IBM trademarks is available on the Web at
“Copyright and trademark information” at
www.ibm.com/legal/copytrade.shtml.
Other company, product, and service names may be trademarks or service marks of others.
All information contained in this document is subject to change without notice. The products described
in this document are NOT intended for use in applications such as implantation, life support, or other
hazardous uses where malfunction could result in death, bodily injury, or catastrophic property
damage. The information contained in this document does not affect or change IBM product
specifications or warranties. Nothing in this document shall operate as an express or implied license or
indemnity under the intellectual property rights of IBM or third parties. All information contained in this
docu-ment was obtained in specific environments, and is presented as an illustration. The results
obtained in other operating environments may vary.
While the information contained herein is believed to be accurate, such information is preliminary, and
should not be relied upon for accuracy or completeness, and no representations or warranties of
accuracy or completeness are made.
Note: This document contains information on products in the design, sampling and/or initial
production phases of development. This information is subject to change without notice.
Verify with your IBM field applications engineer that you have the latest version of this
document before finalizing a design.
This document is intended for development of technology products compatible with Power
Architecture®. You may use this document, for any purpose (commercial or personal) and make
modifications and distribute; however, modifications to this document may violate Power Architecture
and should be carefully considered. Any distribution of this document or its derivative works shall
include this Notice page including but not limited to the IBM warranty disclaimer and IBM liability
limitation. No other licenses, expressed or implied, estoppel or otherwise to any intellectual property
rights is granted by this document.
THE INFORMATION CONTAINED IN THIS DOCUMENT IS PROVIDED ON AN “AS IS” BASIS. IBM
makes no represen-tations or warranties, either express or implied, including but not limited to,
warranties of merchantability, fitness for a particular purpose, or non-infringement, or that any practice
or implementation of the IBM documentation will not infringe any third party patents, copyrights, trade
secrets, or other rights. In no event will IBM be liable for damages arising directly or indirectly from any
use of the information contained in this document.
IBM Systems and Technology Group
2070 Route 52, Bldg. 330
Hopewell Junction, NY 12533-6351
The IBM home page can be found at ibm.com®.
ii
Power ISA v3.0 Programming Model Bulletin
IBM Hardware Support Documentation
The following changes are made to the Power ISA v3.0 (November 30, 2015) specification.
1.
The following three instructions are withdrawn from the architecture, and the opcodes assigned to these instructions are returned to the available pool of opcodes.
VSX Scalar Compare Not Equal Double-Precision (xscmpnedp)
VSX Vector Compare Not Equal Double-Precision (xvcmpnedp)
VSX Vector Compare Not Equal Single-Precision (xvcmpnesp)
Instruction sequences using these instructions can be replaced with equivalent or near-equivalent sequences. For
example, the C conditional operator (x!=y)?a:b can be implemented using xscmpeqdp-xxsel in the form,
(x==y)?b:a, by reversing the order of the a and b operands in the xxsel instruction.
2.
The Vector Shift Left (vsl) and Vector Shift Right (vsr) instructions require the shift count to be replicated in every
byte of the Vector Register providing the shift count. Therefore, a Vector Splat Byte (vspltb) instruction should be
inserted prior to the vsl and vsr instructions in the instruction sequence in the Programming Note on page 264, as
follows,
vslo
vspltb
vsl
Vz,Vx,Vy
Vy,Vy,15
Vz,Vz,Vy
and in the instruction sequence in the Programming Note on page 267, as follows.
vslo
vspltb
vsl
vsububm
vsro
vspltb
vsr
vor
3.
Vt1,Vw,Vy
Vy,Vy,15
Vt1,Vt1,Vy
Vt3,V0,Vy
Vt2,Vx,Vt3
Vt3,Vt3,15
Vt2,Vt2,Vt3
Vz,Vt1,Vt2
# shift high-order reg left
# adjust shift count ((V0)=0)
# shift low-order reg right
# merge to get final result
The number of bytes (nb) to be loaded/stored by the Load VSX Vector with Length (lxvl) (page 490), Load VSX
Vector Left-justified with Length (lxvll) (page 492), Store VSX Vector with Length (stxvl) (page 508) and Store
VSX Vector Left-justified with Length (stxvll) (page 510) instructions is clamped to 16 if the value in byte 0 of
GPR[RB] is greater than 16. The RTL for the instructions should also include this clamping function by adding the
new statement
if nb>16 then nb ← 16
after the existing statement
nb ← EXTZ(GPR[RB].bit[0:7])
in each of these instructions’ RTL description.
Power ISA v3.0 Programming Model Bulletin
Download