freetype/include/freetype
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
..
config Speed up ARMv7 support. 2013-07-16 13:19:32 +02:00
internal Fix Savannah bug #39266. 2013-06-18 09:35:34 +02:00
freetype.h [doc] Fix hyperlinks. 2013-06-25 07:48:38 +02:00
ftadvanc.h Documentation fix. 2013-06-04 07:14:55 +02:00
ftautoh.h Update CHANGES; tag some auto-hinter properties as still experimental. 2013-06-19 00:25:06 +02:00
ftbbox.h Document BBox and CBox computation problems for tricky fonts. 2011-04-13 00:29:41 +02:00
ftbdf.h * include/freetype/ftbdf.h (FT_Get_BDF_Property): Improve documentation. 2009-01-11 11:45:54 +00:00
ftbitmap.h Add support for color embedded bitmaps (eg. color emoji). 2013-05-29 11:36:18 +02:00
ftbzip2.h Improve bzip2 support. 2010-12-31 17:47:09 +01:00
ftcache.h Minor doc improvements. 2013-05-28 22:37:10 +02:00
ftcffdrv.h [cff] Add darkening limit to `darkening-parameters'. 2013-06-26 12:22:10 +02:00
ftchapters.h [truetype] Add `interpreter-version' property. 2013-05-17 13:51:07 +02:00
ftcid.h Typo. 2009-03-11 21:39:10 +00:00
fterrdef.h [cff] Add a new Type 2 interpreter and hinter. 2013-04-13 18:53:28 +02:00
fterrors.h New error management macros. 2013-03-14 15:49:49 +01:00
ftgasp.h Remove trailing spaces. 2012-01-17 02:00:24 +09:00
ftglyph.h Call it fixed-point. 2013-01-12 19:17:05 -05:00
ftgxval.h Improve navigation in API reference. 2008-06-26 19:56:51 +00:00
ftgzip.h Improve navigation in API reference. 2008-06-26 19:56:51 +00:00
ftimage.h Add support for color embedded bitmaps (eg. color emoji). 2013-05-29 11:36:18 +02:00
ftincrem.h Doc fix. 2010-02-13 07:53:37 +01:00
ftlcdfil.h * include/freetype/ftlcdfil.h: Add description of color filtering. 2013-03-29 19:35:39 +01:00
ftlist.h Fix various memory problems found by linuxtesting.org. 2010-05-22 20:03:41 +02:00
ftlzw.h Improve navigation in API reference. 2008-06-26 19:56:51 +00:00
ftmac.h Improve navigation in API reference. 2008-06-26 19:56:51 +00:00
ftmm.h Documentation fixes. 2009-01-19 08:35:45 +00:00
ftmodapi.h Documentation improvements. 2013-06-09 08:48:01 +02:00
ftmoderr.h * include/freetype/ftmoderr.h: Fix commit from 2013-03-11. 2013-03-15 08:16:25 +01:00
ftotval.h Improve navigation in API reference. 2008-06-26 19:56:51 +00:00
ftoutln.h Check parameters of `FT_Outline_New'. 2012-12-21 16:45:27 +01:00
ftpfr.h Documentation fixes. 2009-01-19 08:47:43 +00:00
ftrender.h Fix parameter handling of `FT_Set_Renderer'. 2010-12-13 20:17:26 +01:00
ftsizes.h Documentation fixes. 2009-01-19 08:35:45 +00:00
ftsnames.h Minor doc fixes. 2010-02-13 07:53:37 +01:00
ftstroke.h Call it fixed-point. 2013-01-12 19:17:05 -05:00
ftsynth.h * src/base/ftsynth.c (FT_GlyphSlot_Embolden): Improve spacing. 2012-06-15 06:33:46 +02:00
ftsystem.h Add some memory checks (mainly for debugging). 2010-06-26 09:24:08 +02:00
fttrigon.h [base] Make `FT_Hypot' really internal. 2013-01-24 09:12:56 +01:00
ftttdrv.h [truetype] Add `interpreter-version' property. 2013-05-17 13:51:07 +02:00
fttypes.h New error management macros. 2013-03-14 15:49:49 +01:00
ftwinfnt.h [doc] Fix hyperlinks. 2013-06-25 07:48:38 +02:00
ftxf86.h Document that FT_Get_X11_Font_Format() is a general call. 2009-08-28 09:08:00 +02:00
t1tables.h Typo. 2011-11-15 08:17:59 +01:00
ttnameid.h Improve documentation of Unicode IVS handling. 2012-11-04 17:25:29 +01:00
tttables.h Improve documentation of Unicode IVS handling. 2012-11-04 17:25:29 +01:00
tttags.h Add support for color embedded bitmaps (eg. color emoji). 2013-05-29 11:36:18 +02:00
ttunpat.h * src/tools/docmaker/sources.py (re_source_keywords): Add word 2006-05-12 08:00:13 +00:00