diff options
author | David Monniaux <david.monniaux@univ-grenoble-alpes.fr> | 2021-06-17 16:52:09 +0200 |
---|---|---|
committer | David Monniaux <david.monniaux@univ-grenoble-alpes.fr> | 2021-06-17 16:52:09 +0200 |
commit | 9759e94256fd09f4995418b67b7aedbcf84b4b10 (patch) | |
tree | ec7c2a0a8564f49278005bc6c2a863e9f7ae0c4a /kvx | |
parent | 4413c27d6c6a3d69df34955d9d453c38b32174c7 (diff) | |
parent | 04b2489d7c2a9b0d203b3d431517367a07bd6b30 (diff) | |
download | compcert-kvx-9759e94256fd09f4995418b67b7aedbcf84b4b10.tar.gz compcert-kvx-9759e94256fd09f4995418b67b7aedbcf84b4b10.zip |
Merge remote-tracking branch 'origin/kvx-work' into kvx-sched-w-reg-press
Diffstat (limited to 'kvx')
-rw-r--r-- | kvx/Asmvliw.v | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/kvx/Asmvliw.v b/kvx/Asmvliw.v index aa2e0885..304e45a8 100644 --- a/kvx/Asmvliw.v +++ b/kvx/Asmvliw.v @@ -313,7 +313,12 @@ Inductive cf_instruction : Type := . (** *** Loads *) -Definition concrete_default_notrap_load_value (chunk : memory_chunk) := +Definition concrete_default_notrap_load_value (chunk : memory_chunk) := Vundef. + +(* What follows was the original spec, but is subtly incorrect. + Our definition of the assembly-level memory model is already an abstraction of the real world. + In particular, we consider that a load is incorrect when it points outside of CompCert's visible memory, whereas this memory could be correct at the assembly level. + This means that CompCert would believe an incorrect load would yield 0 whereas it would yield another value. match chunk with | Mint8signed | Mint8unsigned | Mint16signed | Mint16unsigned | Mint32 => Vint Int.zero @@ -321,7 +326,7 @@ Definition concrete_default_notrap_load_value (chunk : memory_chunk) := | Many32 | Many64 => Vundef | Mfloat32 => Vsingle Float32.zero | Mfloat64 => Vfloat Float.zero - end. + end. *) Inductive load_name : Type := | Plb (**r load byte *) |