aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Monniaux <david.monniaux@univ-grenoble-alpes.fr>2019-04-10 18:18:29 +0200
committerDavid Monniaux <david.monniaux@univ-grenoble-alpes.fr>2019-04-10 18:18:29 +0200
commit20acec967714f7f024816992c53c6371d3b124af (patch)
tree05f9831a9a533f12d4924083737529505897bdda
parentbd7b90becac15d549912883d414ff37b14d4ad21 (diff)
parent049c3f1a34e5af8d9c59b54bd3270dca863f5366 (diff)
downloadcompcert-kvx-20acec967714f7f024816992c53c6371d3b124af.tar.gz
compcert-kvx-20acec967714f7f024816992c53c6371d3b124af.zip
Merge branch 'mppa-work' of gricad-gitlab.univ-grenoble-alpes.fr:sixcy/CompCert into mppa-work
-rw-r--r--mppa_k1c/Asmexpand.ml15
-rw-r--r--test/c/Makefile4
-rw-r--r--test/regression/Makefile3
-rw-r--r--test/regression/floats-basics.c2
-rw-r--r--test/regression/floats.c2
5 files changed, 12 insertions, 14 deletions
diff --git a/mppa_k1c/Asmexpand.ml b/mppa_k1c/Asmexpand.ml
index 6310b8ae..d12b9785 100644
--- a/mppa_k1c/Asmexpand.ml
+++ b/mppa_k1c/Asmexpand.ml
@@ -111,16 +111,13 @@ let fixup_call sg =
(* Handling of annotations *)
-let expand_annot_val kind txt targ args res = assert false
-(*emit (Pbuiltin (EF_annot(kind,txt,[targ]), args, BR_none));
+let expand_annot_val kind txt targ args res =
+ emit (Pbuiltin (EF_annot(kind,txt,[targ]), args, BR_none));
match args, res with
- | [BA(IR src)], BR(IR dst) ->
+ | [BA(Asmvliw.IR src)], BR(Asmvliw.IR dst) ->
if dst <> src then emit (Pmv (dst, src))
- | [BA(FR src)], BR(FR dst) ->
- if dst <> src then emit (Pfmv (dst, src))
| _, _ ->
raise (Error "ill-formed __builtin_annot_val")
-*)
(* Handling of memcpy *)
@@ -465,10 +462,10 @@ let expand_instruction instr =
| EF_malloc -> failwith "asmexpand: malloc"
| EF_free -> failwith "asmexpand: free"
| EF_debug _ -> failwith "asmexpand: debug"
- | EF_annot _ -> failwith "asmexpand: annot"
- | EF_annot_val _ -> failwith "asmexpand: annot_val"
+ | EF_annot _ -> emit instr
+ | EF_annot_val (kind, txt, targ) -> expand_annot_val kind txt targ args res
| EF_external _ -> failwith "asmexpand: external"
- | EF_inline_asm _ -> failwith "asmexpand: inline asm"
+ | EF_inline_asm _ -> emit instr
| EF_runtime _ -> failwith "asmexpand: runtime"
end
| _ ->
diff --git a/test/c/Makefile b/test/c/Makefile
index 63d1964a..46670ec6 100644
--- a/test/c/Makefile
+++ b/test/c/Makefile
@@ -13,8 +13,8 @@ TIME=xtime -o /dev/null -mintime 2.0 # Xavier's hack
PROGS=fib qsort fftw sha1 sha3 aes \
lists binarytrees fannkuch \
nsieve nsievebits vmach \
- chomp perlin siphash24
-# FIXME - Omitted tests: integr fft fftsp almabench knucleotide mandelbrot nbody spectral bisect
+ chomp perlin siphash24\
+ integr fft fftsp almabench knucleotide mandelbrot nbody spectral bisect
all: $(PROGS:%=%.compcert)
diff --git a/test/regression/Makefile b/test/regression/Makefile
index 760ee570..0bcbcc1f 100644
--- a/test/regression/Makefile
+++ b/test/regression/Makefile
@@ -22,8 +22,9 @@ TESTS=int32 int64 floats floats-basics \
TESTS_COMP=attribs1 bitfields1 bitfields2 bitfields3 bitfields4 \
bitfields5 bitfields6 bitfields7 bitfields8 \
- builtins-$(ARCH) packedstruct1 packedstruct2 alignas \
+ builtins-$(ARCH) alignas \
varargs1 varargs2 varargs3 sections alias aligned
+# FIXME K1C : packedstruct1 packedstruct2
# Can run, both in compiled mode and in interpreter mode,
# but produce processor-dependent results, so no reference output in Results
diff --git a/test/regression/floats-basics.c b/test/regression/floats-basics.c
index a7ba3623..a0225181 100644
--- a/test/regression/floats-basics.c
+++ b/test/regression/floats-basics.c
@@ -7,7 +7,7 @@
#if defined(__ppc__) || defined(__PPC__) || defined(__ARMEB__)
#define ARCH_BIG_ENDIAN
#elif defined(__i386__) || defined(__x86_64__) || defined(__ARMEL__) \
- || defined(__riscv)
+ || defined(__riscv) || defined(__K1C__)
#undef ARCH_BIG_ENDIAN
#else
#error "unknown endianness"
diff --git a/test/regression/floats.c b/test/regression/floats.c
index 84c4e062..55c9fd26 100644
--- a/test/regression/floats.c
+++ b/test/regression/floats.c
@@ -6,7 +6,7 @@
#if defined(__ppc__) || defined(__PPC__) || defined(__ARMEB__)
#define ARCH_BIG_ENDIAN
#elif defined(__i386__) || defined(__x86_64__) || defined(__ARMEL__) \
- || defined(__riscv)
+ || defined(__riscv) || defined(__K1C__)
#undef ARCH_BIG_ENDIAN
#else
#error "unknown endianness"