xref: /openbmc/qemu/target/openrisc/insns.decode (revision 8816f70b)
17de9729fSRichard Henderson#
27de9729fSRichard Henderson# OpenRISC instruction decode definitions.
37de9729fSRichard Henderson#
47de9729fSRichard Henderson# Copyright (c) 2018 Richard Henderson <rth@twiddle.net>
57de9729fSRichard Henderson#
67de9729fSRichard Henderson# This library is free software; you can redistribute it and/or
77de9729fSRichard Henderson# modify it under the terms of the GNU Lesser General Public
87de9729fSRichard Henderson# License as published by the Free Software Foundation; either
97de9729fSRichard Henderson# version 2 of the License, or (at your option) any later version.
107de9729fSRichard Henderson#
117de9729fSRichard Henderson# This library is distributed in the hope that it will be useful,
127de9729fSRichard Henderson# but WITHOUT ANY WARRANTY; without even the implied warranty of
137de9729fSRichard Henderson# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
147de9729fSRichard Henderson# Lesser General Public License for more details.
157de9729fSRichard Henderson#
167de9729fSRichard Henderson# You should have received a copy of the GNU Lesser General Public
177de9729fSRichard Henderson# License along with this library; if not, see <http://www.gnu.org/licenses/>.
187de9729fSRichard Henderson#
197de9729fSRichard Henderson
207de9729fSRichard Henderson####
217de9729fSRichard Henderson# System Instructions
227de9729fSRichard Henderson####
237de9729fSRichard Henderson
247de9729fSRichard Hendersonl_sys           001000 0000000000 k:16
257de9729fSRichard Hendersonl_trap          001000 0100000000 k:16
267de9729fSRichard Hendersonl_msync         001000 1000000000 00000000 00000000
277de9729fSRichard Hendersonl_psync         001000 1010000000 00000000 00000000
287de9729fSRichard Hendersonl_csync         001000 1100000000 00000000 00000000
29136e13aeSRichard Henderson
30*8816f70bSRichard Hendersonl_rfe		001001 ----- ----- -------- --------
31*8816f70bSRichard Henderson
32136e13aeSRichard Henderson####
33136e13aeSRichard Henderson# Branch Instructions
34136e13aeSRichard Henderson####
35136e13aeSRichard Henderson
36136e13aeSRichard Hendersonl_j             000000 n:s26
37136e13aeSRichard Hendersonl_jal           000001 n:s26
38136e13aeSRichard Hendersonl_bnf           000011 n:s26
39136e13aeSRichard Hendersonl_bf            000100 n:s26
40136e13aeSRichard Henderson
41136e13aeSRichard Hendersonl_jr            010001 ---------- b:5 -----------
42136e13aeSRichard Hendersonl_jalr          010010 ---------- b:5 -----------
43d80bff19SRichard Henderson
44d80bff19SRichard Henderson####
45d80bff19SRichard Henderson# Memory Instructions
46d80bff19SRichard Henderson####
47d80bff19SRichard Henderson
48d80bff19SRichard Henderson&load           d a i
49d80bff19SRichard Henderson@load           ...... d:5 a:5 i:s16                    &load
50d80bff19SRichard Henderson
51d80bff19SRichard Henderson%store_i        21:s5 0:11
52d80bff19SRichard Henderson&store          a b i
53d80bff19SRichard Henderson@store          ...... ..... a:5 b:5 ...........        &store i=%store_i
54d80bff19SRichard Henderson
55d80bff19SRichard Hendersonl_lwa           011011 ..... ..... ........ ........    @load
56d80bff19SRichard Hendersonl_lwz           100001 ..... ..... ........ ........    @load
57d80bff19SRichard Hendersonl_lws           100010 ..... ..... ........ ........    @load
58d80bff19SRichard Hendersonl_lbz           100011 ..... ..... ........ ........    @load
59d80bff19SRichard Hendersonl_lbs           100100 ..... ..... ........ ........    @load
60d80bff19SRichard Hendersonl_lhz           100101 ..... ..... ........ ........    @load
61d80bff19SRichard Hendersonl_lhs           100110 ..... ..... ........ ........    @load
62d80bff19SRichard Henderson
63d80bff19SRichard Hendersonl_swa		110011 ..... ..... ..... ...........	@store
64d80bff19SRichard Hendersonl_sw		110101 ..... ..... ..... ...........	@store
65d80bff19SRichard Hendersonl_sb		110110 ..... ..... ..... ...........	@store
66d80bff19SRichard Hendersonl_sh		110111 ..... ..... ..... ...........	@store
67*8816f70bSRichard Henderson
68*8816f70bSRichard Henderson####
69*8816f70bSRichard Henderson# Immediate Operand Instructions
70*8816f70bSRichard Henderson####
71*8816f70bSRichard Henderson
72*8816f70bSRichard Henderson%mtspr_k	21:5 0:11
73*8816f70bSRichard Henderson
74*8816f70bSRichard Henderson&rri		d a i
75*8816f70bSRichard Henderson&rrk		d a k
76*8816f70bSRichard Henderson@rri		...... d:5 a:5 i:s16			&rri
77*8816f70bSRichard Henderson@rrk		...... d:5 a:5 k:16			&rrk
78*8816f70bSRichard Henderson
79*8816f70bSRichard Hendersonl_nop		000101 01--- ----- k:16
80*8816f70bSRichard Henderson
81*8816f70bSRichard Hendersonl_addi		100111 ..... ..... ........ ........	@rri
82*8816f70bSRichard Hendersonl_addic		101000 ..... ..... ........ ........	@rri
83*8816f70bSRichard Hendersonl_andi		101001 ..... ..... ........ ........	@rrk
84*8816f70bSRichard Hendersonl_ori		101010 ..... ..... ........ ........	@rrk
85*8816f70bSRichard Hendersonl_xori		101011 ..... ..... ........ ........	@rri
86*8816f70bSRichard Hendersonl_muli		101100 ..... ..... ........ ........	@rri
87*8816f70bSRichard Henderson
88*8816f70bSRichard Hendersonl_mfspr		101101 ..... ..... ........ ........	@rrk
89*8816f70bSRichard Hendersonl_mtspr		110000 ..... a:5 b:5 ...........	k=%mtspr_k
90*8816f70bSRichard Henderson
91*8816f70bSRichard Hendersonl_maci		010011 ----- a:5 i:s16
92