V4L2: __ucmpdi2 undefined on ppc
Segher Boessenkool
segher at kernel.crashing.org
Mon Mar 3 08:53:12 EST 2008
>> +/*
>> + * __ucmpdi2: 64-bit comparison
>> + *
>> + * R3/R4 has 64 bit value A
>> + * R5/R6 has 64 bit value B
>> + * result in R3: 0 for A < B
>> + * 1 for A == B
>> + * 2 for A > B
>> + */
>> +_GLOBAL(__ucmpdi2)
>> + cmplw r7,r3,r5 # compare high words
>> + li r3,0
>> + blt r7,2f # a < b ... return 0
>> + bgt r7,1f # a > b ... return 2
>> + cmplw r6,r4,r6 # compare low words
>> + blt r6,2f # a < b ... return 0
>> + li r3,1
>> + ble r6,2f # a = b ... return 1
>> +1: li r3,2
>> +2: blr
Every occurrence of r7 here is wrong (and some of the r6). Is there
any reason to do this in assembler code at all?
Segher
More information about the Linuxppc-dev
mailing list