summaryrefslogtreecommitdiffstats
path: root/target/riscv/insn16-64.decode
diff options
context:
space:
mode:
authorRichard Henderson2019-04-01 05:11:53 +0200
committerPalmer Dabbelt2019-05-24 21:09:22 +0200
commit0e68e240a9bd3b44a91cd6012f0e2bf2a43b9fe2 (patch)
tree4a26706aa4737bbc396dd43dc5ca79b67f61df06 /target/riscv/insn16-64.decode
parenttarget/riscv: Use pattern groups in insn16.decode (diff)
downloadqemu-0e68e240a9bd3b44a91cd6012f0e2bf2a43b9fe2.tar.gz
qemu-0e68e240a9bd3b44a91cd6012f0e2bf2a43b9fe2.tar.xz
qemu-0e68e240a9bd3b44a91cd6012f0e2bf2a43b9fe2.zip
target/riscv: Split RVC32 and RVC64 insns into separate files
This eliminates all functions in insn_trans/trans_rvc.inc.c, so the entire file can be removed. Signed-off-by: Richard Henderson <richard.henderson@linaro.org> Reviewed-by: Palmer Dabbelt <palmer@sifive.com> Signed-off-by: Palmer Dabbelt <palmer@sifive.com>
Diffstat (limited to 'target/riscv/insn16-64.decode')
-rw-r--r--target/riscv/insn16-64.decode30
1 files changed, 30 insertions, 0 deletions
diff --git a/target/riscv/insn16-64.decode b/target/riscv/insn16-64.decode
new file mode 100644
index 0000000000..055859d29f
--- /dev/null
+++ b/target/riscv/insn16-64.decode
@@ -0,0 +1,30 @@
+#
+# RISC-V translation routines for the RVXI Base Integer Instruction Set.
+#
+# Copyright (c) 2018 Peer Adelt, peer.adelt@hni.uni-paderborn.de
+# Bastian Koppelmann, kbastian@mail.uni-paderborn.de
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms and conditions of the GNU General Public License,
+# version 2 or later, as published by the Free Software Foundation.
+#
+# This program is distributed in the hope it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+# more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program. If not, see <http://www.gnu.org/licenses/>.
+
+# *** RV64C Standard Extension (Quadrant 0) ***
+ld 011 ... ... .. ... 00 @cl_d
+sd 111 ... ... .. ... 00 @cs_d
+
+# *** RV64C Standard Extension (Quadrant 1) ***
+addiw 001 . ..... ..... 01 @ci
+subw 100 1 11 ... 00 ... 01 @cs_2
+addw 100 1 11 ... 01 ... 01 @cs_2
+
+# *** RV64C Standard Extension (Quadrant 2) ***
+ld 011 . ..... ..... 10 @c_ldsp
+sd 111 . ..... ..... 10 @c_sdsp