ARM base instruction -- csinv

[复制链接]
发表于 2025-12-31 00:30:18 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
Conditional Select Invert returns, in the destination register, the value of the first source register if the condition is TRUE, and otherwise returns the bitwise inversion value of the second source register.
假如条件为TRUE,则条件选择反转在目的寄存器中返回第一个源寄存器的值,否则返回第二个源寄存器按位反转的值。

32-bit variant
    Applies when sf == 0.
    CSINV <Wd>, <Wn>, <Wm>, <cond>
64-bit variant
    Applies when sf == 1.
    CSINV <Xd>, <Xn>, <Xm>, <cond>
Decode for all variants of this encoding
 integer d = UInt(Rd);
 integer n = UInt(Rn);
 integer m = UInt(Rm);
 integer datasize = if sf == '1' then 64 else 32;
Operation
 bits(datasize) result;
 bits(datasize) operand1 = X[n];
 bits(datasize) operand2 = X[m];
 
 if ConditionHolds(cond) then
     result = operand1;
 else
     result = NOT(operand2);
 
 X[d] = result;

回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表