go to previous page   go to home page   go to next page hear noise



Condition Bit Holds its Value

The condition bit is like a one bit register. It continues to hold the value put into it by a comparison instruction until another comparison instruction is executed. The following code ensures that register $f12 has the minimum of $f0 or $f2. If they are equal, then $f12 gets the value they both contain.

main:   l.s     $f0,A            # get the values 
        l.s     $f2,B            # into registers
        c.lt.s  $f0,$f2          # is A < B?
        mov.s   $f12,$f0         # move A to $f12
                                 # (condition bit continues to hold
                                 # its value)
        bc1t    common           # otherwise
        mov.s   $f12,$f2         # move B to $f12


The above code is contrived; it would be better to reverse the third and fourth statements. However, sometimes it is very useful to hold the condition bit's value for several instructions before using it.


(Review: ) should c.eq.s be used to implement a while loop?