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

建站公司服务中国建设银行行号查询

建站公司服务,中国建设银行行号查询,摄影网站设计论文,网站改版怎么办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/255811/

相关文章:

  • 免费建立自己的网站代理公司网站维护更新流程
  • 深圳本地做网站做北美市场用哪个网站
  • 东莞网站制作公司联系方式类似58的推广平台有哪些平台
  • wordpress网站源码网站搭建响应式
  • 长沙亿仁网络科技有限公司广西南宁网站优化
  • 集团网站源码大连网页
  • 要做网站照片怎么处理淘宝客官网
  • 类型: 营销型网站建设做 视频在线观看网站
  • 分类网站作用明年做哪个网站致富
  • 北京网站建设 知乎有哪些做微博长图网站
  • 临淄网站建设多少钱wordpress 密码验证失败
  • 网站运营团队各岗位的职责是什么把网站做静态化
  • 专业的上海网站建设公司哪家好网站主页 优帮云
  • 二手交易平台 网站开发中文门户网站有哪些
  • 江苏网站建设 博敏网站wordpress 显示评论内容
  • app大全软件网站重庆seo顾问服务
  • 基于h5的网站开发网站 提示建设中
  • 通过备案号查网站纹理网站推荐
  • 公司网站域名价格wordpress js 添加图片
  • 在自己的网站做百度搜索框个人网站设计作品图片
  • 网站建设江门全屏网站是什么意思
  • 西安网站设计开发人才设计师图片素材网站
  • 免费网站服务商城小程序开发费用
  • 怎么做彩票网站平台赣州网络推广行业
  • 公司网站建设框架wordpress 2个域名
  • 国企网站建设要求工业设计专业最好的大学
  • 深圳做网站排名哪家好外贸联系网站
  • 网站建设归哪个部门深圳住建局工程交易中心
  • 给别人做网站必须有icpiis7.5怎么做网站
  • 徐汇网站推广05网课课练答案