diff options
author | Cyril SIX <cyril.six@kalray.eu> | 2019-10-03 16:44:29 +0200 |
---|---|---|
committer | Cyril SIX <cyril.six@kalray.eu> | 2019-10-03 16:44:29 +0200 |
commit | 6e159e4c2e0978116522f3b6f42a7cbe6b204fe4 (patch) | |
tree | c6169733d41c89c5c1bbe397ffbf9d0791965f7f /backend/Duplicate.v | |
parent | 6f05c86e614797b76d92bc3dbbd4c0ece683168e (diff) | |
download | compcert-kvx-6e159e4c2e0978116522f3b6f42a7cbe6b204fe4.tar.gz compcert-kvx-6e159e4c2e0978116522f3b6f42a7cbe6b204fe4.zip |
Iload and Istore
Diffstat (limited to 'backend/Duplicate.v')
-rw-r--r-- | backend/Duplicate.v | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/backend/Duplicate.v b/backend/Duplicate.v index a96d0826..465b1538 100644 --- a/backend/Duplicate.v +++ b/backend/Duplicate.v @@ -60,6 +60,30 @@ Definition verify_match_inst revmap inst tinst := else Error (msg "Different lr in Iop") else Error(msg "Different operations in Iop") | _ => Error(msg "verify_match_inst Inop") end + | Iload m a lr r n => match tinst with + | Iload m' a' lr' r' n' => + do u <- verify_is_copy revmap n n'; + if (chunk_eq m m') then + if (eq_addressing a a') then + if (list_eq_dec Pos.eq_dec lr lr') then + if (Pos.eq_dec r r') then OK tt + else Error (msg "Different r in Iload") + else Error (msg "Different lr in Iload") + else Error (msg "Different addressing in Iload") + else Error (msg "Different mchunk in Iload") + | _ => Error (msg "verify_match_inst Iload") end + | Istore m a lr r n => match tinst with + | Istore m' a' lr' r' n' => + do u <- verify_is_copy revmap n n'; + if (chunk_eq m m') then + if (eq_addressing a a') then + if (list_eq_dec Pos.eq_dec lr lr') then + if (Pos.eq_dec r r') then OK tt + else Error (msg "Different r in Istore") + else Error (msg "Different lr in Istore") + else Error (msg "Different addressing in Istore") + else Error (msg "Different mchunk in Istore") + | _ => Error (msg "verify_match_inst Istore") end | _ => Error(msg "not implemented") end. |