Assembly x64 Intro - MMX 4x4W Transpose
来源:互联网 发布:阳光512控台编程光束灯 编辑:程序博客网 时间:2024/06/06 01:04
; pOut mm1, mm4, mm5, mm3
%macro MMX_Trans4x4W 5
MMX_XSwap wd, %1, %2, %5
MMX_XSwap wd, %3, %4, %2
MMX_XSwap dq, %1, %3, %4
MMX_XSwap dq, %5, %2, %3
%endmacro
%macro MMX_XSwap 4
movq %4, %2
punpckh%1 %4, %3
punpckl%1 %2, %3
%endmacro
MMX_Trans4x4W mm0, mm1, mm2, mm3, mm4
Here, assume, mm0 = a3a2a1a0, mm1 = b3b2b1b0, mm2 = c3c2c1c0, mm3 = d3d2d1d0 (4个16bit)
MMX_Trans4x4W mm0, mm1, mm2, mm3, mm4 将使得
mm0 = d0c0b0a0, mm3 = d1c1b1a1, mm4 = d2c2b2a2, mm2 = d3c3b3a3
上述展开如下:
MMX_XSwap wd, mm0, mm1, mm4 =>
movq mm4, mm0 => mm4 = mm0 = a3a2a1a0
punpckhwd mm4, mm1 => mm4 = b3a3b2a2
punpcklwd mm0, mm1 => mm0 = b1a1b0a0
MMX_XSwap wd, mm2, mm3, mm1 =>
movq mm1, mm2 => mm1 = mm2 = c3c2c1c0
punpckhwd mm1, mm3 => mm1 = d3c3d2c2
punpcklwd mm2, mm3 => mm2 = d1c1d0c0
MMX_XSwap dq, mm0, mm2, mm3 =>
movq mm3, mm0 => mm3 = mm0 = b1a1b0a0
punpckhdq mm3, mm2 => mm3 = d1c1b1a1
punpckldq mm0, mm2 => mm0 = d0c0b0a0
MMX_XSwap dq, mm4, mm1, mm2 =>
movq mm2, mm4 => mm2 = mm4 = b3a3b2a2
punpckhdq mm2, mm1 => mm2 = d3c3b3a3
punpckldq mm4, mm1 => mm4 = d2c2b2a2
=> mm0 = d0c0b0a0, mm3 = d1c1b1a1, mm4 = d2c2b2a2, mm2 = d3c3b3a3
- Assembly x64 Intro - MMX 4x4W Transpose
- Assembly x64 Intro - SSE2 4x4D Transpose
- Assembly x64 Intro - SSE2 2x4x4W Transpose
- Assembly x64 Intro - SSE2 4x8 Load
- Assembly x64 Intro - SSE2 4x8 Store
- Assembly x64 Intro - SSE2 Hadamard 4 DC
- Assembly x64 Intro - Arrays
- Assembly x64 Intro - Nasm Example
- Assembly x64 Intro - Nasm Syntax
- Assembly x64 Intro - Arith Operate
- Assembly x64 Intro - Loop Example
- Assembly x64 Intro - Register Usage
- Assembly x64 Intro - Shift Operate
- Assembly x64 Intro - Condition Compare
- Assembly x64 Intro - Logic Operate
- Assembly x64 Intro - SSE2 Copy16Times
- Assembly x64 Intro - SSE2 Copy8Times
- Assembly x64 Intro - XMM ABS
- HelloWorldServlet
- 用例图之包含、扩展、泛化
- mmap函数用法及示例程序
- 利用java自带的MD5加密
- oracle中replace函数的使用
- Assembly x64 Intro - MMX 4x4W Transpose
- android上开源的酷炫的交互动画和视觉效果
- 汇编中寄存器的唯一作用
- main方法详解&static
- 关于右键菜单
- Objective-C语言——NSDictionary不可变字典
- TCP/IP学习之简介
- 浏览器历史
- Matlab绘图-很详细,很全面(包含各种标示符的输入方法)