arm cache line,PLD指令
C中嵌入汇编PLD指令:asm("PLD [%0,#128]": :"r" (psrc) );
copy自官方文档:
4.2.7. PLD、PLDW 和 PLI
预载数据和预载指令。 处理器可向内存系统发送信号,告诉内存系统在不久的将来可能要从某个地址加载数据或指令。
语法
PLtype{cond} [Rn{, #offset}]
PLtype{cond} [Rn, +/-Rm{,shift}]
PLtype{cond}label
其中:
type-
可以是下列项之一:
D-
数据地址
DW-
要写入的数据地址
I-
指令地址
如果语法指定了
label,则不能为typeDW。 cond-
是一个可选的条件代码(请参阅条件执行)。
Note
只能用在 Thumb-2 代码中,且前面要有condIT指令。 这是 ARM 中的无条件执行指令,请一定不要使用。cond Rn-
是内存地址所基于的寄存器。
offset-
是直接偏移量。 如果省略偏移量,则该地址为
中的值。Rn Rm-
是一个寄存器,包含要用作偏移量的值。
不能为 r15。 对于 Thumb 指令,Rm还不能为 r13。Rm shift-
是一个可选的移位。
label-
是一个程序相对的表达式。 有关详细信息,请参阅相对寄存器和程序相对的表达式。
偏移量范围
预载前,会先将偏移量应用到 中的值。 所得结果将用作预载的内存地址。 偏移量的允许范围为:Rn
–4095 到 +4095(ARM 指令)
–255 到 +4095(适用于
不是 r15 时的 Thumb-2 指令)。Rn–4095 到 +4095(适用于
为 r15 时的 Thumb-2 指令)。Rn
汇编器会计算相对 PC 的偏移量。 如果 超出范围,则汇编器会生成错误。label
寄存器或寄存器移位偏移量
在 ARM 中, 中的值既可与 Rm 中的值相加,也可从其中减去。 在 Thumb-2 中,Rn 中的值只能与 Rm 中的值相加。 所得结果将用作预载的内存地址。Rn
移位的允许范围为:
LSL#0 到 #3(对于 Thumb-2 指令)对于 ARM 指令,可为以下范围之一:
LSL#0 到 #31LSR#1 到 #32ASR#1 到 #32ROR#1 到 #31RRX
预载的地址对齐
对于预载指令,系统不执行对齐检查。
体系结构
ARM PLD 可用于 ARMv5TE 及更高版本。
32 位 Thumb PLD 可用于 ARMv6T2 及更高版本。
PLDW 只能用于实现了多重处理扩展的 ARMv7 及更高版本。
PLI 只能用于 ARMv7 及更高版本。
不存在 16 位 Thumb PLD、PLDW 或 PLI 指令。
这些是提示指令,其实现是可选的。 如果未实现,则这些指令作为 NOP 执行。
参考:http://blog.csdn.net/waverider2012/article/details/8538923
arm cache line,PLD指令的更多相关文章
- <转>科普CPU Cache line
转载于http://coolshell.cn/articles/10249.html CPU cache一直是理解计算机体系架构的重要知识点,也是并发编程设计中的技术难点,而且相关参考资料如同过江之鲫 ...
- cpu性能探究 :cache line 原理
參考: 一个解说Direct Mapped Cache很深入浅出的文章: http://www.cs.umd.edu/class/sum2003/cmsc311/Notes/Memory/dir ...
- cache line 伪共享
https://blog.csdn.net/qq_27680317/article/details/78486220认识CPU Cache CPU Cache概述 随着CPU的频率不断提升,而内存的访 ...
- ARM体系结构和汇编指令
第一节 可编程器件的编程原理 1. 可编程器件的特点 1 . CPU在固定频率的时钟控制下节奏运行 2 . CPU可以通过总线读取外部存储设备中的二进制指令集,然后解码执行 3 . 这些可以被CPU解 ...
- 伪共享(False Sharing)和缓存行(Cache Line)
转载:https://www.jianshu.com/p/a9b1d32403ea https://www.toutiao.com/a6644375612146319886/ 前言 在上篇介绍Long ...
- 程序与CPU,内核,寄存器,缓存,RAM,ROM、总线、Cache line缓存行的作用和他们之间的联系?
目录 缓存 什么是缓存 L1.L2.L3 为什么要设置那么多缓存.缓存在cup内还是cup外 MESI协议----主流的处理缓存和主存数据不一样问题 Cache line是什么已经 对编程中数组的影响 ...
- Cache Line 伪共享发现与优化
https://yq.aliyun.com/articles/465504 Cache Line 伪共享发现与优化 作者:吴一昊,杨勇 1. 关于本文 本文基于 Joe Mario 的一篇博客 改编而 ...
- arm B和BL指令浅析
arm B和BL指令浅析 B或BL指令引起处理器转移到“子程序名”处开始执行.两者的不同之处在于:(1)BL指令在转移到子程序执行之前,将其下一条指令的地址拷贝到R14(LR,链接寄存器). ...
- [zhuan]arm中的汇编指令
http://blog.csdn.net/qqliyunpeng/article/details/45116615 一. 带点的(一般都是ARM GNU伪汇编指令) 1. ".text& ...
随机推荐
- c#序列化json字符串及处理
上面提到的第四篇文章最后有个解析数组的例子,出现了 .First.First.First.First.Children(); 我表示很晕,网上找的的例子大多数是关于JObject的,但是我很少看到JA ...
- OC的总结 ***希望对大家有帮助*** ---高小杰
1. NSLog 是Foundation提供的一个输出函数,它的功能非常强大,不仅可以输出字符串,还可以输出各种对象,到后面程序还会见到大量的使用NSLog()函数. 2. N ...
- 数据库中老师学生家长表添加自动同意好友自动(AgreeAddingFriend ),默认为True
数据库中老师学生家长表添加自动同意好友自动(AgreeAddingFriend ),默认为True alter table Sys_User add AgreeAddingFriend bit alt ...
- Sublime一键预览
//chrome{ "keys": [ "f12" ], "command": "side_bar_files_open_with ...
- WebApi身份认证解决方案:Basic基础认证
前言:最近,讨论到数据库安全的问题,于是就引出了WebApi服务没有加任何验证的问题.也就是说,任何人只要知道了接口的url,都能够模拟http请求去访问我们的服务接口,从而去增删改查数据库,这后果想 ...
- ios学习-控制按钮图片的走动和变换
一.项目要求:制作一个界面,通过点击按钮来控制头像(按钮)向上,向下,向左,向右移动,可以左旋转,右旋转,以及放大和缩小. 二.开发步骤: 1.通过拖动按钮到storyboard搭建UI界面(后面会写 ...
- angularjs的三目运算
前言:前几天写代码的时候遇到一个问题,有一个按钮,有"已关注"和"+关注"两种状态,需要对这两种状态的按钮的背景颜色进行区分,单后点击"已关注&quo ...
- SeleniumIDE从0到1 (Selenium IDE 录制)
seleniumIDE安装成功后下面我们用百度网址来简单录制下: 简介一:百度输入框录制操作 1.打开SeleniumIDE 2.SeleniumIDE地址栏中输入百度网址:[https://www. ...
- Manthan, Codefest 16 -A Ebony and Ivory
time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standa ...
- 移动端重构系列-移动端html页面优化
对于访问量大的网站来说,前端的优化是必须的,即使是优化1KB的大小对其影响也很大,下面来看看来自ISUX的米随随讲讲移动手机平台的HTML5前端优化,或许对你有帮助和启发. 概述 1. PC优化手段在 ...