加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

今天写了一天代码,确只写了一行

(2011-03-25 00:56:20)
标签:

杂谈

从早上10点写到现在,只写了一行代码,并测试通过,取名laf2,是我写完后自己都笑了。除非干这行的,否则不会有人能看懂的。

 

代码如下:

#define dolaf2(x,y,z) "pxor %%xmm1,%%xmm1\npxor %%xmm2,%%xmm2\nmovq "#x"(%1),%%xmm1\nmovhpd "#y"(%1),%%xmm2\npsllq $1,%%xmm15\nORPD   %%xmm2,%%xmm15\nORPD   %%xmm1,%%x
mm15\n"

#define laf2(x) dolaf2(512+x*8,x*8,x)

 

void PACK1(uint32_t* code,uint64_t* data,size_t n)
{

        unsigned char* des = (unsigned char*)code;
        unsigned char* src = (unsigned char*)data;
        for(int i =0,j=0;j<n;j+=128)
        {
                __asm__ __volatile__(
                "pxor %%xmm15,%%xmm15\n"

                laf2(0)
                laf2(1)
                laf2(2)
                laf2(3)
                laf2(4)
                laf2(5)
                laf2(6)
                laf2(7)
                laf2(8)
                laf2(9)

                laf2(10)
                laf2(11)
                laf2(12)
                laf2(13)
                laf2(14)
                laf2(15)
                laf2(16)
                laf2(17)
                laf2(18)
                laf2(19)

                laf2(20)
                laf2(21)
                laf2(22)
                laf2(23)
                laf2(24)
                laf2(25)
                laf2(26)
                laf2(27)
                laf2(28)
                laf2(29)

                laf2(30)
                laf2(31)
                laf2(32)
                laf2(33)
                laf2(34)
                laf2(35)
                laf2(36)
                laf2(37)
                laf2(38)
                laf2(39)

                laf2(40)
                laf2(41)
                laf2(42)
                laf2(43)
                laf2(44)
                laf2(45)
                laf2(46)
                laf2(47)
                laf2(48)
                laf2(49)

                laf2(50)
                laf2(51)
                laf2(52)
                laf2(53)
                laf2(54)
                laf2(55)
                laf2(56)
                laf2(57)
                laf2(58)
                laf2(59)

                laf2(60)
                laf2(61)
                laf2(62)
                laf2(63)

                "movdqu  %%xmm15 ,(%0)\n"

                ::"r"(des),"r"(src):"memory");
        }
}

           

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有