【问题标题】:Do conditional branches update flags in ARMv8条件分支是否更新 ARMv8 中的标志
【发布时间】:2017-04-10 22:46:48
【问题描述】:

我正在尝试实现类似于以下 C 代码的功能:

if(x<0)
{
    <code A>
}
else if(x == 0)
{
    <code B>
}
else        //x > 0
{
    <code C>
}
postIf code

所以我想知道是否可以通过在 ARMv8、AArch64 指令集中执行以下操作来做到这一点:

    cmp x_r, 0     //x_r macro for x19
    b.lt neg
    b.gt pos

    <code B>
    b postIf

neg:
    <code A>
    b postIf
pos:
    <code C>
postIf:
    <postIf Code>

这行得通吗?检查条件分支后标志是否保持设置(或不设置)?

【问题讨论】:

标签: assembly arm armv8


【解决方案1】:

是的,这应该可以正常工作。分支指令不修改标志。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-28
    • 2016-11-03
    • 2021-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多