diff options
author | Cyril SIX <cyril.six@kalray.eu> | 2021-04-13 15:04:34 +0200 |
---|---|---|
committer | Cyril SIX <cyril.six@kalray.eu> | 2021-04-13 15:04:34 +0200 |
commit | d53cc13b6e47843ebaf4b23c8b03dcef34f331f1 (patch) | |
tree | 9cae52930879af39cd3443cf48874df8a0a5e654 /cparser | |
parent | 5a846f2aeb5eb659c1b510e3fb27e49677cb8680 (diff) | |
download | compcert-kvx-d53cc13b6e47843ebaf4b23c8b03dcef34f331f1.tar.gz compcert-kvx-d53cc13b6e47843ebaf4b23c8b03dcef34f331f1.zip |
Adding distinction between kvx-cos and kvx-mbr (for trapping loads)
Diffstat (limited to 'cparser')
-rw-r--r-- | cparser/Machine.ml | 12 | ||||
-rw-r--r-- | cparser/Machine.mli | 3 |
2 files changed, 12 insertions, 3 deletions
diff --git a/cparser/Machine.ml b/cparser/Machine.ml index 73b71ea0..4f5a93d2 100644 --- a/cparser/Machine.ml +++ b/cparser/Machine.ml @@ -242,7 +242,7 @@ let rv64 = struct_passing_style = SP_ref_callee; (* Wrong *) struct_return_style = SR_ref } (* to check *) -let kvx = +let kvxbase = { name = "kvx"; char_signed = true; wchar_signed = true; @@ -275,7 +275,15 @@ let kvx = supports_unaligned_accesses = true; struct_passing_style = SP_value32_ref_callee; struct_return_style = SR_int1to4; - has_non_trapping_loads = true; + has_non_trapping_loads = false; +} + +let kvxcos = + { kvxbase with has_non_trapping_loads = false; +} + +let kvxmbr = + { kvxbase with has_non_trapping_loads = true; } let aarch64 = diff --git a/cparser/Machine.mli b/cparser/Machine.mli index 54436758..07b55832 100644 --- a/cparser/Machine.mli +++ b/cparser/Machine.mli @@ -88,7 +88,8 @@ val arm_littleendian : t val arm_bigendian : t val rv32 : t val rv64 : t -val kvx : t +val kvxmbr : t +val kvxcos : t val aarch64 : t val gcc_extensions : t -> t |