mardi 26 janvier 2016

SPARC Assembly if/else if not working

I'm translating a C method with two if statements to assembly. I'm having trouble getting a branch to work. I need two branches to be part of the same comparison, and one branch to be on its own. The two grouped branches work, but the lone third one doesn't; even if I use the same comparison, nothing happens with the third call.

ifStatements:
    cmp    %l3, %l0
    ble    useThisA    ! works
    nop

    bg     useThisB    ! works
    nop

    cmp    %l3, %l0
    bg     useThisC    ! doesn't work, even if it's cmp %l3, %l0 again
    nop

Why doesn't this work, conceptually?

Aucun commentaire:

Enregistrer un commentaire