1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
|
/* *************************************************************/
/* */
/* The Compcert verified compiler */
/* */
/* Sylvain Boulmé Grenoble-INP, VERIMAG */
/* David Monniaux CNRS, VERIMAG */
/* Cyril Six Kalray */
/* */
/* Copyright Kalray. Copyright VERIMAG. All rights reserved. */
/* This file is distributed under the terms of the INRIA */
/* Non-Commercial License Agreement. */
/* */
/* *************************************************************/
#ifndef __CCOMP_KIC_FIXES_H
#define __CCOMP_KIC_FIXES_H
#if ! (defined(__COMPCERT__) && defined (__KVX__))
#error This header is solely for CompCert on KVX
#endif
#undef __GNUC__
#define __thread _Thread_local
struct __int128_ccomp { long __int128_ccomp_low; long __int128_ccomp_high; };
#define __int128 struct __int128_ccomp
#define __builtin_kvx_acswapd __compcert_acswapd
extern __int128 __compcert_acswapd(void *address, unsigned long long new_value, unsigned long long old_value);
#define __builtin_kvx_acswapw __compcert_acswapw
extern __int128 __compcert_acswapw(void *address, unsigned long long new_value, unsigned long long old_value);
#define __builtin_kvx_aladdd __compcert_aladdd
extern long long __compcert_aladdd(void *address, unsigned long long incr);
#define __builtin_kvx_aladdw __compcert_aladdw
extern int __compcert_aladdw(void *address, unsigned int incr);
#define __builtin_kvx_afaddd __compcert_afaddd
extern long long __compcert_afaddd(void *address, unsigned long long incr);
#define __builtin_kvx_afaddw __compcert_afaddw
extern int __compcert_afaddw(void *address, unsigned int incr);
#define __builtin_kvx_ld __compcert_ld
extern int __compcert_ld(void *address, const char *str, const int b);
#define __builtin_kvx_lwz __compcert_lwz
extern int __compcert_lwz(void *address, const char *str, const int b);
/* #define __builtin_expect(x, y) (x) */
#define __builtin_ctz(x) __builtin_kvx_ctzw(x)
#define __builtin_clz(x) __builtin_kvx_clzw(x)
#endif
|