From e1da7c1c79ce2286f5b93cc3f336c9e10b195f0b Mon Sep 17 00:00:00 2001 From: David Monniaux Date: Wed, 20 Mar 2019 11:29:18 +0100 Subject: les divisions entieres passent --- runtime/mppa_k1c/i64_smod.c | 15 +++++++++++++++ runtime/mppa_k1c/i64_udiv.c | 14 ++++++++++++++ runtime/mppa_k1c/i64_umod.c | 14 ++++++++++++++ 3 files changed, 43 insertions(+) (limited to 'runtime') diff --git a/runtime/mppa_k1c/i64_smod.c b/runtime/mppa_k1c/i64_smod.c index 010edd85..26ffb39b 100644 --- a/runtime/mppa_k1c/i64_smod.c +++ b/runtime/mppa_k1c/i64_smod.c @@ -1,3 +1,4 @@ +#if COMPLIQUE unsigned long long udivmoddi4(unsigned long long num, unsigned long long den, int modwanted); @@ -23,3 +24,17 @@ i64_smod (long long a, long long b) return res; } + +#else +extern long __moddi3 (long a, long b); + +long i64_smod (long a, long b) +{ + return __moddi3 (a, b); +} + +int i32_smod (int a, int b) +{ + return __moddi3 (a, b); +} +#endif diff --git a/runtime/mppa_k1c/i64_udiv.c b/runtime/mppa_k1c/i64_udiv.c index 2a8dcbf5..ce14464d 100644 --- a/runtime/mppa_k1c/i64_udiv.c +++ b/runtime/mppa_k1c/i64_udiv.c @@ -1,3 +1,4 @@ +#ifdef COMPLIQUE unsigned long long udivmoddi4(unsigned long long num, unsigned long long den, int modwanted); @@ -6,3 +7,16 @@ unsigned long long i64_udiv (unsigned long long a, unsigned long long b) return udivmoddi4 (a, b, 0); } +#else +extern long __udivdi3 (long a, long b); + +unsigned long i64_udiv (unsigned long a, unsigned long b) +{ + return __udivdi3 (a, b); +} + +unsigned int i32_udiv (unsigned int a, unsigned int b) +{ + return __udivdi3 (a, b); +} +#endif diff --git a/runtime/mppa_k1c/i64_umod.c b/runtime/mppa_k1c/i64_umod.c index fc0872bb..f6fed4c4 100644 --- a/runtime/mppa_k1c/i64_umod.c +++ b/runtime/mppa_k1c/i64_umod.c @@ -1,3 +1,4 @@ +#ifdef COMPLIQUE unsigned long long udivmoddi4(unsigned long long num, unsigned long long den, int modwanted); @@ -7,3 +8,16 @@ i64_umod (unsigned long long a, unsigned long long b) return udivmoddi4 (a, b, 1); } +#else +extern unsigned long __umoddi3 (unsigned long a, unsigned long b); + +unsigned long i64_umod (unsigned long a, unsigned long b) +{ + return __umoddi3 (a, b); +} + +unsigned int i32_umod (unsigned int a, unsigned int b) +{ + return __umoddi3 (a, b); +} +#endif -- cgit