Golang源码中xmm0寄存器
在阅读Golang源码时,经常看到下面一段汇编代码,如下:
0x00000000004310c8 <+24>: xorps %xmm0,%xmm00x00000000004310cb <+27>: movups %xmm0,0x8(%rsp)0x00000000004310d0 <+32>: movups %xmm0,0x18(%rsp)0x00000000004310d5 <+37>: movups %xmm0,0x28(%rsp)
xmm0是128位寄存器,一般用于浮点数运算,但程序中没有看到任何浮点数变量,那这段代码是什么意思?
其实很简单,就是将内存置0。如上面这段代码,是将0x8(%rsp)
到0x38(%rsp)
之间的内存置0。为什么要这样置0?因为用的指令更少,xmm0是128位寄存器,每个指令可以清空16byte大小的内存,而如果用MOVQ AX, 0x8
指令,一次只能清空8byte,需要花两倍指令才能达到相同目的。
xorps
异或指令,异或同一个变量结果一定为0,通过xorps %xmm0,%xmm0
就是将xmm0寄存器置0。
Golang源码中xmm0寄存器相关推荐
- 【我的架构师之路】- golang源码分析之协程调度器底层实现( G、M、P)
本人的源码是基于go 1.9.7 版本的哦! 紧接着之前写的 [我的区块链之路]- golang源码分析之select的底层实现 和 [我的区块链之路]- golang源码分析之channel的底层实 ...
- golang源码分析-调度概述
golang源码分析-调度过程概述 本文主要概述一下golang的调度器的大概工作的流程,众所周知golang是基于用户态的协程的调度来完成多任务的执行.在Linux操作系统中,以往的多线程执行都是通 ...
- golang源码分析-启动过程概述
golang源码分析-启动过程概述 golang语言作为根据CSP模型实现的一种强类型的语言,本文主要就是通过简单的实例来分析一下golang语言的启动流程,为深入了解与学习做铺垫. golang代码 ...
- go linux 源码编译环境,修改并编译golang源码
Go 语言诞生5周年! 友情提示:本文使用Markdown编写,黑色背景文字可能需要横向拖动才能看清全文 最近为了做Hyperledger Fabric国密改造,涉及到了golang源码的改动.特将操 ...
- c++ map 获取key列表_好未来Golang源码系列一:Map实现原理分析
分享老师:学而思网校 郭雨田 一.map的结构与设计原理 golang中map是一个kv对集合.底层使用hash table,用链表来解决冲突 ,出现冲突时,不是每一个key都申请一个结构通过链表串起 ...
- 第一次作业:对于Linux2.6.0源码中进程模型的分析
摘要: 作为第一次写博客,可能在排版,页面布局等方面会有大大小小的失误和不足,希望阅读者可以指出,笔者会继续学习,锻炼自己的博客水平:作为第一次分析Linux操作系统,基于进程模型的理解,在不是很熟悉 ...
- Golang源码探索----GC的实现原理(6)
推荐文章: Golang源码探索----GC的实现原理(1) Golang源码探索----GC的实现原理(2) Golang源码探索----GC的实现原理(3) Golang源码探索----GC的实现 ...
- Android 编译过程介绍,Android.mk 和 Android.bp 分析, 在源码中编译 AndroidStudio 构建的 App
目录 一.Android 编译 1. 编译流程 2. Soong 介绍 3. build.sh 二.Android.mk 解析 三.Android.bp 解析 1. 模块类型 2. 模块属性 四.An ...
- Golang源码探究 —— chan
目录 1.chan数据结构的定义 2.创建chan 3.发送数据 c <- 3.1 直接发送 3.2 放入缓冲区 3.3 休眠等待 3.4 chan发送源码 4.接收数据 <- c 4.1 ...
最新文章
- 谷歌大脑新算法,不折腾TPU就能加快AI训练速度
- 【数字信号处理】傅里叶变换性质 ( 序列傅里叶变换共轭对称性质 | 序列实偶 傅里叶变换 实偶 | 序列实奇 傅里叶变换 虚奇 | 证明 “ 序列实奇 傅里叶变换 虚奇 “ )
- 游戏中用到的设计模式
- STC12单片机串口U盘测试程序源码
- 全部换新-微软复兴.NET,C#10 .NET6 VS2022各个强势!
- 那些中国式家庭的小烦恼,我看用AI来解决就“都挺好” | 技术头条
- Regsvr32.exe 的用法
- js中substr与substring的区别
- python可以通过引用来对象吗_Python的可调用对象
- Mysql 常用函数集
- Python数据可视化,Pyecharts库,国家卫健委疫情风险等级数据可视化
- 腾讯程序员不寻常的三年
- c语言 abs 不好用,c语言中 abs 和 fabs 不同吗?
- Bada学习-SDK的安装
- 离线安装docker
- 首款搭载国产龙芯 CPU 的域名服务器发布
- Android系统教程PPT,Android教程之架构详解.ppt
- 多测师肖sir_高级金牌讲师__python之常见if语句
- Android:Environment.getExternalStorageDirectory 废弃
- win10 安装下载jupyter lab