diff options
author | David Monniaux <david.monniaux@univ-grenoble-alpes.fr> | 2019-04-27 22:50:24 +0200 |
---|---|---|
committer | David Monniaux <david.monniaux@univ-grenoble-alpes.fr> | 2019-04-27 22:50:24 +0200 |
commit | c647ca1fa4edc09bea86d5088c2956954269ffa7 (patch) | |
tree | 8afc142afed34d2dcd74a36b344ef742906cb0f4 /mppa_k1c/Asmblockgen.v | |
parent | 7331395825deb5eb4478dffb070dd7d673e657cc (diff) | |
download | compcert-kvx-c647ca1fa4edc09bea86d5088c2956954269ffa7.tar.gz compcert-kvx-c647ca1fa4edc09bea86d5088c2956954269ffa7.zip |
instruction translation for bitfield insertion
Diffstat (limited to 'mppa_k1c/Asmblockgen.v')
-rw-r--r-- | mppa_k1c/Asmblockgen.v | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/mppa_k1c/Asmblockgen.v b/mppa_k1c/Asmblockgen.v index d6e168bb..80210f7f 100644 --- a/mppa_k1c/Asmblockgen.v +++ b/mppa_k1c/Asmblockgen.v @@ -793,6 +793,18 @@ Definition transl_op do rd <- ireg_of res; do rs <- ireg_of a1; OK (Pextfsl stop start rd rs ::i k) + | Oinsf stop start, a0 :: a1 :: nil => + assertion (ExtValues.is_bitfield stop start); + assertion (mreg_eq a0 res); + do rd <- ireg_of res; do rs <- ireg_of a1; + OK (Pinsf stop start rd rs ::i k) + + | Oinsfl stop start, a0 :: a1 :: nil => + assertion (ExtValues.is_bitfieldl stop start); + assertion (mreg_eq a0 res); + do rd <- ireg_of res; do rs <- ireg_of a1; + OK (Pinsfl stop start rd rs ::i k) + | _, _ => Error(msg "Asmgenblock.transl_op") end. |