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& ...
随机推荐
- 选中统计winform
private void gridControl1_MouseUp(object sender, MouseEventArgs e) { Dictionary<string, decimal&g ...
- win7,安装node失败
win7下,下载node安装包,安装之后 打开命令行输入 node -v,仍然提示命令不可用. 解决办法: 找到环境变量: 在用户变量里修改 path: 添加系统变量 NODE_PATH: 关机重启电 ...
- 小米抢购(简单版v0.1)-登录并验证抢购权限,以及获取真实抢购地址
小米(简单版)-登录并验证抢购权限,以及获取真实抢购地址! 并不是复制到浏览器就行了的 还得传递所需要的参数 这里只是前部分 后面的自己发挥了 { "stime": 1389 ...
- C语言回顾-二维数组
1.二维数组:是一个特殊的一维数组 完全初始化: 1)int a[2][3]={{1,2,3},{2,3,4}}; 2)连续赋值int a[2][3]={1,2,3,2,3,4}; 3)可以省略第一维 ...
- 记一次 IDEA mybatis.generator 自定义扩展插件
在使用 idea mybatis.generator 生成的代码,遇到 生成的代码很多重复的地方, 虽然代码是生成的,我们也不应该允许重复的代码出现,因为这些代码后期都要来手动维护. 对于生成时间戳注 ...
- JavaScript语言精粹读书笔记 - JavaScript函数
JavaScript是披着C族语言外衣的LISP,除了词法上与C族语言相似以外,其他几乎没有相似之处. JavaScript 函数: 函数包含一组语句,他们是JavaScript的基础模块单元,用于代 ...
- qt qml 九宫格划指锁屏视图
九宫格划指锁屏视图Lisence: MIT, 请保留本文档说明Author: surfsky.cnblogs.com 2015-02 [先看效果] [下载] http://download.csdn. ...
- Terra Vista 6.2
最近在做虚拟仿真相关工作,想把GIS中的一些想法用虚拟显示技术实现,在保证准确性的同时,提高展现效果. 前不久在朋友圈获得了一个强大的三维地形构建软件Terra Vista 6.2,据说这个软件是加拿 ...
- wex5 实战 图片触摸放大移动插件easyzoom的使用与集成
一 前言 客户的需求就是上帝的召唤. 作为一个开发人员,或者软件从业者,客户的要求就是准则. 遇到一个客户,让我做一个图片放大,但是移动拖拽要定位精准.之前研究过一个hammer插件,多次尝试放大后的 ...
- windows+caffe(五)——实例2MNIST图片
1. 数据集 MNIST手写体数据.bmp图片:训练集60K张28*28的,测试集10K张28*28的: 训练集: 测试集: 下载地址: 2. 读取图片名称与标签,保存到trainlist.txt与t ...