# A32 conditional instructions # # Copyright (c) 2019 Linaro, Ltd # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2 of the License, or (at your option) any later version. # # This library is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, see . # # This file is processed by scripts/decodetree.py # # All of the insn that have a COND field in insn[31:28] are here. # All insns that have 0xf in insn[31:28] are in a32-uncond.decode. # &s_rrr_shi s rd rn rm shim shty &s_rrr_shr s rn rd rm rs shty # Data-processing (register) @s_rrr_shi ---- ... .... s:1 rn:4 rd:4 shim:5 shty:2 . rm:4 \ &s_rrr_shi @s_rxr_shi ---- ... .... s:1 .... rd:4 shim:5 shty:2 . rm:4 \ &s_rrr_shi rn=0 @S_xrr_shi ---- ... .... . rn:4 .... shim:5 shty:2 . rm:4 \ &s_rrr_shi s=1 rd=0 AND_rrri .... 000 0000 . .... .... ..... .. 0 .... @s_rrr_shi EOR_rrri .... 000 0001 . .... .... ..... .. 0 .... @s_rrr_shi SUB_rrri .... 000 0010 . .... .... ..... .. 0 .... @s_rrr_shi RSB_rrri .... 000 0011 . .... .... ..... .. 0 .... @s_rrr_shi ADD_rrri .... 000 0100 . .... .... ..... .. 0 .... @s_rrr_shi ADC_rrri .... 000 0101 . .... .... ..... .. 0 .... @s_rrr_shi SBC_rrri .... 000 0110 . .... .... ..... .. 0 .... @s_rrr_shi RSC_rrri .... 000 0111 . .... .... ..... .. 0 .... @s_rrr_shi TST_xrri .... 000 1000 1 .... 0000 ..... .. 0 .... @S_xrr_shi TEQ_xrri .... 000 1001 1 .... 0000 ..... .. 0 .... @S_xrr_shi CMP_xrri .... 000 1010 1 .... 0000 ..... .. 0 .... @S_xrr_shi CMN_xrri .... 000 1011 1 .... 0000 ..... .. 0 .... @S_xrr_shi ORR_rrri .... 000 1100 . .... .... ..... .. 0 .... @s_rrr_shi MOV_rxri .... 000 1101 . 0000 .... ..... .. 0 .... @s_rxr_shi BIC_rrri .... 000 1110 . .... .... ..... .. 0 .... @s_rrr_shi MVN_rxri .... 000 1111 . 0000 .... ..... .. 0 .... @s_rxr_shi # Data-processing (register-shifted register) @s_rrr_shr ---- ... .... s:1 rn:4 rd:4 rs:4 . shty:2 . rm:4 \ &s_rrr_shr @s_rxr_shr ---- ... .... s:1 .... rd:4 rs:4 . shty:2 . rm:4 \ &s_rrr_shr rn=0 @S_xrr_shr ---- ... .... . rn:4 .... rs:4 . shty:2 . rm:4 \ &s_rrr_shr rd=0 s=1 AND_rrrr .... 000 0000 . .... .... .... 0 .. 1 .... @s_rrr_shr EOR_rrrr .... 000 0001 . .... .... .... 0 .. 1 .... @s_rrr_shr SUB_rrrr .... 000 0010 . .... .... .... 0 .. 1 .... @s_rrr_shr RSB_rrrr .... 000 0011 . .... .... .... 0 .. 1 .... @s_rrr_shr ADD_rrrr .... 000 0100 . .... .... .... 0 .. 1 .... @s_rrr_shr ADC_rrrr .... 000 0101 . .... .... .... 0 .. 1 .... @s_rrr_shr SBC_rrrr .... 000 0110 . .... .... .... 0 .. 1 .... @s_rrr_shr RSC_rrrr .... 000 0111 . .... .... .... 0 .. 1 .... @s_rrr_shr TST_xrrr .... 000 1000 1 .... 0000 .... 0 .. 1 .... @S_xrr_shr TEQ_xrrr .... 000 1001 1 .... 0000 .... 0 .. 1 .... @S_xrr_shr CMP_xrrr .... 000 1010 1 .... 0000 .... 0 .. 1 .... @S_xrr_shr CMN_xrrr .... 000 1011 1 .... 0000 .... 0 .. 1 .... @S_xrr_shr ORR_rrrr .... 000 1100 . .... .... .... 0 .. 1 .... @s_rrr_shr MOV_rxrr .... 000 1101 . 0000 .... .... 0 .. 1 .... @s_rxr_shr BIC_rrrr .... 000 1110 . .... .... .... 0 .. 1 .... @s_rrr_shr MVN_rxrr .... 000 1111 . 0000 .... .... 0 .. 1 .... @s_rxr_shr