阅读代码时,发现有个【组合指令】 orreq, orr 一般是 OR,也就是或操作,后面加个 eq 表示什么呢?
比如下面的代码:前面一个操作, tst,好像没做实际的操作,可能影响了一些【状态位】
tst r3, #1 << 20 @ check write
orreq r1, r1, #1 << 11
Instruction Set Assembly Guide for Armv7 and earlier Arm architectures Reference Guide
,搜索了一下,发现有这个 orreq 的指令,主要是 ORR 指令, eq 应该是个状态的后缀 tst r3, #1 << 20 @ check write @# 设置条件码
orreq r1, r1, #1 << 11 @# 根据条件码,上面【相等 z 标志位 置位1】 执行操作
orreq r1, r1, #1 << 11 就是 r1 = r1 || 1<<11 的操作