diff options
author | Léo Gourdin <leo.gourdin@univ-grenoble-alpes.fr> | 2021-03-26 12:49:02 +0100 |
---|---|---|
committer | Léo Gourdin <leo.gourdin@univ-grenoble-alpes.fr> | 2021-03-26 12:49:02 +0100 |
commit | 95205e72ca536907fa89c7c884f0e22fc605063d (patch) | |
tree | 4179d9ad8d7abdc7f40e6d35c30836393a07d253 /riscV/Asmgen.v | |
parent | ca78138a8a81af44a36e339ad1ecf86ca3862e50 (diff) | |
download | compcert-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.v | 24 |
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) |