Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to move 128-bit immediates to XMM registers

Tags:

There already is a question on this, but it was closed as "ambiguous" so I'm opening a new one - I've found the answer, maybe it will help others too.

The question is: how do you write a sequence of assembly code to initialize an XMM register with a 128-bit immediate (constant) value?

like image 258
Virgil Avatar asked Jul 11 '11 17:07

Virgil


People also ask

What is the size in bits of a complete XMM register?

XMM registers, instead, are a completely separate registers set, introduced with SSE and still widely used to this day. They are 128 bit wide, with instructions that can treat them as arrays of 64, 32 (integer and floating point),16 or 8 bit (integer only) values.


1 Answers

Just wanted to add that one can read about generating various constants using assembly in Agner Fog's manual Optimizing subroutines in assembly language, Generating constants, section 13.8, page 124.

like image 87
Norbert P. Avatar answered Nov 11 '22 07:11

Norbert P.