Geode instruction set: Difference between revisions

From OLPC
Jump to navigation Jump to search
m (Geode GX instruction set moved to Geode instruction set: Processor changed to Geode LX)
No edit summary
Line 1: Line 1:
:see [[Hardware specification]] and [http://www.amd.com/files/connectivitysolutions/geode/geode_lx/33234E_LX_databook.pdf AMD's Geode LX data book]
:see [[Hardware specification]] and [http://www.amd.com/files/connectivitysolutions/geode/geode_lx/33234E_LX_databook.pdf AMD's Geode LX data book]


== General ==
==General==
Generally speaking, the '''Geode''' processor supports the '''i686''' (Pentium Pro) instruction set plus '''MMX''' and '''3DNow! Enhanced''' instructions.


==PFRCPV==
Generally speaking, the '''Geode''' processor supports the i686 (Pentium Pro) instruction set, though it is not a complete Pentium Pro clone since many other features new to Pentium Pro, such as PAE and MTRR, are not supported. MMX and 3DNow! Enhanced instructions are also supported, (and indicated by the correct CPUID bits), so applications which check those bits should use MMX as usual. Additionally, there are some special AMD Geode instructions, but they are not used by the GNU compiler.
Opcode "0F 0F / 86" is "PFRCPV xr,xr/m64". It performs floating-point reciprocal approximation for a pair of 32-bit floats in an MMX register. It is like the PFRCP instruction, except that it operates on a pair of values.


==PFRSQRTV==
== Specific Instruction Sets ==
Opcode "0F 0F / 86" is "PFRSQRTV xr,xr/m64". It performs floating-point reciprocal square root approximation for a pair of 32-bit floats in an MMX register. It is like the PFRSQRT instruction, except that it operates on a pair of values.


==INT1==
* i686 (Pentium Pro)
Opcode "F1" is "INT1", a 1-byte version of the "INT 1" ("CD 01") instruction. This instruction is also known as ICEBP, and is in fact available (but mostly undocumented) on all x86 processors since the 80386.
* MMX

* AMD 3DNow! Enhanced
==SALC==
Opcode "D6" is "SALC", documented as "SETALC" with an incorrect description. This instruction sets all bits of AL to the carry flag. As with INT1, this instruction is available on all processors.

==Other==
There are numerous kernel-only instructions and MSRs for dealing with an extra debug mode, for directly loading and saving the normally-hidden segment state (base, limit, etc.) and so on.


[[Category:Hardware]]
[[Category:Hardware]]

Revision as of 18:40, 2 September 2007

see Hardware specification and AMD's Geode LX data book

General

Generally speaking, the Geode processor supports the i686 (Pentium Pro) instruction set plus MMX and 3DNow! Enhanced instructions.

PFRCPV

Opcode "0F 0F / 86" is "PFRCPV xr,xr/m64". It performs floating-point reciprocal approximation for a pair of 32-bit floats in an MMX register. It is like the PFRCP instruction, except that it operates on a pair of values.

PFRSQRTV

Opcode "0F 0F / 86" is "PFRSQRTV xr,xr/m64". It performs floating-point reciprocal square root approximation for a pair of 32-bit floats in an MMX register. It is like the PFRSQRT instruction, except that it operates on a pair of values.

INT1

Opcode "F1" is "INT1", a 1-byte version of the "INT 1" ("CD 01") instruction. This instruction is also known as ICEBP, and is in fact available (but mostly undocumented) on all x86 processors since the 80386.

SALC

Opcode "D6" is "SALC", documented as "SETALC" with an incorrect description. This instruction sets all bits of AL to the carry flag. As with INT1, this instruction is available on all processors.

Other

There are numerous kernel-only instructions and MSRs for dealing with an extra debug mode, for directly loading and saving the normally-hidden segment state (base, limit, etc.) and so on.