当前位置: 首页 > news >正文

灰色调网站wordpress 4.9.1模板

灰色调网站,wordpress 4.9.1模板,资源站建站技术,贵阳seo网站推广技巧1. 前言 在查看一段neon代码时,发现有如下片段,为使用汇编进行数据预取操作。这是一个新的知识点,记录一下学习过程。 __asm__ volatile("prfm pldl2keep,[%0, #8192] \n""prfm pldl1keep,[%0, #1024] \n":"r"…

1. 前言

        在查看一段neon代码时,发现有如下片段,为使用汇编进行数据预取操作。这是一个新的知识点,记录一下学习过程。

  __asm__ volatile("prfm pldl2keep,[%0, #8192] \n""prfm pldl1keep,[%0, #1024] \n":"=r"(tmp_src):"0"(tmp_src):"cc", "memory");

2. GCC内联汇编

        GCC中的内联汇编格式如下

__asm__ __volatile__(指令部: 输出部: 输入部: 副作用列表)

        其中的知识点列出如下:

1)__asm__/asm是GCC中的一个关键字,用来声明一个内联汇编表达式。

2)__volatile__/volatile是GCC中的一个关键字,告诉编译器不允许对后面嵌入的代码进行优化。

3)指令部中带有%的数字如%0、%1等,表示需要使用寄存器的操作数

4)输出部:用于描述在指令部中可以修改的C语言变量和它的约束条件。一般以"="/"+"开头,"="表示操作数可写,"+"表示可读可写;然后是一个字母,表示对操作数类型的说明。

5)输入部:描述指令部中智能读取的C语言变量以及约束条件。输入部中的参数只有只读属性,所以不能使用"="/"+"进行修饰。

6)副作用列表:一般以“memory”结束。“cc”表示内嵌代码修改了状态寄存器的相关标志位;“memory”告诉编译器内嵌代码改变了内存状态

        看一个例子,代码如下,实现将寄存器中的数据读取出来。

<arch/arm64/include/asm/irqflags.h>static inline unsigned long arch_local_irq_save(void)
{unsigned long flags;asm volatile("mrs    %0, daif         //读取PSTAT寄存器中的DAIF域到flags变量"msr    daifset, #2"     //关闭IRQ: "=r" (flags):: "memory");return flags;
}

        输出部中%0对应"=r" (flags),“=”表示操作数具备可写属性,“r”表示使用一个通用寄存器;输入部为空;副作用列表表示代码改变了内存状态。

3. prfm指令

        prfm是ARM中的一个汇编指令,用于执行预取操作,旨在减少未来的缓存缺失延迟。通过预先加载数据到缓存中,可以在后续访问这些数据时更快地获取它们,从而提高程序的整体性能。

1)命令基本形式

        prfm命令的基本形式如下

prfm <type>, <address>

        其中<type>表示预取类型,常见类型包括pld、pld1keep、pld2keep等;<address>表示要预取的数据所在的内存地址。

2)预取类型

  • pld;将数据预取到最后一级缓存(L1或L2),数据块大小一般为64字节。
  • pldl1keep;将数据预取到L1数据缓存,数据块大小一般为64字节。
  • pldl2keep;将数据预取到L2数据缓存,数据块大小一般为64字节。

        由于涉及到内存操作,有必要在执行预取之前确保地址有效,这也算是一种防御性编程。

4. 小结

        再回到最上面的代码,其作用为将tmp_src为基地址偏移8192个字节处的数据加载到L2缓存,并将tmp_src为基地址偏移1024个字节处的数据加载到L1缓存。": "=r"(srcdata_p)":表示 srcdata_p 可以存储在任意类型的寄存器中,并且会被更新;:"0"(srcdata_p)":表示使用与输出约束相同的寄存器编号,即 srcdata_p

5. 参考

https://zhuanlan.zhihu.com/p/465498325

https://www.cnblogs.com/FireLife-Cheng/p/18186919

http://www.yayakq.cn/news/112507/

相关文章:

  • 网站不用了 怎么关闭江苏网站优化建站
  • 如何建立像百度一样的网站成都广告公司简介
  • 什么网站做推广福州市住房和城乡建设局官网
  • 2021国内最好用免费建站系统如何对自己建设的网站进行推广
  • 网站seo完整seo优化方案软件开发公司是干什么的
  • 北京网站建设签约如何建设手机端网站
  • 建设网站建设网站推广团队在哪里找
  • 网站建设需要掌握什么知识大兴安岭做网站
  • 在线网站建设询问报价设计工作室一年收入
  • app 微网站网站后台生成html
  • 西安做网站招聘给个网址兄弟
  • 义乌网站建设电话.net网站建设
  • 网站方案报价做非洲外贸的网站
  • 兼职网站项目建设报告中山网络推广
  • 马家堡网站建设杭州富阳做网站
  • 电子商务公司网站怎么建企业网站优秀案例
  • 做软装平台网站呼和浩特企业网站
  • 苏州哪个网站建设最好查网站二级域名
  • 做网站标题居中代码百度指数怎么看
  • 做地方短租网站常用的软件开发工具有哪些
  • 今天《新闻联播》回放福州seo扣费
  • 可视化网站开发系统介绍广西建设厅官方网站
  • 微信网站 顶部导航菜单青岛企业自助建站系统
  • 做房产经纪人要自己花钱开网站吗静态网页做的网站怎么发到网上
  • 巴中网站制作公司做微商有什么好的货源网站
  • react做的网站wordpress创建菜单
  • 怎么下载网站的视频建设网站的效果目的及其功能
  • 网站建设个人兼职购物网站开发的背景介绍
  • 网站地址查询域名潍坊百度关键词优化
  • 网站平台建设是什么做网站的的步骤怎么写