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
,则
不能为type
DW
。 cond
-
是一个可选的条件代码(请参阅条件执行)。
Note
只能用在 Thumb-2 代码中,且前面要有cond
IT
指令。 这是 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& ...
随机推荐
- java运行环境和运行机制
先来介绍三个概念: JVM----JAVA virtual machine java虚拟机:对字节码提供相同的接口,对操作系统提供不同的接口,以适应各个OS JRE----JAVA runt ...
- JS字符串替换函数:Replace(“字符串1″, “字符串2″),
JS字符串替换函数:Replace(“字符串1″, “字符串2″), 1.我们都知道JS中字符串替换函数是Replace(“字符串1″, “字符串2″),但是这个函数只能将第一次出现的字符串1替换掉, ...
- Python练习,网络小爬虫(初级)
最近还在看Python版的rcnn代码,附带练习Python编程写一个小的网络爬虫程序. 抓取网页的过程其实和读者平时使用IE浏览器浏览网页的道理是一样的.比如说你在浏览器的地址栏中输入 www ...
- MySQL MMM 双主在Failover时挂起
两台MySQL服务器,版本Percona 5.5.35,配置双主,装在Centos 6.4下 Master1 db1,172.21.120.160(真实IP),172.21.120.173(Writ ...
- c# winform DirectX播放器 可以任意设置宽高比 屏幕拉伸
第一步:dll引用 Microsoft.DirectX.dll Microsoft.DirectX.AudioVideoPlayback.dll 如果没有的话,可能需要安装微软的DRECTX JDK ...
- java equals和==的区别
大概说equals和==都比较的是什么: 1. boolean tem = a == b; 首先==比较的肯定是地址,从堆栈的角度说也就是说==比较的是栈上面的内容.因为栈是用来存放地址或是java中 ...
- Python企业级开发之一:基础
Python企业级开发相关内容.这里涉及到Python开发过程中的问题以及解决办法.还提供新的开发思路. 脚本开发的一些共同的问题.如:1.对OO的支持不完善,2.问题定位方式给出的信息过于晦涩,3. ...
- ping命令脚本实现显示网络状态、学生姓名、学号
#!/bin/bash a=. ####定义一个固定变量 h=(wanghao xieyunshen 刘桃) ####定义数组 ..} ####for循环,后面的in是条件即从多少循环到多少 do # ...
- [DL学习笔记]从人工神经网络到卷积神经网络_1_神经网络和BP算法
前言:这只是我的一个学习笔记,里边肯定有不少错误,还希望有大神能帮帮找找,由于是从小白的视角来看问题的,所以对于初学者或多或少会有点帮助吧. 1:人工全连接神经网络和BP算法 <1>:人工 ...
- typedef 函数指针 数组 std::function
1.整型指针 typedef int* PINT;或typedef int *PINT; 2.结构体 typedef struct { double data;}DATA, *PDATA; //D ...