Greg Ungerer | a697dc9 | 2011-03-29 15:06:37 +1000 | [diff] [blame] | 1 | #include <linux/module.h> |
| 2 | |
| 3 | asmlinkage long long __ashldi3 (long long, int); |
| 4 | asmlinkage long long __ashrdi3 (long long, int); |
| 5 | asmlinkage long long __lshrdi3 (long long, int); |
| 6 | asmlinkage long long __muldi3 (long long, long long); |
| 7 | |
| 8 | /* The following are special because they're not called |
| 9 | explicitly (the C compiler generates them). Fortunately, |
| 10 | their interface isn't gonna change any time soon now, so |
| 11 | it's OK to leave it out of version control. */ |
| 12 | EXPORT_SYMBOL(__ashldi3); |
| 13 | EXPORT_SYMBOL(__ashrdi3); |
| 14 | EXPORT_SYMBOL(__lshrdi3); |
| 15 | EXPORT_SYMBOL(__muldi3); |
| 16 | |
Greg Ungerer | 84f3fb7 | 2011-11-11 15:13:08 +1000 | [diff] [blame] | 17 | #if defined(CONFIG_CPU_HAS_NO_MULDIV64) |
Greg Ungerer | a697dc9 | 2011-03-29 15:06:37 +1000 | [diff] [blame] | 18 | /* |
| 19 | * Simpler 68k and ColdFire parts also need a few other gcc functions. |
| 20 | */ |
| 21 | extern long long __divsi3(long long, long long); |
| 22 | extern long long __modsi3(long long, long long); |
| 23 | extern long long __mulsi3(long long, long long); |
| 24 | extern long long __udivsi3(long long, long long); |
| 25 | extern long long __umodsi3(long long, long long); |
| 26 | |
| 27 | EXPORT_SYMBOL(__divsi3); |
| 28 | EXPORT_SYMBOL(__modsi3); |
| 29 | EXPORT_SYMBOL(__mulsi3); |
| 30 | EXPORT_SYMBOL(__udivsi3); |
| 31 | EXPORT_SYMBOL(__umodsi3); |
Greg Ungerer | 66d857b | 2011-03-22 13:39:27 +1000 | [diff] [blame] | 32 | #endif |