summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog4
-rw-r--r--src/base/ftcalc.c20
2 files changed, 7 insertions, 17 deletions
diff --git a/ChangeLog b/ChangeLog
index 0744fa5b..af3c9084 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2011-04-04 James Cloos <cloos@jhcloos.com>
+ * src/base/ftcalc.c (FT_MulFix): Produce more efficient
+ assembly.
+
2011-04-04 Werner Lemberg <wl@gnu.org>
Fix formatting of autofit debug dumps.
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 */
}