From 31735bf3084f38c7b230526302ee97b2ea48bc9d Mon Sep 17 00:00:00 2001 From: Andrew Turner Date: Wed, 23 Jan 2013 09:18:18 +0000 Subject: [PATCH] Add __aeabi_ulcmp to allow building of the LINT kernel. --- sys/libkern/quad.h | 5 +++++ sys/libkern/ucmpdi2.c | 12 ++++++++++++ 2 files changed, 17 insertions(+) diff --git a/sys/libkern/quad.h b/sys/libkern/quad.h index 5d4f844ce671..4850d89cb7cb 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 376d9c4e6cbd..cd41c697014f 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 +