|
|
|
@ -4,7 +4,7 @@ |
|
|
|
|
/* */ |
|
|
|
|
/* UNIX-specific configuration file (specification only). */ |
|
|
|
|
/* */ |
|
|
|
|
/* Copyright 1996-2001, 2002, 2003, 2004, 2006, 2007, 2008 by */ |
|
|
|
|
/* Copyright 1996-2001, 2002, 2003, 2004, 2006, 2007, 2008, 2009 by */ |
|
|
|
|
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ |
|
|
|
|
/* */ |
|
|
|
|
/* This file is part of the FreeType project, and may only be used, */ |
|
|
|
@ -299,13 +299,13 @@ FT_BEGIN_HEADER |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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 */ |
|
|
|
|
"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; |
|
|
|
|