aboutsummaryrefslogtreecommitdiffstats
path: root/runtime
diff options
context:
space:
mode:
authorDavid Monniaux <david.monniaux@univ-grenoble-alpes.fr>2019-05-29 09:47:01 +0200
committerDavid Monniaux <david.monniaux@univ-grenoble-alpes.fr>2019-05-29 09:47:01 +0200
commitefd88a7e6fc5e7eacff6cb76830b27f334b46daa (patch)
tree512494eb551bf03dfa383b0cecc4e33756365e1e /runtime
parent6fc8d55b1bd8a14b9c3b530e9ee24beee9a8afde (diff)
parent83cc11add90eea576a798bacf821a70a28d4d9cc (diff)
downloadcompcert-kvx-efd88a7e6fc5e7eacff6cb76830b27f334b46daa.tar.gz
compcert-kvx-efd88a7e6fc5e7eacff6cb76830b27f334b46daa.zip
Merge remote-tracking branch 'origin/mppa-cos' into mppa-fast-div
Diffstat (limited to 'runtime')
-rw-r--r--runtime/include/ccomp_k1c_fixes.h4
-rw-r--r--runtime/mppa_k1c/i64_sdiv.c10
2 files changed, 14 insertions, 0 deletions
diff --git a/runtime/include/ccomp_k1c_fixes.h b/runtime/include/ccomp_k1c_fixes.h
index 9a2a26c1..5c543d8f 100644
--- a/runtime/include/ccomp_k1c_fixes.h
+++ b/runtime/include/ccomp_k1c_fixes.h
@@ -18,3 +18,7 @@ extern __int128 __compcert_acswapd(void *address, unsigned long long new_value,
#define __builtin_k1_acswapw __compcert_acswapw
extern __int128 __compcert_acswapw(void *address, unsigned long long new_value, unsigned long long old_value);
#endif
+
+#define __builtin_expect(x, y) (x)
+#define __builtin_ctz(x) __builtin_k1_ctzw(x)
+#define __builtin_clz(x) __builtin_k1_clzw(x)
diff --git a/runtime/mppa_k1c/i64_sdiv.c b/runtime/mppa_k1c/i64_sdiv.c
index 18a2c46c..d1d268c4 100644
--- a/runtime/mppa_k1c/i64_sdiv.c
+++ b/runtime/mppa_k1c/i64_sdiv.c
@@ -1,4 +1,14 @@
+#ifdef __K1C_COS__
+#include <hal/cos_registers.h>
+#define K1_SFR_CS_IO_MASK COS_SFR_CS_IO_MASK
+#define K1_SFR_CS_DZ_MASK COS_SFR_CS_DZ_MASK
+#define K1_SFR_CS_OV_MASK COS_SFR_CS_OV_MASK
+#define K1_SFR_CS_UN_MASK COS_SFR_CS_UN_MASK
+#define K1_SFR_CS_IN_MASK COS_SFR_CS_IN_MASK
+#define K1_SFR_CS COS_SFR_CS
+#else
#include <mppa_bare_runtime/k1c/registers.h>
+#endif
/* DM FIXME this is for floating point */
int fetestexcept(int excepts) {