aboutsummaryrefslogtreecommitdiffstats
path: root/runtime
diff options
context:
space:
mode:
authorDavid Monniaux <david.monniaux@univ-grenoble-alpes.fr>2019-05-28 23:47:44 +0200
committerDavid Monniaux <david.monniaux@univ-grenoble-alpes.fr>2019-05-28 23:47:44 +0200
commit436658966209181c8f365cc8d1a69e8487852d17 (patch)
tree7543cad675c2d036f96c58306de5f396134933af /runtime
parenta789b94e986375a713263d7d7584ceaac01084f2 (diff)
downloadcompcert-kvx-436658966209181c8f365cc8d1a69e8487852d17.tar.gz
compcert-kvx-436658966209181c8f365cc8d1a69e8487852d17.zip
fixes for COS
Diffstat (limited to 'runtime')
-rw-r--r--runtime/include/ccomp_k1c_fixes.h2
-rw-r--r--runtime/mppa_k1c/i64_sdiv.c10
2 files changed, 12 insertions, 0 deletions
diff --git a/runtime/include/ccomp_k1c_fixes.h b/runtime/include/ccomp_k1c_fixes.h
index 9a2a26c1..1404b5fc 100644
--- a/runtime/include/ccomp_k1c_fixes.h
+++ b/runtime/include/ccomp_k1c_fixes.h
@@ -18,3 +18,5 @@ 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)
diff --git a/runtime/mppa_k1c/i64_sdiv.c b/runtime/mppa_k1c/i64_sdiv.c
index 9feab791..892aac07 100644
--- a/runtime/mppa_k1c/i64_sdiv.c
+++ b/runtime/mppa_k1c/i64_sdiv.c
@@ -10,7 +10,17 @@ int i32_sdiv (int a, int b)
return __divdi3 (a, b);
}
+#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) {