在ARMv8中执行条件分支更新标志

时间:2017-04-10 22:46:48

标签: assembly arm armv8

我正在尝试实现类似于以下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>

这有用吗?检查条件分支后,标志是否保持设置(或未设置)?

1 个答案:

答案 0 :(得分:1)

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