From 94dc0c20554f3a3d709711f2c43ac65ab7c68afe Mon Sep 17 00:00:00 2001 From: James Cloos Date: Mon, 4 Apr 2011 11:36:03 -0400 Subject: * src/base/ftcalc.c (FT_MulFix): Produce more efficient assembly. Improve the version of FT_MulFix() which is used when a sixty-four bit interger type is available. --- src/base/ftcalc.c | 20 +++----------------- 1 file changed, 3 insertions(+), 17 deletions(-) (limited to 'src') diff --git a/src/base/ftcalc.c b/src/base/ftcalc.c index 3892fabf..b7866abc 100644 --- a/src/base/ftcalc.c +++ b/src/base/ftcalc.c @@ -202,25 +202,11 @@ #else - FT_Int s = 1; - FT_Long c; + FT_Int64 c; + c = (FT_Int64)a * b; - if ( a < 0 ) - { - a = -a; - s = -1; - } - - if ( b < 0 ) - { - b = -b; - s = -s; - } - - c = (FT_Long)( ( (FT_Int64)a * b + 0x8000L ) >> 16 ); - - return ( s > 0 ) ? c : -c; + return (FT_Long)((c + 0x8000 - (c < 0)) >> 16); #endif /* FT_MULFIX_ASSEMBLER */ } -- cgit v1.2.3