您的位置:首页 > 运维架构

Assembly x64 Intro - SSE2 Copy16Times

2015-12-16 09:20 260 查看
;copy a db into a xmm for 16 times

%macro SSE2_Copy16Times 2

movd %1, %2

pshuflw %1, %1, 0

punpcklqdq %1, %1

packuswb %1, %1

%endmacro

movzx r2d, byte [r0] ; pixel pData for left border

SSE2_Copy16Times xmm0, r2d ; dst, tmp, pSrc [generic register name: a/b/c/d]

假设 [ r0 ] = 0x07

上面将展开如下:

movzx r2d, byte [r0] => r2d = 0x00000007

movd xmm0, r2d => xmm0 = 0x00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 07

pshuflw xmm0, xmm0, 0 => xmm0 = 0x0000 0000 0000 0000 0007 0007 0007 0007

punpcklqdq xmm0, xmm0 = > xmm0 = 0x0007 0007 0007 0007 0007 0007 0007 0007

packuswb xmm0, xmm0 => xmm0 = 0x0707 0707 0707 0707 0707 0707 0707 0707


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: