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指令&#

【汇编优化】之X86架构优化公用头讲解相关推荐

  1. mysql参数优化步骤_MySQL架构优化实战系列4:SQL优化步骤与常用管理命令2(转)

    MySQL架构优化实战系列4:SQL优化步骤与常用管理命令 原文:http://dbaplus.cn/news-11-649-1.html 一.SQL语句优化步骤 1.查看MySQL状态及配置 sho ...

  2. 不止SQL优化,数据库还有哪些优化大法?

    前言 当有人问你如何对数据库进行优化时,很多人第一反应想到的就是SQL优化,如何创建索引,如何改写SQL,他们把数据库优化与SQL优化划上了等号. 当然这不能算是完全错误的回答,只不过思考的角度稍微片 ...

  3. 【汇编优化】之x86架构intrinsic优化

    1.SSE Intrisic based on x86 x86架构下的优化有多种手段,常见的有纯汇编优化.inline汇编.Intrinsic优化.前两种对编译器的依赖比较大,跨平台(windows\ ...

  4. 给Arm生态添把火,腾讯Kona JDK Arm架构优化实践

    前言 Arm架构以其兼具性能与功耗的特点,在智能终端以及嵌入式领域得到了广泛的使用,不断扩大其影响力.而在PC端以及数据中心,之前往往是x86架构在其中发挥着主要的作用.最近,随着人工智能.云计算等技 ...

  5. 企业级Nginx服务基础到架构优化详解--25条

    1.隐藏nginx header版本号 2.更改源码隐藏软件名称 3.更改nginx默认用户及用户组 4.配置nginx worker进程个数 5.根据CPU核数进行nginx进程优化 6.nginx ...

  6. 网站(前端、后端)性能(架构)优化手段

    网站的性能测试   性能测试是性能优化的前提,也是性能优化结果的检查和度量标准.温馨提示:本文内容有点长,请耐心看完或者先收藏. 性能测试的常用指标: 响应时间 并发数目 吞吐量.常用的吞吐量指标: ...

  7. 京东前端:三级列表页持续架构优化

    为什么80%的码农都做不了架构师?>>>    王向维,京东商城三级列表页架构师.工作期间,完成了京东三级列表页由Node.js版本到Nginx+Lua版本的变迁,并针对三级列表页前 ...

  8. 京东三级列表页持续架构优化

    本文作者,王向维,京东商城三级列表页架构师.工作期间,完成了京东三级列表页由Node.js版本到Nginx+Lua版本的变迁,并针对三级列表页前端即服务器端做了大量的优化工作. 京东三级列表页 三级列 ...

  9. android cpu多核,ARM架构优化多核CPU战术_手机_手机Android频道-中关村在线

    芯片厂商的战争从来都不是兵戎相见,而是借由他人之手"借刀杀人".ARM阵营之所以越来越兴盛,不是因为没有竞争,而是因为内部的竞争是良性的.ARM其实就像一个大管家,Cortex-A ...

最新文章

  1. 新年福利 | “社区之星”(社区核心贡献者)成长故事征集
  2. jquery 选择时间(小时)区间(四)
  3. 【Python Django2.0入门教程】ORM之QuerySet 数据查询API:all get filter distinct first last count
  4. 一次thinkphp框架 success跳转卡顿问题的解决
  5. cocos2d-x游戏实例(28)-简易动作游戏(6)
  6. vs2005菜单:工具-选项-环境
  7. HEVC将会取代H.264的原因
  8. mvc ajax 页面不刷新页面,如何在不刷新页面MVC C#的情况下显示不同的值
  9. 那些盒模型在IE6中的BUG们,工程狮的你可曾遇到过?
  10. 【元胞自动机】基于matlab元胞自动机城市规划【含Matlab源码 125期】
  11. 关于document.cookie的使用javascript
  12. linux系统每次开机分辨率,解决linux分辨率设置过高 不能进入图形界面
  13. 纯js实现数据导出excel表格
  14. 2022年制造业单项冠军行业研究报告
  15. web界面设计(一)
  16. Unity子物体脱离父物体,解除父子关系,子物体不随父物体移动
  17. linux编译符号那些事儿
  18. 交叉引用跳转不到后面_参考文献如何正确标注引用而不会变红?
  19. 解决TinyMCE富文本编辑器上传视频后在编辑区域内不能预览视频,被替换成img标签的问题
  20. 【Python】未知来源的Python 2020期末考试试题,大家可以来答题学习了

热门文章

  1. python encode函数_python_base64和encode函数
  2. 事业单位计算机知识c语言,事业单位考试计算机基础知识C语言程序设计
  3. lisp把选集转成表_LISP(表处理语言)
  4. mysql genlog 分析_使用mysqlsla 分析 mysql logs
  5. html dom对象简写,HTML DOM 对象
  6. linux dns函数,Linux DNS (1)的基本概念
  7. html设置设置字母间的距离,css如何设置字母间距?字母间距的设置方法
  8. 【电脑帮助】解决Wind10系统照片中自带的保存的图片和本机照片的问题
  9. django url 生效_django 定制管理页面外观 模板文件不生效的解决方法
  10. 手机屏幕宽高像素计算_国内手机厂商纷纷支持,三星传感器终成正果!索尼还能雄起吗?...