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