Search code examples
assemblyx86intelsse

XMM register 0 not being used in Intel instruction documentation


In the Intel x64 manual it says that there's XMM registers 0-7 in 32-bit SSE2 mode. Why then do 95% of the instructions that use these registers skip 0 and use 1-4?

For example, Intel's vol.2 manual entry for addps lists it as ADDPS xmm1, xmm2/m128.


Solution

  • You are misunderstanding something, probably the placeholders in the manual. When an instruction description says xmm1 or xmm2 it usually means any xmm register, the number just indicates operand numbering.

    For example, ADDPS xmm1, xmm2/m128 can add two arbitrary xmm registers or add a memory operand to an arbitrary xmm register.