aboutsummaryrefslogtreecommitdiffstats
path: root/runtime
diff options
context:
space:
mode:
authorDavid Monniaux <david.monniaux@univ-grenoble-alpes.fr>2019-03-20 11:29:18 +0100
committerDavid Monniaux <david.monniaux@univ-grenoble-alpes.fr>2019-03-20 11:29:18 +0100
commite1da7c1c79ce2286f5b93cc3f336c9e10b195f0b (patch)
tree9a56ade665a7a5c54e0f038f907dd46a6e57facf /runtime
parentbf0b2478a7cb6724cfce41695b552db47eacbff2 (diff)
downloadcompcert-kvx-e1da7c1c79ce2286f5b93cc3f336c9e10b195f0b.tar.gz
compcert-kvx-e1da7c1c79ce2286f5b93cc3f336c9e10b195f0b.zip
les divisions entieres passent
Diffstat (limited to 'runtime')
-rw-r--r--runtime/mppa_k1c/i64_smod.c15
-rw-r--r--runtime/mppa_k1c/i64_udiv.c14
-rw-r--r--runtime/mppa_k1c/i64_umod.c14
3 files changed, 43 insertions, 0 deletions
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