Hi, 
> http://www.keil.com/support/man/docs/armasm/armasm_dom1361289902800.htm

>From this piece code: (ftcalc.c +244)
        return (int32_t)( ( ab + 0x8000L - ( ab < 0 ) ) >> 16 );

this routine seems produce a result of a integer include the bit 16 to bit 
(16+32)
and round up?

Greater than one half   --> +1
Less than one half      --> discard

FT_MulFix  a b

  a x b become a 64bit interger.

 a x b:|B7|B6|B5|B4|B3|B2|B1|B0|
       |xx|xx|B5|B4|B3|B2|xx|xx|

If(|B1|B0| > 0x10000/2) 
  |B5|B4|B3|B2| += 1
  
----->return |B5|B4|B3|B2|

Am I understand this right?

Regards,
duhuanpeng





_______________________________________________
Freetype-devel mailing list
Freetype-devel@nongnu.org
https://lists.nongnu.org/mailman/listinfo/freetype-devel

Reply via email to