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