aboutsummaryrefslogtreecommitdiffstats
path: root/mppa_k1c/Asmblockgen.v
diff options
context:
space:
mode:
authorDavid Monniaux <david.monniaux@univ-grenoble-alpes.fr>2019-04-27 22:50:24 +0200
committerDavid Monniaux <david.monniaux@univ-grenoble-alpes.fr>2019-04-27 22:50:24 +0200
commitc647ca1fa4edc09bea86d5088c2956954269ffa7 (patch)
tree8afc142afed34d2dcd74a36b344ef742906cb0f4 /mppa_k1c/Asmblockgen.v
parent7331395825deb5eb4478dffb070dd7d673e657cc (diff)
downloadcompcert-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.v12
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.