aboutsummaryrefslogtreecommitdiffstats
path: root/riscV/Asmgen.v
diff options
context:
space:
mode:
authorLéo Gourdin <leo.gourdin@univ-grenoble-alpes.fr>2021-03-26 12:49:02 +0100
committerLéo Gourdin <leo.gourdin@univ-grenoble-alpes.fr>2021-03-26 12:49:02 +0100
commit95205e72ca536907fa89c7c884f0e22fc605063d (patch)
tree4179d9ad8d7abdc7f40e6d35c30836393a07d253 /riscV/Asmgen.v
parentca78138a8a81af44a36e339ad1ecf86ca3862e50 (diff)
downloadcompcert-kvx-95205e72ca536907fa89c7c884f0e22fc605063d.tar.gz
compcert-kvx-95205e72ca536907fa89c7c884f0e22fc605063d.zip
Adding more expansions, improving miniCSE, and tuning prepass
Diffstat (limited to 'riscV/Asmgen.v')
-rw-r--r--riscV/Asmgen.v24
1 files changed, 24 insertions, 0 deletions
diff --git a/riscV/Asmgen.v b/riscV/Asmgen.v
index 8b86ec5a..d4c6b73a 100644
--- a/riscV/Asmgen.v
+++ b/riscV/Asmgen.v
@@ -815,9 +815,21 @@ Definition transl_op
| OEluiw n, nil =>
do rd <- ireg_of res;
OK (Pluiw rd n :: k)
+ | OEaddiw n, a1 :: nil =>
+ do rd <- ireg_of res;
+ do rs <- ireg_of a1;
+ OK (Paddiw rd rs n :: k)
| OEaddiwr0 n, nil =>
do rd <- ireg_of res;
OK (Paddiw rd X0 n :: k)
+ | OEandiw n, a1 :: nil =>
+ do rd <- ireg_of res;
+ do rs <- ireg_of a1;
+ OK (Pandiw rd rs n :: k)
+ | OEoriw n, a1 :: nil =>
+ do rd <- ireg_of res;
+ do rs <- ireg_of a1;
+ OK (Poriw rd rs n :: k)
| OEseql optR0, a1 :: a2 :: nil =>
do rd <- ireg_of res;
do rs1 <- ireg_of a1;
@@ -863,9 +875,21 @@ Definition transl_op
| OEluil n, nil =>
do rd <- ireg_of res;
OK (Pluil rd n :: k)
+ | OEaddil n, a1 :: nil =>
+ do rd <- ireg_of res;
+ do rs <- ireg_of a1;
+ OK (Paddil rd rs n :: k)
| OEaddilr0 n, nil =>
do rd <- ireg_of res;
OK (Paddil rd X0 n :: k)
+ | OEandil n, a1 :: nil =>
+ do rd <- ireg_of res;
+ do rs <- ireg_of a1;
+ OK (Pandil rd rs n :: k)
+ | OEoril n, a1 :: nil =>
+ do rd <- ireg_of res;
+ do rs <- ireg_of a1;
+ OK (Poril rd rs n :: k)
| OEloadli n, nil =>
do rd <- ireg_of res;
OK (Ploadli rd n :: k)