diff options
author | suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> | 2011-01-15 21:53:32 +0900 |
---|---|---|
committer | suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> | 2011-01-15 21:53:32 +0900 |
commit | 17f54bc66c514f9fd9aad7952d0f768b30ef1466 (patch) | |
tree | 1fa5048a7cdea3fe3bc19bcd95e7e108a2ba2871 | |
parent | 21bdca7907cb08b3afebe8af808af45456001d3b (diff) |
Fix ARM assembly code in include/freetype/config/ftconfig.h.
* include/freetype/config/ftconfig.h (FT_MulFix_arm):
Copy the maintained code from builds/unix/ftconfig.in.
Old GNU binutils could not accept the reduced syntax
`orr %0, %2, lsl #16'. Un-omitted syntax like RVCT,
`orr %0, %0, %2, lsl #16' is better. Reported by
Johnson Y. Yan. The bug report by Qt developers is
considered too.
http://bugreports.qt.nokia.com/browse/QTBUG-6521
-rw-r--r-- | ChangeLog | 14 | ||||
-rw-r--r-- | include/freetype/config/ftconfig.h | 16 |
2 files changed, 22 insertions, 8 deletions
@@ -1,3 +1,17 @@ +2011-01-15 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> + + Fix ARM assembly code in include/freetype/config/ftconfig.h. + + * include/freetype/config/ftconfig.h (FT_MulFix_arm): + Copy the maintained code from builds/unix/ftconfig.in. + Old GNU binutils could not accept the reduced syntax + `orr %0, %2, lsl #16'. Un-omitted syntax like RVCT, + `orr %0, %0, %2, lsl #16' is better. Reported by + Johnson Y. Yan. The bug report by Qt developers is + considered too. + + http://bugreports.qt.nokia.com/browse/QTBUG-6521 + 2011-01-15 Werner Lemberg <wl@gnu.org> [raster] Make bbox handling the same as with Microsoft's rasterizer. diff --git a/include/freetype/config/ftconfig.h b/include/freetype/config/ftconfig.h index cbe30f26..bcbcd6f9 100644 --- a/include/freetype/config/ftconfig.h +++ b/include/freetype/config/ftconfig.h @@ -348,14 +348,14 @@ FT_BEGIN_HEADER register FT_Int32 t, t2; - asm __volatile__ ( - "smull %1, %2, %4, %3\n\t" /* (lo=%1,hi=%2) = a*b */ - "mov %0, %2, asr #31\n\t" /* %0 = (hi >> 31) */ - "add %0, %0, #0x8000\n\t" /* %0 += 0x8000 */ - "adds %1, %1, %0\n\t" /* %1 += %0 */ - "adc %2, %2, #0\n\t" /* %2 += carry */ - "mov %0, %1, lsr #16\n\t" /* %0 = %1 >> 16 */ - "orr %0, %2, lsl #16\n\t" /* %0 |= %2 << 16 */ + __asm__ __volatile__ ( + "smull %1, %2, %4, %3\n\t" /* (lo=%1,hi=%2) = a*b */ + "mov %0, %2, asr #31\n\t" /* %0 = (hi >> 31) */ + "add %0, %0, #0x8000\n\t" /* %0 += 0x8000 */ + "adds %1, %1, %0\n\t" /* %1 += %0 */ + "adc %2, %2, #0\n\t" /* %2 += carry */ + "mov %0, %1, lsr #16\n\t" /* %0 = %1 >> 16 */ + "orr %0, %0, %2, lsl #16\n\t" /* %0 |= %2 << 16 */ : "=r"(a), "=&r"(t2), "=&r"(t) : "r"(a), "r"(b) ); return a; |