On 10/24/2013 01:11 AM, Zhenqiang Chen wrote: >> Why would you need to encode comparisons in CCmodes? >> That looks like a mis-design to me. > > The CCmodes are used to check whether the result of a previous conditional > compare can combine with current compare. By changing it to rtx_code, I can > reuse current code (arm_select_dominance_cc_mode_1) to check it. > The CCmodes are also used to emit the "condition code" for a conditional > execution. E.g. > > CC1 (CC_DGEmode) = CCMP (a >= 0, b >= 0) > ==> cmp a, #0 > cmpge b, #0 > CC2 = CCMP ( CC1 != 0, c >= 0) > ==> cmpge c, #0 > The "ge" is from the mode of CC1 in "CC1 != 0". And the mode of CC2 is not > necessary the same as CC1.
But since you've got the previous comparison operator, why do you need the same data encoded into the mode? r~