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.
Only instructions which do not require elevated privileges may be used.
Applications may not make system calls directly. The interfaces in the C library must be used instead.
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.