diff options
Diffstat (limited to 'sys/libkern')
-rw-r--r-- | sys/libkern/quad.h | 5 | ||||
-rw-r--r-- | sys/libkern/ucmpdi2.c | 12 |
2 files changed, 17 insertions, 0 deletions
diff --git a/sys/libkern/quad.h b/sys/libkern/quad.h index 5d4f844..4850d89 100644 --- a/sys/libkern/quad.h +++ b/sys/libkern/quad.h @@ -110,4 +110,9 @@ u_quad_t __udivdi3(u_quad_t a, u_quad_t b); u_quad_t __umoddi3(u_quad_t a, u_quad_t b); int __ucmpdi2(u_quad_t a, u_quad_t b); +/* ARM EABI support functions. */ +#ifdef __ARM_EABI__ +int __aeabi_ulcmp(unsigned long long, unsigned long long); +#endif + #endif /* !_LIBKERN_QUAD_H_ */ diff --git a/sys/libkern/ucmpdi2.c b/sys/libkern/ucmpdi2.c index 376d9c4..cd41c69 100644 --- a/sys/libkern/ucmpdi2.c +++ b/sys/libkern/ucmpdi2.c @@ -51,3 +51,15 @@ __ucmpdi2(a, b) return (aa.ul[H] < bb.ul[H] ? 0 : aa.ul[H] > bb.ul[H] ? 2 : aa.ul[L] < bb.ul[L] ? 0 : aa.ul[L] > bb.ul[L] ? 2 : 1); } + +#ifdef __ARM_EABI__ +/* + * Return -1, 0 or 1 as a <, =, > b respectively. + */ +int +__aeabi_ulcmp(unsigned long long a, unsigned long long b) +{ + return __ucmpdi2(a, b) - 1; +} +#endif + |