On 24/10/13 17:15, Richard Henderson wrote:
> 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~
> 

The branch instruction doesn't have that information, only the CC mode.

R.

Reply via email to