Есть ли у условных веток флаги обновления в 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 ответ

Да, это должно работать нормально. Инструкции перехода не изменяют флаги.

Другие вопросы по тегам