aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Monniaux <david.monniaux@univ-grenoble-alpes.fr>2019-06-03 14:59:53 +0200
committerDavid Monniaux <david.monniaux@univ-grenoble-alpes.fr>2019-06-03 14:59:53 +0200
commit36e64ee96ded0c94c83da6fb12202c276e66ba45 (patch)
tree8fdb667bbd230a723e32034f0aaf0a73a6a10ff5
parent8528ade84279dc8fa399cad8f0b8467ed454cbf7 (diff)
downloadcompcert-kvx-3.5_k1c_1.2.tar.gz
compcert-kvx-3.5_k1c_1.2.zip
use all same exact include filesv3.5_k1c_1.2
-rw-r--r--runtime/mppa_k1c/i64_sdiv.c22
-rw-r--r--test/monniaux/cycles.h19
2 files changed, 15 insertions, 26 deletions
diff --git a/runtime/mppa_k1c/i64_sdiv.c b/runtime/mppa_k1c/i64_sdiv.c
index 892aac07..60269cae 100644
--- a/runtime/mppa_k1c/i64_sdiv.c
+++ b/runtime/mppa_k1c/i64_sdiv.c
@@ -10,27 +10,19 @@ 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
+#ifdef OUR_OWN_FE_EXCEPT
+#include <../../k1-cos/include/hal/cos_registers.h>
/* DM FIXME this is for floating point */
int fetestexcept(int excepts) {
- int mask = (K1_SFR_CS_IO_MASK | K1_SFR_CS_DZ_MASK | K1_SFR_CS_OV_MASK | K1_SFR_CS_UN_MASK | K1_SFR_CS_IN_MASK) & excepts;
- unsigned long long cs = __builtin_k1_get(K1_SFR_CS);
+ int mask = (COS_SFR_CS_IO_MASK | COS_SFR_CS_DZ_MASK | COS_SFR_CS_OV_MASK | COS_SFR_CS_UN_MASK | COS_SFR_CS_IN_MASK) & excepts;
+ unsigned long long cs = __builtin_k1_get(COS_SFR_CS);
return cs & mask;
}
int feclearexcept(int excepts) {
- int mask = (K1_SFR_CS_IO_MASK | K1_SFR_CS_DZ_MASK | K1_SFR_CS_OV_MASK | K1_SFR_CS_UN_MASK | K1_SFR_CS_IN_MASK) & excepts;
- __builtin_k1_wfxl(K1_SFR_CS, mask);
+ int mask = (COS_SFR_CS_IO_MASK | COS_SFR_CS_DZ_MASK | COS_SFR_CS_OV_MASK | COS_SFR_CS_UN_MASK | COS_SFR_CS_IN_MASK) & excepts;
+ __builtin_k1_wfxl(COS_SFR_CS, mask);
return 0;
}
+#endif
diff --git a/test/monniaux/cycles.h b/test/monniaux/cycles.h
index 45c900e3..e4f098cd 100644
--- a/test/monniaux/cycles.h
+++ b/test/monniaux/cycles.h
@@ -1,28 +1,25 @@
typedef unsigned long cycle_t;
#ifdef __K1C__
-#ifdef __K1C_COS__
-#include <hal/cos_registers.h>
-#define K1_SFR_PMC COS_SFR_PMC
-#define K1_SFR_PM0 COS_SFR_PM0
-#else
-#include <mppa_bare_runtime/k1c/registers.h>
-#endif
+#include <../../k1-cos/include/hal/cos_registers.h>
+
static inline void cycle_count_config(void)
{
/* config pmc for cycle count */
- cycle_t pmc_value = __builtin_k1_get(K1_SFR_PMC);
+ cycle_t pmc_value = __builtin_k1_get(COS_SFR_PMC);
pmc_value &= ~(0xfULL);
- __builtin_k1_set(K1_SFR_PMC, pmc_value);
+ __builtin_k1_set(COS_SFR_PMC, pmc_value);
}
static inline cycle_t get_cycle(void)
{
- return __builtin_k1_get(K1_SFR_PM0);
+ return __builtin_k1_get(COS_SFR_PM0);
}
-#else
+
+#else // not K1C
static inline void cycle_count_config(void) { }
+
#ifdef __x86_64__
#include <x86intrin.h>
static inline cycle_t get_cycle(void) { return __rdtsc(); }