Chapter 8. Low Level System Information

8.1. Machine Interface

8.1.1. Processor Architecture

The AMD64 Architecture is specified by the following documents

Applications conforming to this specification must provide feedback to the user if a feature that is required for correct execution of the application is not present. Applications conforming to this specification should attempt to execute in a diminished capacity if a required instruction set feature is not present. In particular, applications should not rely on the availability of the 3DNow!™ technology. In addition, a conforming application shall not use any instruction from Table 8-1.

Note: While this specification carries the attribution "AMD64", it is intended to apply to the entire x86_64 set of processors, including those based on Intel® 64 Architecture. However, this specification defers to the AMD64 architecture specifications listed above.

Table 8-1. Non Conforming Instructions

LAHFSAHF
SYSCALLSYSRET
SYSENTERSYSEXIT
CMPXCHG16BFFXSR

Conforming applications may use only instructions which do not require elevated privileges.

Conforming applications shall not invoke the implementations underlying system call interface directly. The interfaces in the implementation base libraries shall be used instead.

Rationale: Implementation-supplied base libraries may use the system call interface but applications must not assume any particular operating system or kernel version is present.

This specfication does not provide any performance guarantees of a conforming system. A system conforming to this specification may be implemented in either hardware or software.

8.1.2. Data Representation

8.1.2.1. Introduction

LSB-conforming applications shall use the data representation as defined in Section 3.1.2 of System V Application Binary Interface AMD64 Architecture Processor Supplement.

Note: The System V Application Binary Interface AMD64 Architecture Processor Supplement specification is itself layered on top of the System V Application Binary Interface - Intel386™ Architecture Processor Supplement.

8.1.2.2. Byte Ordering

LSB-conforming applications shall use the byte ordering defined in Section 3.1.2 of System V Application Binary Interface AMD64 Architecture Processor Supplement.

8.1.2.3. Fundamental Types

LSB-conforming applications shall use only the fundamental types described in Section 3.1.2 of System V Application Binary Interface AMD64 Architecture Processor Supplement.

8.1.2.4. Aggregates and Unions

LSB-conforming applications shall use alignment for aggregates and unions as described in Section 3.1.2 of System V Application Binary Interface AMD64 Architecture Processor Supplement.

8.1.2.5. Bit Fields

LSB-conforming applications utilizing bit-fields shall follow the requirements of Section 3.1.2 of the System V Application Binary Interface AMD64 Architecture Processor Supplement.