03.03.2013 Views

Intel® Architecture Instruction Set Extensions Programming Reference

Intel® Architecture Instruction Set Extensions Programming Reference

Intel® Architecture Instruction Set Extensions Programming Reference

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

INSTRUCTION SUMMARY<br />

Table B-6. VEX-Encoded and Other General-Purpose <strong>Instruction</strong> <strong>Set</strong>s<br />

Opcode <strong>Instruction</strong> Description<br />

VEX.NDS.LZ.0F38.W0 F2 /r ANDN r32a, r32b, r/m32 Bitwise AND of inverted r32b with r/m32, store result in r32a<br />

VEX.NDS.LZ.0F38.W1 F2 /r ANDN r64a, r64b, r/m64 Bitwise AND of inverted r64b with r/m64, store result in r64a<br />

VEX.NDS.LZ.0F38.W0 F7 /r BEXTR r32a, r/m32, r32b Contiguous bitwise extract from r/m32 using r32b as control;<br />

store result in r32a.<br />

VEX.NDS.LZ.0F38.W1 F7 /r BEXTR r64a, r/m64, r64b Contiguous bitwise extract from r/m64 using r64b as control;<br />

store result in r64a.<br />

VEX.NDD.LZ.0F38.W0 F3 /3 BLSI r32, r/m32 <strong>Set</strong> all lower bits in r32 to “1” starting from bit 0 to lowest set<br />

bit in r/m32<br />

VEX.NDD.LZ.0F38.W1 F3 /3 BLSI r64, r/m64 <strong>Set</strong> all lower bits in r64 to “1” starting from bit 0 to lowest set<br />

bit in r/m64<br />

VEX.NDD.LZ.0F38.W0 F3 /2 BLSMSK r32, r/m32 Extract lowest bit from r/m32 and set that bit in r32<br />

VEX.NDD.LZ.0F38.W1 F3 /2 BLSMSK r64, r/m64 Extract lowest bit from r/m64 and set that bit in r64<br />

VEX.NDD.LZ.0F38.W0 F3 /1 BLSR r32, r/m32 Reset lowest set bit of r/m32, keep all other bits of r/m32 and<br />

write result to r32<br />

VEX.NDD.LZ.0F38.W1 F3 /1 BLSR r64, r/m64 Reset lowest set bit of r/m64, keep all other bits of r/m64 and<br />

write result to r64<br />

VEX.NDS.LZ.0F38.W0 F5 /r BZHI r32a, r/m32, r32b Zero bits in r/m32 starting with the position in r32b, write<br />

result to r32a.<br />

VEX.NDS.LZ.0F38.W1 F5 /r BZHI r64a, r/m64, r64b Zero bits in r/m64 starting with the position in r64b, write<br />

result to r64a.<br />

F3 0F BD /r LZCNT r16, r/m16 Count the number of leading zero bits in r/m16, return result in<br />

r16<br />

F3 0F BD /r LZCNT r32, r/m32 Count the number of leading zero bits in r/m32, return result in<br />

r32<br />

REX.W + F3 0F BD /r LZCNT r64, r/m64 Count the number of leading zero bits in r/m64, return result in<br />

r64.<br />

VEX.NDD.LZ.F2.0F38.W0 F6 /r MULX r32a, r32b, r/m32 Unsigned multiply of r/m32 with EDX without affecting arithmetic<br />

flags.<br />

VEX.NDD.LZ.F2.0F38.W1 F6 /r MULX r64a, r64b, r/m64 Unsigned multiply of r/m64 with RDX without affecting arithmetic<br />

flags.<br />

VEX.NDS.LZ.F2.0F38.W0 F5 /r PDEP r32a, r32b, r/m32 Parallel deposit of bits from r32b using mask in r/m32, result is<br />

written to r32a.<br />

VEX.NDS.LZ.F2.0F38.W1 F5 /r PDEP r64a, r64b, r/m64 Parallel deposit of bits from r64b using mask in r/m64, result is<br />

written to r64a<br />

VEX.NDS.LZ.F3.0F38.W0 F5 /r PEXT r32a, r32b, r/m32 Parallel extract of bits from r32b using mask in r/m32, result is<br />

written to r32a.<br />

VEX.NDS.LZ.F3.0F38.W1 F5 /r PEXT r64a, r64b, r/m64 Parallel extract of bits from r64b using mask in r/m64, result is<br />

written to r64a<br />

VEX.LZ.0F3A.W0 F0 /r ib RORX r32, r/m32, imm8 Rotate 32-bit r/m32 right imm8 times without affecting arithmetic<br />

flags.<br />

VEX.LZ.0F3A.W1 F0 /r ib RORX r64, r/m64, imm8 Rotate 64-bit r/m64 right imm8 times without affecting arithmetic<br />

flags.<br />

VEX.NDS.LZ.F3.0F38.W0 F7 /r SARX r32a, r/m32, r32b Shift r/m32 arithmetically right with count specified in r32b.<br />

VEX.NDS.LZ.F3.0F38.W1 F7 /r SARX r64a, r/m64, r64b Shift r/m64 arithmetically right with count specified in r64b.<br />

VEX.NDS.LZ.66.0F38.W0 F7 /r SHLX r32a, r/m32, r32b Shift r/m32 logically left with count specified in r32b.<br />

VEX.NDS.LZ.66.0F38.W1 F7 /r SHLX r64a, r/m64, r64b Shift r/m64 logically left with count specified in r64b.<br />

VEX.NDS.LZ.F2.0F38.W0 F7 /r SHRX r32a, r/m32, r32b Shift r/m32 logically right with count specified in r32b.<br />

VEX.NDS.LZ.F2.0F38.W1 F7 /r SHRX r64a, r/m64, r64b Shift r/m64 logically right with count specified in r64b.<br />

Ref. # 319433-014 B-21

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!