Complete SSE instruction definitions for x86-64
authorPaul Khuong <pvk@pvk.ca>
Tue, 21 May 2013 19:12:58 +0000 (15:12 -0400)
committerPaul Khuong <pvk@pvk.ca>
Tue, 21 May 2013 19:12:58 +0000 (15:12 -0400)
commit1d68d81c3022715f83faeff6ccc9836975783462
tree1a538e1f67317d8a06a8bfdebf0bcb061fe49115
parentd94ff35d497524325658b16ca5a3ac22abdf4e41
Complete SSE instruction definitions for x86-64

 * New instruction formats:
  - 2-byte instructions with GP/mem source and XMM destination.
  - 1- and 2-byte instructions with XMM source and GP/mem destination.
  - F3-escape instructions GP/mem source and GP destination.
  - 2-byte instructions with GP/mem source and GP destination.

 * Complete support for SSE instruction sets:
  - SSE3
  - SSSE3
  - SSE4.1
  - SSE4.2

 * Fix definition of pblendvb, blendvps, blendvpd: These require a third operand,
   implicitly in XMM0.

 * PEXTRW has a new 2-byte encoding in SSE4.1 which allows a memory address as
   the destination operand. The new encoding is only used when dst is a memory
   address, otherwise the old backward-compatible encoding is used.

 * Fix 64-bit popcnt (F3 still comes REX.W), and make it check for operand sizes,
   like the new CRC32.

 * Slightly adapted from Jonathan Armond to work with Douglas Katzman's F3-specific
   r, r/m instruction format.
src/compiler/x86-64/insts.lisp