Conditional Increment returns, in the destination register, the value of the source register incremented by 1 if the condition is TRUE, and otherwise returns the value of the source register.
如果条件为TRUE,则条件增量在目标寄存器中返回源寄存器的值加1,否则返回源寄存器。
32-bit variant
Applies when sf == 0.
CINC <Wd>, <Wn>, <cond>
64-bit variant
Applies when sf == 1.
CINC <Xd>, <Xn>, <cond>
Decode for all variants of this encoding
integer d = UInt(Rd);
integer n = UInt(Rn);
integer datasize = if sf == '1' then 64 else 32;
Operation
bits(datasize) result;
bits(datasize) operand1 = X[n];
if ConditionHolds(cond) then
result = operand1 + 1;
else
result = operand1;
X[d] = result;
404288: 710002ff cmp w23, #0x0 // w23=0
40428c: aa1b03fc mov x28, x27 // x28=x27=walk->next
404290: 110006f7 add w23, w23, #0x1 // w23=w23+1 count++
404294: 1a94069b cinc w27, w20, ne // w27=0, w20=0; if ConditionHolds(cond) then w27=w20+1=1
404298: 17ffffd2 b 4041e0 <ferror@plt+0x2300>