【汇编优化】之X86架构优化公用头讲解

11 篇文章 35 订阅 ¥19.90 ¥99.00
11 篇文章 2 订阅

 x86优化包含的知识点太多,并且win64\linux64\x86_32 都有不同的形参传递规则,因此本文的目的不是讲解这些规则,而是讲解开源代码中如何通过代码对这些规则进行统一化管理。

1、代码讲解

 拿libvpx1.4/ffmpeg/turboJPEG中x86inc.asm讲解,尽管这些开源库中x86inc.asm不是完全一样,但大同小异,可把这些小异认为是一个演进过程。打住!进入正文:

基本知识(冰山一角)
(1)MMX寄存器:MMX寄存器由8个64位寄存器(MM0~MM7)组成
(2)SSE与AVX寄存器:SSE都有XMM0-XMM7这8个128位寄存器,x86_64系统还有额外的8个寄存器(XMM0~XMM15)。而支持AVX指令集的CPU,他们把XMM*寄存器扩充为256寄存器。

 在汇编代码中,不知各位读者是否读过下段类似的代码,如果没有读过,那么此文也不必读了!!

INIT_XMM sse
cglobal block_error, 3, 3, 8, uqc, dqc, size, ssz

cglobal 后的参数依次对应于 #function_name, #args, #regs, #xmm_regs, arg_names…

1.1 INIT_XMM sse 的解析

 INIT_XMM 宏的作用:1、统一操作数是不同类型的寄存器指令(如sse寄存器用movdqa指令&#

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值