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& ...
随机推荐
- 真正shopex分销王2代DRP系统源码正版安装版本终身商业授权
真正ShopEx分销王系统2代正版授权.该商业程序已经完整授权,已测试100%完整能用.很多朋友来问是否免费版的源码?错,这是和官方一样的平台版本,100%无限制功能使用,跟官方付费使用的授权版一样. ...
- Oracle EBS 初始化用户密码(转)
---修改密码,并且将限制用户下次登录的时候(第一次登录),强制要换一个新的口令: ---此过程可以完全模拟我们在标准用户的Form里面初始化用户的密码的动作! ---最后要说明的是,这个处理过程是通 ...
- 关于在left join的on子句中限制左边表的取值时出现非期望的结果
使用的SQL大概是这样的: select * from A left join B on A.id=B.id and A.id>10; --错误的使用 我们期望的结果集应该是 A中的id> ...
- node 异步编程
node 异步编程 我了解到的node异步编程可分成: 1.回调函数 2.pub/sub模式(发布/订阅模式) 3.promise 4.generator 5.async await 一.直接回调函数 ...
- 在Ubuntu上安装有道词典
4月20日,由有道词典和Deepin团队共同完成的有道词典Linux版终于上线了,首先 推出Deepin和Ubuntu两个系统版本及其他版本的二进制包,估计以后还会有RPM 等版本.有道Linux版界 ...
- android 使用jdbc1.3.0 操作 sql server
String connectDB = "jdbc:jtds:sqlserver://172.16.1.15:1433;DatabaseName=YanBu";// 连接字符串换成这 ...
- C# 自动Ping服务
using Newtonsoft.Json; using Newtonsoft.Json.Linq; using System; using System.Collections.Generic; u ...
- Andrion错误解决:cannot be resolved or is not a field
cannot be resolved or is not a field 解决这个问题: 选择project菜单中的clean,选择你的项目,先clean一下, 再去看看Activity中有没 ...
- unity3d随机地牢生成代码
现在也是处于失业状态,碰巧看到个面试题是要用unity生成个随机地牢,就把做题过程中的思路和代码记录一下吧. 做完了以后我又想了一下,发现其实根本不需要这么麻烦,果然demo里的代码对我的思路影响还是 ...
- Unity3D心得分享
本篇文章的内容以各种tips为主,不间断更新 系列文章 =========================== "Unity测试系列"文章索引 Unity-Animator深入系列 ...