C/c++ language extensions for cbe architecture – Sony VERSION 1.0 User Manual
Page 9
Guide to Cell/B.E. Programming Documentation
© 2008 Sony Computer Entertainment Inc. All Rights Reserved.
Version 1.0, August 2008
Page 9 of 16
C/C++ Language Extensions for CBE Architecture
Cell Broadband Engine Public Information and Downloads
Length
150 pages.
Audience
C/C++ application and system programmers.
Content
Extensions (intrinsics) to the C and C++ languages that allow software developers to access hardware features not
accessible (or not easily accessible) from C or C++. The extensions allow SIMD and other applications to obtain PPE or
SPE performance comparable to assembly-language programs. The document also includes function specifications to
facilitate communication between SPEs and the PPE, and it lists a minimal set of standard library functions that must
be provided as part of a standard SPE programming environment.
Recommended Use
Browse during first readings of the
, and refer to it thereafter as needed during coding of
applications for the PPE or SPEs.
Document Sections
The document has the following sections:
1. Data Types and Programming Directives: PPU vector/SIMD multimedia extension and SPU vector data types,
operations on these data types, programming directives, and predefined macro target definitions.
2. SPU Low-Level Specific and Generic Intrinsics: The basic intrinsics and built-ins that make the underlying SPU ISA
and SPE hardware accessible from the C programming language.
3. Composite Intrinsics: Intrinsics that can be constructed from a series of low-level (generic or specific) intrinsics.
4. Programming Support for MFC Input and Output: Utility functions implemented either as macro definitions or built-
in functions that support MFC input or output.
5. SPU and Vector Multimedia Extension Intrinsics: Mapping between PPU vector/SIMD multimedia extension
intrinsics and SPU intrinsics.
6. PPU VMX Intrinsics: Intrinsics that make the underlying PPU vector/SIMD multimedia extension instruction set
accessible from C and C++.
7. PPU Intrinsics: A minimal set of specific intrinsics to make the underlying PPU instruction set accessible from C.
8. SPU C and C++ Standard Libraries and Language Support: Differences between C and C++ standard libraries on
the SPU and the corresponding IS0/IEC standards, and common language features that are not supported on the
SPU.
9. Floating-Point Arithmetic on the SPU: Differences between Annex F of the C99 language floating-point standard
(ISO/IEC 9899) and the SPU implementations that apply to SPU compilers and libraries.
Recommended Prerequisites
Read or browse:
Further Details
See: