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

本文主要讲解X86架构优化中的汇编代码,特别是开源库libvpx1.4/ffmpeg/turboJPEG中的x86inc.asm。内容包括INIT_XMM宏的作用,如统一寄存器指令和重新定义寄存器;以及cglobal宏的解析,介绍如何根据平台类型处理寄存器和形参。文章旨在统一不同平台的形参传递规则。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值