blob: bea4a6c4ee84c20cd2097a4d256347583df16cc2 [file] [log] [blame]
Logana6f41a72011-02-27 15:24:00 +08001#ifndef BCC_RUNTIME_STUB_H
2#define BCC_RUNTIME_STUB_H
3
4#include "runtime/lib/int_lib.h"
5
6#if defined(__cplusplus)
7extern "C" {
8#endif
9
10extern di_int __absvdi2(di_int);
11extern si_int __absvsi2(si_int);
12extern di_int __addvdi3(di_int, di_int);
13extern si_int __addvsi3(si_int, si_int);
14#if !defined(__i386__) && !defined(__SSE2__)
15extern di_int __ashldi3(di_int, si_int);
16#endif
17#ifndef ANDROID
18extern di_int __ashrdi3(di_int, si_int);
19#endif
20extern si_int __clzdi2(di_int);
21extern si_int __clzsi2(si_int);
22extern si_int __cmpdi2(di_int, di_int);
23extern si_int __ctzdi2(di_int);
24extern si_int __ctzsi2(si_int);
25#ifndef ANDROID /* no complex.h */
26extern double _Complex __divdc3(double, double, double, double);
27#endif
Logana6f41a72011-02-27 15:24:00 +080028extern di_int __divdi3(di_int, di_int);
Stephen Hines33f8af82011-06-23 16:47:59 -070029extern si_int __divsi3(si_int, si_int);
Logana6f41a72011-02-27 15:24:00 +080030#ifndef ANDROID /* no complex.h */
31extern float _Complex __divsc3(float, float, float, float);
32#endif
33extern si_int __ffsdi2(di_int);
34extern di_int __fixdfdi(double);
35extern di_int __fixsfdi(float);
36extern du_int __fixunsdfdi(double);
37extern su_int __fixunsdfsi(double);
38extern du_int __fixunssfdi(float);
39extern su_int __fixunssfsi(float);
40#if !defined(__i386__)
41extern double __floatdidf(di_int);
42extern float __floatdisf(di_int);
43extern double __floatundidf(du_int);
44extern float __floatundisf(du_int);
Logana6f41a72011-02-27 15:24:00 +080045#endif
xqian6b4164722012-02-10 16:25:30 +080046extern di_int __moddi3(di_int, di_int);
Stephen Hines33f8af82011-06-23 16:47:59 -070047extern si_int __modsi3(si_int, si_int);
Logana6f41a72011-02-27 15:24:00 +080048#if !defined(__i386__) && !defined(__SSE2__)
49extern di_int __lshrdi3(di_int, si_int);
50#endif
51#ifndef ANDROID /* no complex.h */
52extern double _Complex __muldc3(double, double, double, double);
53#endif
54#if !defined(__i386__)
55extern di_int __muldi3(di_int, di_int);
56#endif
57#ifndef ANDROID /* no complex.h */
58extern float _Complex __mulsc3(float, float, float, float);
59#endif
60extern di_int __mulvdi3(di_int, di_int);
61extern si_int __mulvsi3(si_int, si_int);
62extern di_int __negdi2(di_int);
63extern di_int __negvdi2(di_int);
64extern si_int __negvsi2(si_int);
65extern si_int __paritydi2(di_int);
66extern si_int __paritysi2(si_int);
67extern si_int __popcountdi2(di_int);
68extern si_int __popcountsi2(si_int);
69extern double __powidf2(double, si_int);
70extern float __powisf2(float, si_int);
71extern di_int __subvdi3(di_int, di_int);
72extern si_int __subvsi3(si_int, si_int);
73extern si_int __ucmpdi2(du_int, du_int);
Logana6f41a72011-02-27 15:24:00 +080074extern du_int __udivdi3(du_int, du_int);
Logana6f41a72011-02-27 15:24:00 +080075extern su_int __udivsi3(su_int, su_int);
76extern du_int __udivmoddi4(du_int, du_int, du_int *);
Logana6f41a72011-02-27 15:24:00 +080077extern du_int __umoddi3(du_int, du_int);
Stephen Hines33f8af82011-06-23 16:47:59 -070078extern su_int __umodsi3(su_int, su_int);
Logana6f41a72011-02-27 15:24:00 +080079extern void __eprintf(char const *, char const *, char const *, char const *)
80 __attribute__((visibility("hidden")));
81
82#if defined(__cplusplus)
83}
84#endif
85
86#endif /* BCC_RUNTIME_STUB_H */