freetype2/builds/unix
David Turner a5f33eeb8a Speed up ARMv7 support.
When building for ARMv7 with thumb2 instructions, the optimized
`FT_MulFix_arm' assembly routine was not being used.

The reason for this is in the `ftconfig.h' header, namely:

- The assembly routine uses the `smull' instruction which is not
  available when generating Thumb-1 machine code.  It is available
  in Thumb-2 mode, though.

- The header was written a long time ago before Thumb-2 became
  widely popular (e.g. with Android).  So it simply doesn't use the
  assembly routine if the `__thumb__' built-in macro is defined.

- When compiling in Thumb-2 mode, the compiler will define both
  `__thumb__' and `__thumb2__'.

By checking for `(__thumb2__ || !__thumb__)', we ensure that the
assembly routine is only avoided when generating Thumb-1 code.

Given that this is performance-sensitive function, this improves
`ftbench' as follows on a Galaxy Nexus:

                           Before (us/op)   After (us/op)

  - loading Arial.ttf glyphs at 14 ppem [1]

      Load                   34.285          33.098

  - same operation with the light auto-hinter [2]

      Load                   31.317          29.590

  - same operation without hinting [3]

      Load                    6.143           5.376

  - loading Arial.ttf advances at 14 ppem [4]

      Load_Advances (normal) 34.216          33.016
      Load_Advances (fast)    0.176           0.176

  [1] ftbench -t 5 -p -s 14 -b a -f 0008 Arial.ttf
  [2] ftbench -t 5 -p -s 14 -b a -r 1 -f 0028 Arial.ttf
  [3] ftbench -t 5 -p -s 14 -b a -f 000a Arial.ttf
  [4] ftbench -t 5 -p -s 14 -b b -f 0008 Arial.ttf

* builds/unix/ftconfig.in, include/freetype/config/ftconfig.h
(FT_MULFIX_ASSEMBLER): Fix handling for ARMv7.
2013-07-16 13:19:32 +02:00
..
.gitignore Automake component `builds/unix/install-sh' is removed. 2011-05-16 12:47:25 +09:00
configure.raw * Version 2.5.0 released. 2013-06-19 10:23:36 +02:00
detect.mk Respect CONFIG_SHELL from the environment. 2013-03-21 19:58:40 +01:00
freetype-config.in Fix Savannah bug #38235. 2013-02-08 12:49:41 +01:00
freetype2.in Fix Savannah bug #38235. 2013-02-08 12:49:41 +01:00
freetype2.m4 Fix AC_CHECK_FT2. 2009-04-21 22:51:07 +02:00
ft-munmap.m4 Add license. 2005-06-04 23:04:30 +00:00
ft2unix.h Normalize quotation to `...'. 2006-03-24 12:46:49 +00:00
ftconfig.in Speed up ARMv7 support. 2013-07-16 13:19:32 +02:00
ftsystem.c Update more FT_Err_XXX macros using FT_ERR and FT_THROW; 2013-05-17 17:40:27 +02:00
install.mk * builds/unix/install.mk (install): Don't create `cache' directory. 2013-06-19 14:41:47 +02:00
mkinstalldirs * Version 2.3.10 released. 2009-10-06 12:00:43 +02:00
unix-cc.in Ignore the environmental setting of LIBTOOL. 2010-08-31 18:32:03 +09:00
unix-def.in Respect CONFIG_SHELL from the environment. 2013-03-21 19:58:40 +01:00
unix-dev.mk Implement new, simplified module selection. With GNU make it is now 2006-01-31 20:17:42 +00:00
unix-lcc.mk Completely revised FreeType's make management. 2003-06-09 04:46:30 +00:00
unix.mk Implement new, simplified module selection. With GNU make it is now 2006-01-31 20:17:42 +00:00
unixddef.mk * builds/*/*def.mk, builds/*/detect.mk (CAT): Define to either `cat' 2006-12-09 20:01:43 +00:00