📄 copyblock.asm
字号:
.section L1_code;
.global _xhCopyBlock_8x8_8u;
.global _xhCopyBlock_16x16_8u;
/************************************************************************************
ippiCopyBlock_8x8_8u (const Ipp8u* pSrc, int srcStep, Ipp8u* pDst,
int dstStep);
performance:
ASM C
cycle: 109 2659
************************************************************************************/
_xhCopyBlock_8x8_8u:
[--sp]=(r7:4,p5:3);
[--sp]=i0;
[--sp]=l0;
[--sp]=i1;
[--sp]=l1;
[--sp]=i2;
[--sp]=l2;
[--sp]=i3;
[--sp]=l3;
[--sp]=rets;
l0=0;
l1=0;
l3=0;
i0=r0;
i1=r0;
b0=r1;//srcstep
r4=r1;
r1=[sp+64+12];
b1=r1;//dststep
r5=r1;
b3=r2;//pdst
i3=r2;// pdst
p0=8;
r5+=-4;
r4+=-8;
m0=r4;
m1=r5;
i1=i0;
lsetup (copyblock_8_start,copyblock_8_end)lc0=p0;
disalgnexcpt||r0=[i0++]||r2=[i1++];
copyblock_8_start:
disalgnexcpt||r1=[i0++]||r3=[i1++];
r6=byteop1p(r1:0,r3:2)||r0=[i0++m0]||r2=[i1++m0];
r7=byteop1p(r1:0,r3:2)(r)||[i3++]=r6||r0=[i0++];
copyblock_8_end:
disalgnexcpt||[i3++m1]=r7||r2=[i1++];
rets=[sp++];
l3=[sp++];
i3=[sp++];
l2=[sp++];
i2=[sp++];
l1=[sp++];
i1=[sp++];
l0=[sp++];
i0=[sp++];
(r7:4,p5:3)=[sp++];
rts;
_xhCopyBlock_8x8_8u.end:
/****************************************************************************
ippiCopyBlock_16x16_8u (const Ipp8u* pSrc, int srcStep, Ipp8u* pDst,
int dstStep);
performance:
ASM C
cycle: 222 10011
*****************************************************************************/
_xhCopyBlock_16x16_8u:
[--sp]=(r7:4,p5:3);
[--sp]=i0;
[--sp]=l0;
[--sp]=i1;
[--sp]=l1;
[--sp]=i2;
[--sp]=l2;
[--sp]=i3;
[--sp]=l3;
[--sp]=rets;
l0=0;
l1=0;
l3=0;
i0=r0;
i1=r0;
b0=r1;//srcstep
r4=r1;
r1=[sp+64+12];
b1=r1;//dststep
r5=r1;
b3=r2;//pdst
i3=r2;// pdst
p0=16;
r5+=-12;
r4+=-16;
m0=r4;
m1=r5;
i1=i0;
lsetup (copyblock_16_start,copyblock_16_end)lc0=p0;
disalgnexcpt||r0=[i0++]||r2=[i1++];
copyblock_16_start:
disalgnexcpt||r1=[i0++]||r3=[i1++];
r6=byteop1p(r1:0,r3:2)||r0=[i0++]||r2=[i1++];
r7=byteop1p(r1:0,r3:2)(r)||r1=[i0++]||[i3++]=r6;
disalgnexcpt||[i3++]=r7||r3=[i1++];
r6=byteop1p(r1:0,r3:2)||r0=[i0++m0]||r2=[i1++m0];
r7=byteop1p(r1:0,r3:2)(r)||r0=[i0++]||[i3++]=r6;
copyblock_16_end:
disalgnexcpt||[i3++m1]=r7||r2=[i1++];
rets=[sp++];
l3=[sp++];
i3=[sp++];
l2=[sp++];
i2=[sp++];
l1=[sp++];
i1=[sp++];
l0=[sp++];
i0=[sp++];
(r7:4,p5:3)=[sp++];
rts;
_xhCopyBlock_16x16_8u.end:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -