繁体   English   中英

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

[英]Do conditional branches update flags in 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>

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM