diff options
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) |