Home | History | Annotate | Line # | Download | only in or1k
decode.c revision 1.1.1.2
      1      1.1  christos /* Simulator instruction decoder for or1k32bf.
      2      1.1  christos 
      3      1.1  christos THIS FILE IS MACHINE GENERATED WITH CGEN.
      4      1.1  christos 
      5  1.1.1.2  christos Copyright (C) 1996-2020 Free Software Foundation, Inc.
      6      1.1  christos 
      7      1.1  christos This file is part of the GNU simulators.
      8      1.1  christos 
      9      1.1  christos    This file is free software; you can redistribute it and/or modify
     10      1.1  christos    it under the terms of the GNU General Public License as published by
     11      1.1  christos    the Free Software Foundation; either version 3, or (at your option)
     12      1.1  christos    any later version.
     13      1.1  christos 
     14      1.1  christos    It is distributed in the hope that it will be useful, but WITHOUT
     15      1.1  christos    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
     16      1.1  christos    or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
     17      1.1  christos    License for more details.
     18      1.1  christos 
     19      1.1  christos    You should have received a copy of the GNU General Public License along
     20      1.1  christos    with this program; if not, write to the Free Software Foundation, Inc.,
     21      1.1  christos    51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
     22      1.1  christos 
     23      1.1  christos */
     24      1.1  christos 
     25      1.1  christos #define WANT_CPU or1k32bf
     26      1.1  christos #define WANT_CPU_OR1K32BF
     27      1.1  christos 
     28      1.1  christos #include "sim-main.h"
     29      1.1  christos #include "sim-assert.h"
     30      1.1  christos 
     31      1.1  christos /* The instruction descriptor array.
     32      1.1  christos    This is computed at runtime.  Space for it is not malloc'd to save a
     33      1.1  christos    teensy bit of cpu in the decoder.  Moving it to malloc space is trivial
     34      1.1  christos    but won't be done until necessary (we don't currently support the runtime
     35      1.1  christos    addition of instructions nor an SMP machine with different cpus).  */
     36      1.1  christos static IDESC or1k32bf_insn_data[OR1K32BF_INSN__MAX];
     37      1.1  christos 
     38      1.1  christos /* Commas between elements are contained in the macros.
     39      1.1  christos    Some of these are conditionally compiled out.  */
     40      1.1  christos 
     41      1.1  christos static const struct insn_sem or1k32bf_insn_sem[] =
     42      1.1  christos {
     43      1.1  christos   { VIRTUAL_INSN_X_INVALID, OR1K32BF_INSN_X_INVALID, OR1K32BF_SFMT_EMPTY },
     44      1.1  christos   { VIRTUAL_INSN_X_AFTER, OR1K32BF_INSN_X_AFTER, OR1K32BF_SFMT_EMPTY },
     45      1.1  christos   { VIRTUAL_INSN_X_BEFORE, OR1K32BF_INSN_X_BEFORE, OR1K32BF_SFMT_EMPTY },
     46      1.1  christos   { VIRTUAL_INSN_X_CTI_CHAIN, OR1K32BF_INSN_X_CTI_CHAIN, OR1K32BF_SFMT_EMPTY },
     47      1.1  christos   { VIRTUAL_INSN_X_CHAIN, OR1K32BF_INSN_X_CHAIN, OR1K32BF_SFMT_EMPTY },
     48      1.1  christos   { VIRTUAL_INSN_X_BEGIN, OR1K32BF_INSN_X_BEGIN, OR1K32BF_SFMT_EMPTY },
     49      1.1  christos   { OR1K_INSN_L_J, OR1K32BF_INSN_L_J, OR1K32BF_SFMT_L_J },
     50      1.1  christos   { OR1K_INSN_L_ADRP, OR1K32BF_INSN_L_ADRP, OR1K32BF_SFMT_L_ADRP },
     51      1.1  christos   { OR1K_INSN_L_JAL, OR1K32BF_INSN_L_JAL, OR1K32BF_SFMT_L_JAL },
     52      1.1  christos   { OR1K_INSN_L_JR, OR1K32BF_INSN_L_JR, OR1K32BF_SFMT_L_JR },
     53      1.1  christos   { OR1K_INSN_L_JALR, OR1K32BF_INSN_L_JALR, OR1K32BF_SFMT_L_JALR },
     54      1.1  christos   { OR1K_INSN_L_BNF, OR1K32BF_INSN_L_BNF, OR1K32BF_SFMT_L_BNF },
     55      1.1  christos   { OR1K_INSN_L_BF, OR1K32BF_INSN_L_BF, OR1K32BF_SFMT_L_BNF },
     56      1.1  christos   { OR1K_INSN_L_TRAP, OR1K32BF_INSN_L_TRAP, OR1K32BF_SFMT_L_TRAP },
     57      1.1  christos   { OR1K_INSN_L_SYS, OR1K32BF_INSN_L_SYS, OR1K32BF_SFMT_L_TRAP },
     58      1.1  christos   { OR1K_INSN_L_MSYNC, OR1K32BF_INSN_L_MSYNC, OR1K32BF_SFMT_L_MSYNC },
     59      1.1  christos   { OR1K_INSN_L_PSYNC, OR1K32BF_INSN_L_PSYNC, OR1K32BF_SFMT_L_MSYNC },
     60      1.1  christos   { OR1K_INSN_L_CSYNC, OR1K32BF_INSN_L_CSYNC, OR1K32BF_SFMT_L_MSYNC },
     61      1.1  christos   { OR1K_INSN_L_RFE, OR1K32BF_INSN_L_RFE, OR1K32BF_SFMT_L_MSYNC },
     62      1.1  christos   { OR1K_INSN_L_NOP_IMM, OR1K32BF_INSN_L_NOP_IMM, OR1K32BF_SFMT_L_NOP_IMM },
     63      1.1  christos   { OR1K_INSN_L_MOVHI, OR1K32BF_INSN_L_MOVHI, OR1K32BF_SFMT_L_MOVHI },
     64      1.1  christos   { OR1K_INSN_L_MACRC, OR1K32BF_INSN_L_MACRC, OR1K32BF_SFMT_L_MACRC },
     65      1.1  christos   { OR1K_INSN_L_MFSPR, OR1K32BF_INSN_L_MFSPR, OR1K32BF_SFMT_L_MFSPR },
     66      1.1  christos   { OR1K_INSN_L_MTSPR, OR1K32BF_INSN_L_MTSPR, OR1K32BF_SFMT_L_MTSPR },
     67      1.1  christos   { OR1K_INSN_L_LWZ, OR1K32BF_INSN_L_LWZ, OR1K32BF_SFMT_L_LWZ },
     68      1.1  christos   { OR1K_INSN_L_LWS, OR1K32BF_INSN_L_LWS, OR1K32BF_SFMT_L_LWS },
     69      1.1  christos   { OR1K_INSN_L_LWA, OR1K32BF_INSN_L_LWA, OR1K32BF_SFMT_L_LWA },
     70      1.1  christos   { OR1K_INSN_L_LBZ, OR1K32BF_INSN_L_LBZ, OR1K32BF_SFMT_L_LBZ },
     71      1.1  christos   { OR1K_INSN_L_LBS, OR1K32BF_INSN_L_LBS, OR1K32BF_SFMT_L_LBS },
     72      1.1  christos   { OR1K_INSN_L_LHZ, OR1K32BF_INSN_L_LHZ, OR1K32BF_SFMT_L_LHZ },
     73      1.1  christos   { OR1K_INSN_L_LHS, OR1K32BF_INSN_L_LHS, OR1K32BF_SFMT_L_LHS },
     74      1.1  christos   { OR1K_INSN_L_SW, OR1K32BF_INSN_L_SW, OR1K32BF_SFMT_L_SW },
     75      1.1  christos   { OR1K_INSN_L_SB, OR1K32BF_INSN_L_SB, OR1K32BF_SFMT_L_SB },
     76      1.1  christos   { OR1K_INSN_L_SH, OR1K32BF_INSN_L_SH, OR1K32BF_SFMT_L_SH },
     77      1.1  christos   { OR1K_INSN_L_SWA, OR1K32BF_INSN_L_SWA, OR1K32BF_SFMT_L_SWA },
     78      1.1  christos   { OR1K_INSN_L_SLL, OR1K32BF_INSN_L_SLL, OR1K32BF_SFMT_L_SLL },
     79      1.1  christos   { OR1K_INSN_L_SLLI, OR1K32BF_INSN_L_SLLI, OR1K32BF_SFMT_L_SLLI },
     80      1.1  christos   { OR1K_INSN_L_SRL, OR1K32BF_INSN_L_SRL, OR1K32BF_SFMT_L_SLL },
     81      1.1  christos   { OR1K_INSN_L_SRLI, OR1K32BF_INSN_L_SRLI, OR1K32BF_SFMT_L_SLLI },
     82      1.1  christos   { OR1K_INSN_L_SRA, OR1K32BF_INSN_L_SRA, OR1K32BF_SFMT_L_SLL },
     83      1.1  christos   { OR1K_INSN_L_SRAI, OR1K32BF_INSN_L_SRAI, OR1K32BF_SFMT_L_SLLI },
     84      1.1  christos   { OR1K_INSN_L_ROR, OR1K32BF_INSN_L_ROR, OR1K32BF_SFMT_L_SLL },
     85      1.1  christos   { OR1K_INSN_L_RORI, OR1K32BF_INSN_L_RORI, OR1K32BF_SFMT_L_SLLI },
     86      1.1  christos   { OR1K_INSN_L_AND, OR1K32BF_INSN_L_AND, OR1K32BF_SFMT_L_AND },
     87      1.1  christos   { OR1K_INSN_L_OR, OR1K32BF_INSN_L_OR, OR1K32BF_SFMT_L_AND },
     88      1.1  christos   { OR1K_INSN_L_XOR, OR1K32BF_INSN_L_XOR, OR1K32BF_SFMT_L_AND },
     89      1.1  christos   { OR1K_INSN_L_ADD, OR1K32BF_INSN_L_ADD, OR1K32BF_SFMT_L_ADD },
     90      1.1  christos   { OR1K_INSN_L_SUB, OR1K32BF_INSN_L_SUB, OR1K32BF_SFMT_L_ADD },
     91      1.1  christos   { OR1K_INSN_L_ADDC, OR1K32BF_INSN_L_ADDC, OR1K32BF_SFMT_L_ADDC },
     92      1.1  christos   { OR1K_INSN_L_MUL, OR1K32BF_INSN_L_MUL, OR1K32BF_SFMT_L_MUL },
     93      1.1  christos   { OR1K_INSN_L_MULD, OR1K32BF_INSN_L_MULD, OR1K32BF_SFMT_L_MULD },
     94      1.1  christos   { OR1K_INSN_L_MULU, OR1K32BF_INSN_L_MULU, OR1K32BF_SFMT_L_MULU },
     95      1.1  christos   { OR1K_INSN_L_MULDU, OR1K32BF_INSN_L_MULDU, OR1K32BF_SFMT_L_MULD },
     96      1.1  christos   { OR1K_INSN_L_DIV, OR1K32BF_INSN_L_DIV, OR1K32BF_SFMT_L_DIV },
     97      1.1  christos   { OR1K_INSN_L_DIVU, OR1K32BF_INSN_L_DIVU, OR1K32BF_SFMT_L_DIVU },
     98      1.1  christos   { OR1K_INSN_L_FF1, OR1K32BF_INSN_L_FF1, OR1K32BF_SFMT_L_FF1 },
     99      1.1  christos   { OR1K_INSN_L_FL1, OR1K32BF_INSN_L_FL1, OR1K32BF_SFMT_L_FF1 },
    100      1.1  christos   { OR1K_INSN_L_ANDI, OR1K32BF_INSN_L_ANDI, OR1K32BF_SFMT_L_MFSPR },
    101      1.1  christos   { OR1K_INSN_L_ORI, OR1K32BF_INSN_L_ORI, OR1K32BF_SFMT_L_MFSPR },
    102      1.1  christos   { OR1K_INSN_L_XORI, OR1K32BF_INSN_L_XORI, OR1K32BF_SFMT_L_XORI },
    103      1.1  christos   { OR1K_INSN_L_ADDI, OR1K32BF_INSN_L_ADDI, OR1K32BF_SFMT_L_ADDI },
    104      1.1  christos   { OR1K_INSN_L_ADDIC, OR1K32BF_INSN_L_ADDIC, OR1K32BF_SFMT_L_ADDIC },
    105      1.1  christos   { OR1K_INSN_L_MULI, OR1K32BF_INSN_L_MULI, OR1K32BF_SFMT_L_MULI },
    106      1.1  christos   { OR1K_INSN_L_EXTHS, OR1K32BF_INSN_L_EXTHS, OR1K32BF_SFMT_L_EXTHS },
    107      1.1  christos   { OR1K_INSN_L_EXTBS, OR1K32BF_INSN_L_EXTBS, OR1K32BF_SFMT_L_EXTHS },
    108      1.1  christos   { OR1K_INSN_L_EXTHZ, OR1K32BF_INSN_L_EXTHZ, OR1K32BF_SFMT_L_EXTHS },
    109      1.1  christos   { OR1K_INSN_L_EXTBZ, OR1K32BF_INSN_L_EXTBZ, OR1K32BF_SFMT_L_EXTHS },
    110      1.1  christos   { OR1K_INSN_L_EXTWS, OR1K32BF_INSN_L_EXTWS, OR1K32BF_SFMT_L_EXTHS },
    111      1.1  christos   { OR1K_INSN_L_EXTWZ, OR1K32BF_INSN_L_EXTWZ, OR1K32BF_SFMT_L_EXTHS },
    112      1.1  christos   { OR1K_INSN_L_CMOV, OR1K32BF_INSN_L_CMOV, OR1K32BF_SFMT_L_CMOV },
    113      1.1  christos   { OR1K_INSN_L_SFGTS, OR1K32BF_INSN_L_SFGTS, OR1K32BF_SFMT_L_SFGTS },
    114      1.1  christos   { OR1K_INSN_L_SFGTSI, OR1K32BF_INSN_L_SFGTSI, OR1K32BF_SFMT_L_SFGTSI },
    115      1.1  christos   { OR1K_INSN_L_SFGTU, OR1K32BF_INSN_L_SFGTU, OR1K32BF_SFMT_L_SFGTS },
    116      1.1  christos   { OR1K_INSN_L_SFGTUI, OR1K32BF_INSN_L_SFGTUI, OR1K32BF_SFMT_L_SFGTSI },
    117      1.1  christos   { OR1K_INSN_L_SFGES, OR1K32BF_INSN_L_SFGES, OR1K32BF_SFMT_L_SFGTS },
    118      1.1  christos   { OR1K_INSN_L_SFGESI, OR1K32BF_INSN_L_SFGESI, OR1K32BF_SFMT_L_SFGTSI },
    119      1.1  christos   { OR1K_INSN_L_SFGEU, OR1K32BF_INSN_L_SFGEU, OR1K32BF_SFMT_L_SFGTS },
    120      1.1  christos   { OR1K_INSN_L_SFGEUI, OR1K32BF_INSN_L_SFGEUI, OR1K32BF_SFMT_L_SFGTSI },
    121      1.1  christos   { OR1K_INSN_L_SFLTS, OR1K32BF_INSN_L_SFLTS, OR1K32BF_SFMT_L_SFGTS },
    122      1.1  christos   { OR1K_INSN_L_SFLTSI, OR1K32BF_INSN_L_SFLTSI, OR1K32BF_SFMT_L_SFGTSI },
    123      1.1  christos   { OR1K_INSN_L_SFLTU, OR1K32BF_INSN_L_SFLTU, OR1K32BF_SFMT_L_SFGTS },
    124      1.1  christos   { OR1K_INSN_L_SFLTUI, OR1K32BF_INSN_L_SFLTUI, OR1K32BF_SFMT_L_SFGTSI },
    125      1.1  christos   { OR1K_INSN_L_SFLES, OR1K32BF_INSN_L_SFLES, OR1K32BF_SFMT_L_SFGTS },
    126      1.1  christos   { OR1K_INSN_L_SFLESI, OR1K32BF_INSN_L_SFLESI, OR1K32BF_SFMT_L_SFGTSI },
    127      1.1  christos   { OR1K_INSN_L_SFLEU, OR1K32BF_INSN_L_SFLEU, OR1K32BF_SFMT_L_SFGTS },
    128      1.1  christos   { OR1K_INSN_L_SFLEUI, OR1K32BF_INSN_L_SFLEUI, OR1K32BF_SFMT_L_SFGTSI },
    129      1.1  christos   { OR1K_INSN_L_SFEQ, OR1K32BF_INSN_L_SFEQ, OR1K32BF_SFMT_L_SFGTS },
    130      1.1  christos   { OR1K_INSN_L_SFEQI, OR1K32BF_INSN_L_SFEQI, OR1K32BF_SFMT_L_SFGTSI },
    131      1.1  christos   { OR1K_INSN_L_SFNE, OR1K32BF_INSN_L_SFNE, OR1K32BF_SFMT_L_SFGTS },
    132      1.1  christos   { OR1K_INSN_L_SFNEI, OR1K32BF_INSN_L_SFNEI, OR1K32BF_SFMT_L_SFGTSI },
    133      1.1  christos   { OR1K_INSN_L_MAC, OR1K32BF_INSN_L_MAC, OR1K32BF_SFMT_L_MAC },
    134      1.1  christos   { OR1K_INSN_L_MACI, OR1K32BF_INSN_L_MACI, OR1K32BF_SFMT_L_MACI },
    135      1.1  christos   { OR1K_INSN_L_MACU, OR1K32BF_INSN_L_MACU, OR1K32BF_SFMT_L_MACU },
    136      1.1  christos   { OR1K_INSN_L_MSB, OR1K32BF_INSN_L_MSB, OR1K32BF_SFMT_L_MAC },
    137      1.1  christos   { OR1K_INSN_L_MSBU, OR1K32BF_INSN_L_MSBU, OR1K32BF_SFMT_L_MACU },
    138      1.1  christos   { OR1K_INSN_L_CUST1, OR1K32BF_INSN_L_CUST1, OR1K32BF_SFMT_L_MSYNC },
    139      1.1  christos   { OR1K_INSN_L_CUST2, OR1K32BF_INSN_L_CUST2, OR1K32BF_SFMT_L_MSYNC },
    140      1.1  christos   { OR1K_INSN_L_CUST3, OR1K32BF_INSN_L_CUST3, OR1K32BF_SFMT_L_MSYNC },
    141      1.1  christos   { OR1K_INSN_L_CUST4, OR1K32BF_INSN_L_CUST4, OR1K32BF_SFMT_L_MSYNC },
    142      1.1  christos   { OR1K_INSN_L_CUST5, OR1K32BF_INSN_L_CUST5, OR1K32BF_SFMT_L_MSYNC },
    143      1.1  christos   { OR1K_INSN_L_CUST6, OR1K32BF_INSN_L_CUST6, OR1K32BF_SFMT_L_MSYNC },
    144      1.1  christos   { OR1K_INSN_L_CUST7, OR1K32BF_INSN_L_CUST7, OR1K32BF_SFMT_L_MSYNC },
    145      1.1  christos   { OR1K_INSN_L_CUST8, OR1K32BF_INSN_L_CUST8, OR1K32BF_SFMT_L_MSYNC },
    146      1.1  christos   { OR1K_INSN_LF_ADD_S, OR1K32BF_INSN_LF_ADD_S, OR1K32BF_SFMT_LF_ADD_S },
    147  1.1.1.2  christos   { OR1K_INSN_LF_ADD_D32, OR1K32BF_INSN_LF_ADD_D32, OR1K32BF_SFMT_LF_ADD_D32 },
    148      1.1  christos   { OR1K_INSN_LF_SUB_S, OR1K32BF_INSN_LF_SUB_S, OR1K32BF_SFMT_LF_ADD_S },
    149  1.1.1.2  christos   { OR1K_INSN_LF_SUB_D32, OR1K32BF_INSN_LF_SUB_D32, OR1K32BF_SFMT_LF_ADD_D32 },
    150      1.1  christos   { OR1K_INSN_LF_MUL_S, OR1K32BF_INSN_LF_MUL_S, OR1K32BF_SFMT_LF_ADD_S },
    151  1.1.1.2  christos   { OR1K_INSN_LF_MUL_D32, OR1K32BF_INSN_LF_MUL_D32, OR1K32BF_SFMT_LF_ADD_D32 },
    152      1.1  christos   { OR1K_INSN_LF_DIV_S, OR1K32BF_INSN_LF_DIV_S, OR1K32BF_SFMT_LF_ADD_S },
    153  1.1.1.2  christos   { OR1K_INSN_LF_DIV_D32, OR1K32BF_INSN_LF_DIV_D32, OR1K32BF_SFMT_LF_ADD_D32 },
    154      1.1  christos   { OR1K_INSN_LF_REM_S, OR1K32BF_INSN_LF_REM_S, OR1K32BF_SFMT_LF_ADD_S },
    155  1.1.1.2  christos   { OR1K_INSN_LF_REM_D32, OR1K32BF_INSN_LF_REM_D32, OR1K32BF_SFMT_LF_ADD_D32 },
    156      1.1  christos   { OR1K_INSN_LF_ITOF_S, OR1K32BF_INSN_LF_ITOF_S, OR1K32BF_SFMT_LF_ITOF_S },
    157  1.1.1.2  christos   { OR1K_INSN_LF_ITOF_D32, OR1K32BF_INSN_LF_ITOF_D32, OR1K32BF_SFMT_LF_ITOF_D32 },
    158      1.1  christos   { OR1K_INSN_LF_FTOI_S, OR1K32BF_INSN_LF_FTOI_S, OR1K32BF_SFMT_LF_FTOI_S },
    159  1.1.1.2  christos   { OR1K_INSN_LF_FTOI_D32, OR1K32BF_INSN_LF_FTOI_D32, OR1K32BF_SFMT_LF_FTOI_D32 },
    160  1.1.1.2  christos   { OR1K_INSN_LF_SFEQ_S, OR1K32BF_INSN_LF_SFEQ_S, OR1K32BF_SFMT_LF_SFEQ_S },
    161  1.1.1.2  christos   { OR1K_INSN_LF_SFEQ_D32, OR1K32BF_INSN_LF_SFEQ_D32, OR1K32BF_SFMT_LF_SFEQ_D32 },
    162  1.1.1.2  christos   { OR1K_INSN_LF_SFNE_S, OR1K32BF_INSN_LF_SFNE_S, OR1K32BF_SFMT_LF_SFEQ_S },
    163  1.1.1.2  christos   { OR1K_INSN_LF_SFNE_D32, OR1K32BF_INSN_LF_SFNE_D32, OR1K32BF_SFMT_LF_SFEQ_D32 },
    164  1.1.1.2  christos   { OR1K_INSN_LF_SFGE_S, OR1K32BF_INSN_LF_SFGE_S, OR1K32BF_SFMT_LF_SFEQ_S },
    165  1.1.1.2  christos   { OR1K_INSN_LF_SFGE_D32, OR1K32BF_INSN_LF_SFGE_D32, OR1K32BF_SFMT_LF_SFEQ_D32 },
    166  1.1.1.2  christos   { OR1K_INSN_LF_SFGT_S, OR1K32BF_INSN_LF_SFGT_S, OR1K32BF_SFMT_LF_SFEQ_S },
    167  1.1.1.2  christos   { OR1K_INSN_LF_SFGT_D32, OR1K32BF_INSN_LF_SFGT_D32, OR1K32BF_SFMT_LF_SFEQ_D32 },
    168  1.1.1.2  christos   { OR1K_INSN_LF_SFLT_S, OR1K32BF_INSN_LF_SFLT_S, OR1K32BF_SFMT_LF_SFEQ_S },
    169  1.1.1.2  christos   { OR1K_INSN_LF_SFLT_D32, OR1K32BF_INSN_LF_SFLT_D32, OR1K32BF_SFMT_LF_SFEQ_D32 },
    170  1.1.1.2  christos   { OR1K_INSN_LF_SFLE_S, OR1K32BF_INSN_LF_SFLE_S, OR1K32BF_SFMT_LF_SFEQ_S },
    171  1.1.1.2  christos   { OR1K_INSN_LF_SFLE_D32, OR1K32BF_INSN_LF_SFLE_D32, OR1K32BF_SFMT_LF_SFEQ_D32 },
    172  1.1.1.2  christos   { OR1K_INSN_LF_SFUEQ_S, OR1K32BF_INSN_LF_SFUEQ_S, OR1K32BF_SFMT_LF_SFEQ_S },
    173  1.1.1.2  christos   { OR1K_INSN_LF_SFUEQ_D32, OR1K32BF_INSN_LF_SFUEQ_D32, OR1K32BF_SFMT_LF_SFEQ_D32 },
    174  1.1.1.2  christos   { OR1K_INSN_LF_SFUNE_S, OR1K32BF_INSN_LF_SFUNE_S, OR1K32BF_SFMT_LF_SFEQ_S },
    175  1.1.1.2  christos   { OR1K_INSN_LF_SFUNE_D32, OR1K32BF_INSN_LF_SFUNE_D32, OR1K32BF_SFMT_LF_SFEQ_D32 },
    176  1.1.1.2  christos   { OR1K_INSN_LF_SFUGT_S, OR1K32BF_INSN_LF_SFUGT_S, OR1K32BF_SFMT_LF_SFEQ_S },
    177  1.1.1.2  christos   { OR1K_INSN_LF_SFUGT_D32, OR1K32BF_INSN_LF_SFUGT_D32, OR1K32BF_SFMT_LF_SFEQ_D32 },
    178  1.1.1.2  christos   { OR1K_INSN_LF_SFUGE_S, OR1K32BF_INSN_LF_SFUGE_S, OR1K32BF_SFMT_LF_SFEQ_S },
    179  1.1.1.2  christos   { OR1K_INSN_LF_SFUGE_D32, OR1K32BF_INSN_LF_SFUGE_D32, OR1K32BF_SFMT_LF_SFEQ_D32 },
    180  1.1.1.2  christos   { OR1K_INSN_LF_SFULT_S, OR1K32BF_INSN_LF_SFULT_S, OR1K32BF_SFMT_LF_SFEQ_S },
    181  1.1.1.2  christos   { OR1K_INSN_LF_SFULT_D32, OR1K32BF_INSN_LF_SFULT_D32, OR1K32BF_SFMT_LF_SFEQ_D32 },
    182  1.1.1.2  christos   { OR1K_INSN_LF_SFULE_S, OR1K32BF_INSN_LF_SFULE_S, OR1K32BF_SFMT_LF_SFEQ_S },
    183  1.1.1.2  christos   { OR1K_INSN_LF_SFULE_D32, OR1K32BF_INSN_LF_SFULE_D32, OR1K32BF_SFMT_LF_SFEQ_D32 },
    184  1.1.1.2  christos   { OR1K_INSN_LF_SFUN_S, OR1K32BF_INSN_LF_SFUN_S, OR1K32BF_SFMT_LF_SFEQ_S },
    185  1.1.1.2  christos   { OR1K_INSN_LF_SFUN_D32, OR1K32BF_INSN_LF_SFUN_D32, OR1K32BF_SFMT_LF_SFEQ_D32 },
    186      1.1  christos   { OR1K_INSN_LF_MADD_S, OR1K32BF_INSN_LF_MADD_S, OR1K32BF_SFMT_LF_MADD_S },
    187  1.1.1.2  christos   { OR1K_INSN_LF_MADD_D32, OR1K32BF_INSN_LF_MADD_D32, OR1K32BF_SFMT_LF_MADD_D32 },
    188      1.1  christos   { OR1K_INSN_LF_CUST1_S, OR1K32BF_INSN_LF_CUST1_S, OR1K32BF_SFMT_L_MSYNC },
    189  1.1.1.2  christos   { OR1K_INSN_LF_CUST1_D32, OR1K32BF_INSN_LF_CUST1_D32, OR1K32BF_SFMT_L_MSYNC },
    190      1.1  christos };
    191      1.1  christos 
    192      1.1  christos static const struct insn_sem or1k32bf_insn_sem_invalid =
    193      1.1  christos {
    194      1.1  christos   VIRTUAL_INSN_X_INVALID, OR1K32BF_INSN_X_INVALID, OR1K32BF_SFMT_EMPTY
    195      1.1  christos };
    196      1.1  christos 
    197      1.1  christos /* Initialize an IDESC from the compile-time computable parts.  */
    198      1.1  christos 
    199      1.1  christos static INLINE void
    200      1.1  christos init_idesc (SIM_CPU *cpu, IDESC *id, const struct insn_sem *t)
    201      1.1  christos {
    202      1.1  christos   const CGEN_INSN *insn_table = CGEN_CPU_INSN_TABLE (CPU_CPU_DESC (cpu))->init_entries;
    203      1.1  christos 
    204      1.1  christos   id->num = t->index;
    205      1.1  christos   id->sfmt = t->sfmt;
    206      1.1  christos   if ((int) t->type <= 0)
    207      1.1  christos     id->idata = & cgen_virtual_insn_table[- (int) t->type];
    208      1.1  christos   else
    209      1.1  christos     id->idata = & insn_table[t->type];
    210      1.1  christos   id->attrs = CGEN_INSN_ATTRS (id->idata);
    211      1.1  christos   /* Oh my god, a magic number.  */
    212      1.1  christos   id->length = CGEN_INSN_BITSIZE (id->idata) / 8;
    213      1.1  christos 
    214      1.1  christos #if WITH_PROFILE_MODEL_P
    215      1.1  christos   id->timing = & MODEL_TIMING (CPU_MODEL (cpu)) [t->index];
    216      1.1  christos   {
    217      1.1  christos     SIM_DESC sd = CPU_STATE (cpu);
    218      1.1  christos     SIM_ASSERT (t->index == id->timing->num);
    219      1.1  christos   }
    220      1.1  christos #endif
    221      1.1  christos 
    222      1.1  christos   /* Semantic pointers are initialized elsewhere.  */
    223      1.1  christos }
    224      1.1  christos 
    225      1.1  christos /* Initialize the instruction descriptor table.  */
    226      1.1  christos 
    227      1.1  christos void
    228      1.1  christos or1k32bf_init_idesc_table (SIM_CPU *cpu)
    229      1.1  christos {
    230      1.1  christos   IDESC *id,*tabend;
    231      1.1  christos   const struct insn_sem *t,*tend;
    232      1.1  christos   int tabsize = OR1K32BF_INSN__MAX;
    233      1.1  christos   IDESC *table = or1k32bf_insn_data;
    234      1.1  christos 
    235      1.1  christos   memset (table, 0, tabsize * sizeof (IDESC));
    236      1.1  christos 
    237      1.1  christos   /* First set all entries to the `invalid insn'.  */
    238      1.1  christos   t = & or1k32bf_insn_sem_invalid;
    239      1.1  christos   for (id = table, tabend = table + tabsize; id < tabend; ++id)
    240      1.1  christos     init_idesc (cpu, id, t);
    241      1.1  christos 
    242      1.1  christos   /* Now fill in the values for the chosen cpu.  */
    243      1.1  christos   for (t = or1k32bf_insn_sem, tend = t + sizeof (or1k32bf_insn_sem) / sizeof (*t);
    244      1.1  christos        t != tend; ++t)
    245      1.1  christos     {
    246      1.1  christos       init_idesc (cpu, & table[t->index], t);
    247      1.1  christos     }
    248      1.1  christos 
    249      1.1  christos   /* Link the IDESC table into the cpu.  */
    250      1.1  christos   CPU_IDESC (cpu) = table;
    251      1.1  christos }
    252      1.1  christos 
    253      1.1  christos /* Given an instruction, return a pointer to its IDESC entry.  */
    254      1.1  christos 
    255      1.1  christos const IDESC *
    256      1.1  christos or1k32bf_decode (SIM_CPU *current_cpu, IADDR pc,
    257      1.1  christos               CGEN_INSN_WORD base_insn, CGEN_INSN_WORD entire_insn,
    258      1.1  christos               ARGBUF *abuf)
    259      1.1  christos {
    260      1.1  christos   /* Result of decoder.  */
    261      1.1  christos   OR1K32BF_INSN_TYPE itype;
    262      1.1  christos 
    263      1.1  christos   {
    264      1.1  christos     CGEN_INSN_WORD insn = base_insn;
    265      1.1  christos 
    266      1.1  christos     {
    267  1.1.1.2  christos       unsigned int val = (((insn >> 21) & (63 << 5)) | ((insn >> 0) & (31 << 0)));
    268      1.1  christos       switch (val)
    269      1.1  christos       {
    270      1.1  christos       case 0 : /* fall through */
    271      1.1  christos       case 1 : /* fall through */
    272      1.1  christos       case 2 : /* fall through */
    273      1.1  christos       case 3 : /* fall through */
    274      1.1  christos       case 4 : /* fall through */
    275      1.1  christos       case 5 : /* fall through */
    276      1.1  christos       case 6 : /* fall through */
    277      1.1  christos       case 7 : /* fall through */
    278      1.1  christos       case 8 : /* fall through */
    279      1.1  christos       case 9 : /* fall through */
    280      1.1  christos       case 10 : /* fall through */
    281      1.1  christos       case 11 : /* fall through */
    282      1.1  christos       case 12 : /* fall through */
    283      1.1  christos       case 13 : /* fall through */
    284      1.1  christos       case 14 : /* fall through */
    285      1.1  christos       case 15 : /* fall through */
    286      1.1  christos       case 16 : /* fall through */
    287      1.1  christos       case 17 : /* fall through */
    288      1.1  christos       case 18 : /* fall through */
    289      1.1  christos       case 19 : /* fall through */
    290      1.1  christos       case 20 : /* fall through */
    291      1.1  christos       case 21 : /* fall through */
    292      1.1  christos       case 22 : /* fall through */
    293      1.1  christos       case 23 : /* fall through */
    294      1.1  christos       case 24 : /* fall through */
    295      1.1  christos       case 25 : /* fall through */
    296      1.1  christos       case 26 : /* fall through */
    297      1.1  christos       case 27 : /* fall through */
    298      1.1  christos       case 28 : /* fall through */
    299      1.1  christos       case 29 : /* fall through */
    300      1.1  christos       case 30 : /* fall through */
    301      1.1  christos       case 31 : itype = OR1K32BF_INSN_L_J; goto extract_sfmt_l_j;
    302      1.1  christos       case 32 : /* fall through */
    303      1.1  christos       case 33 : /* fall through */
    304      1.1  christos       case 34 : /* fall through */
    305      1.1  christos       case 35 : /* fall through */
    306      1.1  christos       case 36 : /* fall through */
    307      1.1  christos       case 37 : /* fall through */
    308      1.1  christos       case 38 : /* fall through */
    309      1.1  christos       case 39 : /* fall through */
    310      1.1  christos       case 40 : /* fall through */
    311      1.1  christos       case 41 : /* fall through */
    312      1.1  christos       case 42 : /* fall through */
    313      1.1  christos       case 43 : /* fall through */
    314      1.1  christos       case 44 : /* fall through */
    315      1.1  christos       case 45 : /* fall through */
    316      1.1  christos       case 46 : /* fall through */
    317      1.1  christos       case 47 : /* fall through */
    318      1.1  christos       case 48 : /* fall through */
    319      1.1  christos       case 49 : /* fall through */
    320      1.1  christos       case 50 : /* fall through */
    321      1.1  christos       case 51 : /* fall through */
    322      1.1  christos       case 52 : /* fall through */
    323      1.1  christos       case 53 : /* fall through */
    324      1.1  christos       case 54 : /* fall through */
    325      1.1  christos       case 55 : /* fall through */
    326      1.1  christos       case 56 : /* fall through */
    327      1.1  christos       case 57 : /* fall through */
    328      1.1  christos       case 58 : /* fall through */
    329      1.1  christos       case 59 : /* fall through */
    330      1.1  christos       case 60 : /* fall through */
    331      1.1  christos       case 61 : /* fall through */
    332      1.1  christos       case 62 : /* fall through */
    333      1.1  christos       case 63 : itype = OR1K32BF_INSN_L_JAL; goto extract_sfmt_l_jal;
    334      1.1  christos       case 64 : /* fall through */
    335      1.1  christos       case 65 : /* fall through */
    336      1.1  christos       case 66 : /* fall through */
    337      1.1  christos       case 67 : /* fall through */
    338      1.1  christos       case 68 : /* fall through */
    339      1.1  christos       case 69 : /* fall through */
    340      1.1  christos       case 70 : /* fall through */
    341      1.1  christos       case 71 : /* fall through */
    342      1.1  christos       case 72 : /* fall through */
    343      1.1  christos       case 73 : /* fall through */
    344      1.1  christos       case 74 : /* fall through */
    345      1.1  christos       case 75 : /* fall through */
    346      1.1  christos       case 76 : /* fall through */
    347      1.1  christos       case 77 : /* fall through */
    348      1.1  christos       case 78 : /* fall through */
    349      1.1  christos       case 79 : /* fall through */
    350      1.1  christos       case 80 : /* fall through */
    351      1.1  christos       case 81 : /* fall through */
    352      1.1  christos       case 82 : /* fall through */
    353      1.1  christos       case 83 : /* fall through */
    354      1.1  christos       case 84 : /* fall through */
    355      1.1  christos       case 85 : /* fall through */
    356      1.1  christos       case 86 : /* fall through */
    357      1.1  christos       case 87 : /* fall through */
    358      1.1  christos       case 88 : /* fall through */
    359      1.1  christos       case 89 : /* fall through */
    360      1.1  christos       case 90 : /* fall through */
    361      1.1  christos       case 91 : /* fall through */
    362      1.1  christos       case 92 : /* fall through */
    363      1.1  christos       case 93 : /* fall through */
    364      1.1  christos       case 94 : /* fall through */
    365      1.1  christos       case 95 : itype = OR1K32BF_INSN_L_ADRP; goto extract_sfmt_l_adrp;
    366      1.1  christos       case 96 : /* fall through */
    367      1.1  christos       case 97 : /* fall through */
    368      1.1  christos       case 98 : /* fall through */
    369      1.1  christos       case 99 : /* fall through */
    370      1.1  christos       case 100 : /* fall through */
    371      1.1  christos       case 101 : /* fall through */
    372      1.1  christos       case 102 : /* fall through */
    373      1.1  christos       case 103 : /* fall through */
    374      1.1  christos       case 104 : /* fall through */
    375      1.1  christos       case 105 : /* fall through */
    376      1.1  christos       case 106 : /* fall through */
    377      1.1  christos       case 107 : /* fall through */
    378      1.1  christos       case 108 : /* fall through */
    379      1.1  christos       case 109 : /* fall through */
    380      1.1  christos       case 110 : /* fall through */
    381      1.1  christos       case 111 : /* fall through */
    382      1.1  christos       case 112 : /* fall through */
    383      1.1  christos       case 113 : /* fall through */
    384      1.1  christos       case 114 : /* fall through */
    385      1.1  christos       case 115 : /* fall through */
    386      1.1  christos       case 116 : /* fall through */
    387      1.1  christos       case 117 : /* fall through */
    388      1.1  christos       case 118 : /* fall through */
    389      1.1  christos       case 119 : /* fall through */
    390      1.1  christos       case 120 : /* fall through */
    391      1.1  christos       case 121 : /* fall through */
    392      1.1  christos       case 122 : /* fall through */
    393      1.1  christos       case 123 : /* fall through */
    394      1.1  christos       case 124 : /* fall through */
    395      1.1  christos       case 125 : /* fall through */
    396      1.1  christos       case 126 : /* fall through */
    397      1.1  christos       case 127 : itype = OR1K32BF_INSN_L_BNF; goto extract_sfmt_l_bnf;
    398      1.1  christos       case 128 : /* fall through */
    399      1.1  christos       case 129 : /* fall through */
    400      1.1  christos       case 130 : /* fall through */
    401      1.1  christos       case 131 : /* fall through */
    402      1.1  christos       case 132 : /* fall through */
    403      1.1  christos       case 133 : /* fall through */
    404      1.1  christos       case 134 : /* fall through */
    405      1.1  christos       case 135 : /* fall through */
    406      1.1  christos       case 136 : /* fall through */
    407      1.1  christos       case 137 : /* fall through */
    408      1.1  christos       case 138 : /* fall through */
    409      1.1  christos       case 139 : /* fall through */
    410      1.1  christos       case 140 : /* fall through */
    411      1.1  christos       case 141 : /* fall through */
    412      1.1  christos       case 142 : /* fall through */
    413      1.1  christos       case 143 : /* fall through */
    414      1.1  christos       case 144 : /* fall through */
    415      1.1  christos       case 145 : /* fall through */
    416      1.1  christos       case 146 : /* fall through */
    417      1.1  christos       case 147 : /* fall through */
    418      1.1  christos       case 148 : /* fall through */
    419      1.1  christos       case 149 : /* fall through */
    420      1.1  christos       case 150 : /* fall through */
    421      1.1  christos       case 151 : /* fall through */
    422      1.1  christos       case 152 : /* fall through */
    423      1.1  christos       case 153 : /* fall through */
    424      1.1  christos       case 154 : /* fall through */
    425      1.1  christos       case 155 : /* fall through */
    426      1.1  christos       case 156 : /* fall through */
    427      1.1  christos       case 157 : /* fall through */
    428      1.1  christos       case 158 : /* fall through */
    429      1.1  christos       case 159 : itype = OR1K32BF_INSN_L_BF; goto extract_sfmt_l_bnf;
    430      1.1  christos       case 160 : /* fall through */
    431      1.1  christos       case 161 : /* fall through */
    432      1.1  christos       case 162 : /* fall through */
    433      1.1  christos       case 163 : /* fall through */
    434      1.1  christos       case 164 : /* fall through */
    435      1.1  christos       case 165 : /* fall through */
    436      1.1  christos       case 166 : /* fall through */
    437      1.1  christos       case 167 : /* fall through */
    438      1.1  christos       case 168 : /* fall through */
    439      1.1  christos       case 169 : /* fall through */
    440      1.1  christos       case 170 : /* fall through */
    441      1.1  christos       case 171 : /* fall through */
    442      1.1  christos       case 172 : /* fall through */
    443      1.1  christos       case 173 : /* fall through */
    444      1.1  christos       case 174 : /* fall through */
    445      1.1  christos       case 175 : /* fall through */
    446      1.1  christos       case 176 : /* fall through */
    447      1.1  christos       case 177 : /* fall through */
    448      1.1  christos       case 178 : /* fall through */
    449      1.1  christos       case 179 : /* fall through */
    450      1.1  christos       case 180 : /* fall through */
    451      1.1  christos       case 181 : /* fall through */
    452      1.1  christos       case 182 : /* fall through */
    453      1.1  christos       case 183 : /* fall through */
    454      1.1  christos       case 184 : /* fall through */
    455      1.1  christos       case 185 : /* fall through */
    456      1.1  christos       case 186 : /* fall through */
    457      1.1  christos       case 187 : /* fall through */
    458      1.1  christos       case 188 : /* fall through */
    459      1.1  christos       case 189 : /* fall through */
    460      1.1  christos       case 190 : /* fall through */
    461      1.1  christos       case 191 :
    462      1.1  christos         if ((entire_insn & 0xffff0000) == 0x15000000)
    463      1.1  christos           { itype = OR1K32BF_INSN_L_NOP_IMM; goto extract_sfmt_l_nop_imm; }
    464      1.1  christos         itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
    465      1.1  christos       case 192 :
    466      1.1  christos         {
    467      1.1  christos           unsigned int val = (((insn >> 16) & (1 << 0)));
    468      1.1  christos           switch (val)
    469      1.1  christos           {
    470      1.1  christos           case 0 :
    471      1.1  christos             if ((entire_insn & 0xfc1f0000) == 0x18000000)
    472      1.1  christos               { itype = OR1K32BF_INSN_L_MOVHI; goto extract_sfmt_l_movhi; }
    473      1.1  christos             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
    474      1.1  christos           case 1 :
    475      1.1  christos             if ((entire_insn & 0xfc1fffff) == 0x18010000)
    476      1.1  christos               { itype = OR1K32BF_INSN_L_MACRC; goto extract_sfmt_l_macrc; }
    477      1.1  christos             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
    478      1.1  christos           default : itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
    479      1.1  christos           }
    480      1.1  christos         }
    481      1.1  christos       case 193 : /* fall through */
    482      1.1  christos       case 194 : /* fall through */
    483      1.1  christos       case 195 : /* fall through */
    484      1.1  christos       case 196 : /* fall through */
    485      1.1  christos       case 197 : /* fall through */
    486      1.1  christos       case 198 : /* fall through */
    487      1.1  christos       case 199 : /* fall through */
    488      1.1  christos       case 200 : /* fall through */
    489      1.1  christos       case 201 : /* fall through */
    490      1.1  christos       case 202 : /* fall through */
    491      1.1  christos       case 203 : /* fall through */
    492      1.1  christos       case 204 : /* fall through */
    493      1.1  christos       case 205 : /* fall through */
    494      1.1  christos       case 206 : /* fall through */
    495      1.1  christos       case 207 : /* fall through */
    496      1.1  christos       case 208 : /* fall through */
    497      1.1  christos       case 209 : /* fall through */
    498      1.1  christos       case 210 : /* fall through */
    499      1.1  christos       case 211 : /* fall through */
    500      1.1  christos       case 212 : /* fall through */
    501      1.1  christos       case 213 : /* fall through */
    502      1.1  christos       case 214 : /* fall through */
    503      1.1  christos       case 215 : /* fall through */
    504      1.1  christos       case 216 : /* fall through */
    505      1.1  christos       case 217 : /* fall through */
    506      1.1  christos       case 218 : /* fall through */
    507      1.1  christos       case 219 : /* fall through */
    508      1.1  christos       case 220 : /* fall through */
    509      1.1  christos       case 221 : /* fall through */
    510      1.1  christos       case 222 : /* fall through */
    511      1.1  christos       case 223 :
    512      1.1  christos         if ((entire_insn & 0xfc1f0000) == 0x18000000)
    513      1.1  christos           { itype = OR1K32BF_INSN_L_MOVHI; goto extract_sfmt_l_movhi; }
    514      1.1  christos         itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
    515      1.1  christos       case 256 :
    516      1.1  christos         {
    517      1.1  christos           unsigned int val = (((insn >> 23) & (7 << 0)));
    518      1.1  christos           switch (val)
    519      1.1  christos           {
    520      1.1  christos           case 0 :
    521      1.1  christos             if ((entire_insn & 0xffff0000) == 0x20000000)
    522      1.1  christos               { itype = OR1K32BF_INSN_L_SYS; goto extract_sfmt_l_trap; }
    523      1.1  christos             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
    524      1.1  christos           case 2 :
    525      1.1  christos             if ((entire_insn & 0xffff0000) == 0x21000000)
    526      1.1  christos               { itype = OR1K32BF_INSN_L_TRAP; goto extract_sfmt_l_trap; }
    527      1.1  christos             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
    528      1.1  christos           case 4 :
    529      1.1  christos             if ((entire_insn & 0xffffffff) == 0x22000000)
    530      1.1  christos               { itype = OR1K32BF_INSN_L_MSYNC; goto extract_sfmt_l_msync; }
    531      1.1  christos             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
    532      1.1  christos           case 5 :
    533      1.1  christos             if ((entire_insn & 0xffffffff) == 0x22800000)
    534      1.1  christos               { itype = OR1K32BF_INSN_L_PSYNC; goto extract_sfmt_l_msync; }
    535      1.1  christos             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
    536      1.1  christos           case 6 :
    537      1.1  christos             if ((entire_insn & 0xffffffff) == 0x23000000)
    538      1.1  christos               { itype = OR1K32BF_INSN_L_CSYNC; goto extract_sfmt_l_msync; }
    539      1.1  christos             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
    540      1.1  christos           default : itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
    541      1.1  christos           }
    542      1.1  christos         }
    543      1.1  christos       case 257 : /* fall through */
    544      1.1  christos       case 258 : /* fall through */
    545      1.1  christos       case 259 : /* fall through */
    546      1.1  christos       case 260 : /* fall through */
    547      1.1  christos       case 261 : /* fall through */
    548      1.1  christos       case 262 : /* fall through */
    549      1.1  christos       case 263 : /* fall through */
    550      1.1  christos       case 264 : /* fall through */
    551      1.1  christos       case 265 : /* fall through */
    552      1.1  christos       case 266 : /* fall through */
    553      1.1  christos       case 267 : /* fall through */
    554      1.1  christos       case 268 : /* fall through */
    555      1.1  christos       case 269 : /* fall through */
    556      1.1  christos       case 270 : /* fall through */
    557      1.1  christos       case 271 : /* fall through */
    558      1.1  christos       case 272 : /* fall through */
    559      1.1  christos       case 273 : /* fall through */
    560      1.1  christos       case 274 : /* fall through */
    561      1.1  christos       case 275 : /* fall through */
    562      1.1  christos       case 276 : /* fall through */
    563      1.1  christos       case 277 : /* fall through */
    564      1.1  christos       case 278 : /* fall through */
    565      1.1  christos       case 279 : /* fall through */
    566      1.1  christos       case 280 : /* fall through */
    567      1.1  christos       case 281 : /* fall through */
    568      1.1  christos       case 282 : /* fall through */
    569      1.1  christos       case 283 : /* fall through */
    570      1.1  christos       case 284 : /* fall through */
    571      1.1  christos       case 285 : /* fall through */
    572      1.1  christos       case 286 : /* fall through */
    573      1.1  christos       case 287 :
    574      1.1  christos         {
    575      1.1  christos           unsigned int val = (((insn >> 24) & (1 << 0)));
    576      1.1  christos           switch (val)
    577      1.1  christos           {
    578      1.1  christos           case 0 :
    579      1.1  christos             if ((entire_insn & 0xffff0000) == 0x20000000)
    580      1.1  christos               { itype = OR1K32BF_INSN_L_SYS; goto extract_sfmt_l_trap; }
    581      1.1  christos             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
    582      1.1  christos           case 1 :
    583      1.1  christos             if ((entire_insn & 0xffff0000) == 0x21000000)
    584      1.1  christos               { itype = OR1K32BF_INSN_L_TRAP; goto extract_sfmt_l_trap; }
    585      1.1  christos             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
    586      1.1  christos           default : itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
    587      1.1  christos           }
    588      1.1  christos         }
    589      1.1  christos       case 288 :
    590      1.1  christos         if ((entire_insn & 0xffffffff) == 0x24000000)
    591      1.1  christos           { itype = OR1K32BF_INSN_L_RFE; goto extract_sfmt_l_msync; }
    592      1.1  christos         itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
    593      1.1  christos       case 544 :
    594      1.1  christos         if ((entire_insn & 0xffff07ff) == 0x44000000)
    595      1.1  christos           { itype = OR1K32BF_INSN_L_JR; goto extract_sfmt_l_jr; }
    596      1.1  christos         itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
    597      1.1  christos       case 576 :
    598      1.1  christos         if ((entire_insn & 0xffff07ff) == 0x48000000)
    599      1.1  christos           { itype = OR1K32BF_INSN_L_JALR; goto extract_sfmt_l_jalr; }
    600      1.1  christos         itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
    601      1.1  christos       case 608 : /* fall through */
    602      1.1  christos       case 609 : /* fall through */
    603      1.1  christos       case 610 : /* fall through */
    604      1.1  christos       case 611 : /* fall through */
    605      1.1  christos       case 612 : /* fall through */
    606      1.1  christos       case 613 : /* fall through */
    607      1.1  christos       case 614 : /* fall through */
    608      1.1  christos       case 615 : /* fall through */
    609      1.1  christos       case 616 : /* fall through */
    610      1.1  christos       case 617 : /* fall through */
    611      1.1  christos       case 618 : /* fall through */
    612      1.1  christos       case 619 : /* fall through */
    613      1.1  christos       case 620 : /* fall through */
    614      1.1  christos       case 621 : /* fall through */
    615      1.1  christos       case 622 : /* fall through */
    616      1.1  christos       case 623 : /* fall through */
    617      1.1  christos       case 624 : /* fall through */
    618      1.1  christos       case 625 : /* fall through */
    619      1.1  christos       case 626 : /* fall through */
    620      1.1  christos       case 627 : /* fall through */
    621      1.1  christos       case 628 : /* fall through */
    622      1.1  christos       case 629 : /* fall through */
    623      1.1  christos       case 630 : /* fall through */
    624      1.1  christos       case 631 : /* fall through */
    625      1.1  christos       case 632 : /* fall through */
    626      1.1  christos       case 633 : /* fall through */
    627      1.1  christos       case 634 : /* fall through */
    628      1.1  christos       case 635 : /* fall through */
    629      1.1  christos       case 636 : /* fall through */
    630      1.1  christos       case 637 : /* fall through */
    631      1.1  christos       case 638 : /* fall through */
    632      1.1  christos       case 639 :
    633      1.1  christos         if ((entire_insn & 0xffe00000) == 0x4c000000)
    634      1.1  christos           { itype = OR1K32BF_INSN_L_MACI; goto extract_sfmt_l_maci; }
    635      1.1  christos         itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
    636      1.1  christos       case 864 : /* fall through */
    637      1.1  christos       case 865 : /* fall through */
    638      1.1  christos       case 866 : /* fall through */
    639      1.1  christos       case 867 : /* fall through */
    640      1.1  christos       case 868 : /* fall through */
    641      1.1  christos       case 869 : /* fall through */
    642      1.1  christos       case 870 : /* fall through */
    643      1.1  christos       case 871 : /* fall through */
    644      1.1  christos       case 872 : /* fall through */
    645      1.1  christos       case 873 : /* fall through */
    646      1.1  christos       case 874 : /* fall through */
    647      1.1  christos       case 875 : /* fall through */
    648      1.1  christos       case 876 : /* fall through */
    649      1.1  christos       case 877 : /* fall through */
    650      1.1  christos       case 878 : /* fall through */
    651      1.1  christos       case 879 : /* fall through */
    652      1.1  christos       case 880 : /* fall through */
    653      1.1  christos       case 881 : /* fall through */
    654      1.1  christos       case 882 : /* fall through */
    655      1.1  christos       case 883 : /* fall through */
    656      1.1  christos       case 884 : /* fall through */
    657      1.1  christos       case 885 : /* fall through */
    658      1.1  christos       case 886 : /* fall through */
    659      1.1  christos       case 887 : /* fall through */
    660      1.1  christos       case 888 : /* fall through */
    661      1.1  christos       case 889 : /* fall through */
    662      1.1  christos       case 890 : /* fall through */
    663      1.1  christos       case 891 : /* fall through */
    664      1.1  christos       case 892 : /* fall through */
    665      1.1  christos       case 893 : /* fall through */
    666      1.1  christos       case 894 : /* fall through */
    667      1.1  christos       case 895 : itype = OR1K32BF_INSN_L_LWA; goto extract_sfmt_l_lwa;
    668      1.1  christos       case 896 :
    669      1.1  christos         if ((entire_insn & 0xffffffff) == 0x70000000)
    670      1.1  christos           { itype = OR1K32BF_INSN_L_CUST1; goto extract_sfmt_l_msync; }
    671      1.1  christos         itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
    672      1.1  christos       case 928 :
    673      1.1  christos         if ((entire_insn & 0xffffffff) == 0x74000000)
    674      1.1  christos           { itype = OR1K32BF_INSN_L_CUST2; goto extract_sfmt_l_msync; }
    675      1.1  christos         itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
    676      1.1  christos       case 960 :
    677      1.1  christos         if ((entire_insn & 0xffffffff) == 0x78000000)
    678      1.1  christos           { itype = OR1K32BF_INSN_L_CUST3; goto extract_sfmt_l_msync; }
    679      1.1  christos         itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
    680      1.1  christos       case 992 :
    681      1.1  christos         if ((entire_insn & 0xffffffff) == 0x7c000000)
    682      1.1  christos           { itype = OR1K32BF_INSN_L_CUST4; goto extract_sfmt_l_msync; }
    683      1.1  christos         itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
    684      1.1  christos       case 1056 : /* fall through */
    685      1.1  christos       case 1057 : /* fall through */
    686      1.1  christos       case 1058 : /* fall through */
    687      1.1  christos       case 1059 : /* fall through */
    688      1.1  christos       case 1060 : /* fall through */
    689      1.1  christos       case 1061 : /* fall through */
    690      1.1  christos       case 1062 : /* fall through */
    691      1.1  christos       case 1063 : /* fall through */
    692      1.1  christos       case 1064 : /* fall through */
    693      1.1  christos       case 1065 : /* fall through */
    694      1.1  christos       case 1066 : /* fall through */
    695      1.1  christos       case 1067 : /* fall through */
    696      1.1  christos       case 1068 : /* fall through */
    697      1.1  christos       case 1069 : /* fall through */
    698      1.1  christos       case 1070 : /* fall through */
    699      1.1  christos       case 1071 : /* fall through */
    700      1.1  christos       case 1072 : /* fall through */
    701      1.1  christos       case 1073 : /* fall through */
    702      1.1  christos       case 1074 : /* fall through */
    703      1.1  christos       case 1075 : /* fall through */
    704      1.1  christos       case 1076 : /* fall through */
    705      1.1  christos       case 1077 : /* fall through */
    706      1.1  christos       case 1078 : /* fall through */
    707      1.1  christos       case 1079 : /* fall through */
    708      1.1  christos       case 1080 : /* fall through */
    709      1.1  christos       case 1081 : /* fall through */
    710      1.1  christos       case 1082 : /* fall through */
    711      1.1  christos       case 1083 : /* fall through */
    712      1.1  christos       case 1084 : /* fall through */
    713      1.1  christos       case 1085 : /* fall through */
    714      1.1  christos       case 1086 : /* fall through */
    715      1.1  christos       case 1087 : itype = OR1K32BF_INSN_L_LWZ; goto extract_sfmt_l_lwz;
    716      1.1  christos       case 1088 : /* fall through */
    717      1.1  christos       case 1089 : /* fall through */
    718      1.1  christos       case 1090 : /* fall through */
    719      1.1  christos       case 1091 : /* fall through */
    720      1.1  christos       case 1092 : /* fall through */
    721      1.1  christos       case 1093 : /* fall through */
    722      1.1  christos       case 1094 : /* fall through */
    723      1.1  christos       case 1095 : /* fall through */
    724      1.1  christos       case 1096 : /* fall through */
    725      1.1  christos       case 1097 : /* fall through */
    726      1.1  christos       case 1098 : /* fall through */
    727      1.1  christos       case 1099 : /* fall through */
    728      1.1  christos       case 1100 : /* fall through */
    729      1.1  christos       case 1101 : /* fall through */
    730      1.1  christos       case 1102 : /* fall through */
    731      1.1  christos       case 1103 : /* fall through */
    732      1.1  christos       case 1104 : /* fall through */
    733      1.1  christos       case 1105 : /* fall through */
    734      1.1  christos       case 1106 : /* fall through */
    735      1.1  christos       case 1107 : /* fall through */
    736      1.1  christos       case 1108 : /* fall through */
    737      1.1  christos       case 1109 : /* fall through */
    738      1.1  christos       case 1110 : /* fall through */
    739      1.1  christos       case 1111 : /* fall through */
    740      1.1  christos       case 1112 : /* fall through */
    741      1.1  christos       case 1113 : /* fall through */
    742      1.1  christos       case 1114 : /* fall through */
    743      1.1  christos       case 1115 : /* fall through */
    744      1.1  christos       case 1116 : /* fall through */
    745      1.1  christos       case 1117 : /* fall through */
    746      1.1  christos       case 1118 : /* fall through */
    747      1.1  christos       case 1119 : itype = OR1K32BF_INSN_L_LWS; goto extract_sfmt_l_lws;
    748      1.1  christos       case 1120 : /* fall through */
    749      1.1  christos       case 1121 : /* fall through */
    750      1.1  christos       case 1122 : /* fall through */
    751      1.1  christos       case 1123 : /* fall through */
    752      1.1  christos       case 1124 : /* fall through */
    753      1.1  christos       case 1125 : /* fall through */
    754      1.1  christos       case 1126 : /* fall through */
    755      1.1  christos       case 1127 : /* fall through */
    756      1.1  christos       case 1128 : /* fall through */
    757      1.1  christos       case 1129 : /* fall through */
    758      1.1  christos       case 1130 : /* fall through */
    759      1.1  christos       case 1131 : /* fall through */
    760      1.1  christos       case 1132 : /* fall through */
    761      1.1  christos       case 1133 : /* fall through */
    762      1.1  christos       case 1134 : /* fall through */
    763      1.1  christos       case 1135 : /* fall through */
    764      1.1  christos       case 1136 : /* fall through */
    765      1.1  christos       case 1137 : /* fall through */
    766      1.1  christos       case 1138 : /* fall through */
    767      1.1  christos       case 1139 : /* fall through */
    768      1.1  christos       case 1140 : /* fall through */
    769      1.1  christos       case 1141 : /* fall through */
    770      1.1  christos       case 1142 : /* fall through */
    771      1.1  christos       case 1143 : /* fall through */
    772      1.1  christos       case 1144 : /* fall through */
    773      1.1  christos       case 1145 : /* fall through */
    774      1.1  christos       case 1146 : /* fall through */
    775      1.1  christos       case 1147 : /* fall through */
    776      1.1  christos       case 1148 : /* fall through */
    777      1.1  christos       case 1149 : /* fall through */
    778      1.1  christos       case 1150 : /* fall through */
    779      1.1  christos       case 1151 : itype = OR1K32BF_INSN_L_LBZ; goto extract_sfmt_l_lbz;
    780      1.1  christos       case 1152 : /* fall through */
    781      1.1  christos       case 1153 : /* fall through */
    782      1.1  christos       case 1154 : /* fall through */
    783      1.1  christos       case 1155 : /* fall through */
    784      1.1  christos       case 1156 : /* fall through */
    785      1.1  christos       case 1157 : /* fall through */
    786      1.1  christos       case 1158 : /* fall through */
    787      1.1  christos       case 1159 : /* fall through */
    788      1.1  christos       case 1160 : /* fall through */
    789      1.1  christos       case 1161 : /* fall through */
    790      1.1  christos       case 1162 : /* fall through */
    791      1.1  christos       case 1163 : /* fall through */
    792      1.1  christos       case 1164 : /* fall through */
    793      1.1  christos       case 1165 : /* fall through */
    794      1.1  christos       case 1166 : /* fall through */
    795      1.1  christos       case 1167 : /* fall through */
    796      1.1  christos       case 1168 : /* fall through */
    797      1.1  christos       case 1169 : /* fall through */
    798      1.1  christos       case 1170 : /* fall through */
    799      1.1  christos       case 1171 : /* fall through */
    800      1.1  christos       case 1172 : /* fall through */
    801      1.1  christos       case 1173 : /* fall through */
    802      1.1  christos       case 1174 : /* fall through */
    803      1.1  christos       case 1175 : /* fall through */
    804      1.1  christos       case 1176 : /* fall through */
    805      1.1  christos       case 1177 : /* fall through */
    806      1.1  christos       case 1178 : /* fall through */
    807      1.1  christos       case 1179 : /* fall through */
    808      1.1  christos       case 1180 : /* fall through */
    809      1.1  christos       case 1181 : /* fall through */
    810      1.1  christos       case 1182 : /* fall through */
    811      1.1  christos       case 1183 : itype = OR1K32BF_INSN_L_LBS; goto extract_sfmt_l_lbs;
    812      1.1  christos       case 1184 : /* fall through */
    813      1.1  christos       case 1185 : /* fall through */
    814      1.1  christos       case 1186 : /* fall through */
    815      1.1  christos       case 1187 : /* fall through */
    816      1.1  christos       case 1188 : /* fall through */
    817      1.1  christos       case 1189 : /* fall through */
    818      1.1  christos       case 1190 : /* fall through */
    819      1.1  christos       case 1191 : /* fall through */
    820      1.1  christos       case 1192 : /* fall through */
    821      1.1  christos       case 1193 : /* fall through */
    822      1.1  christos       case 1194 : /* fall through */
    823      1.1  christos       case 1195 : /* fall through */
    824      1.1  christos       case 1196 : /* fall through */
    825      1.1  christos       case 1197 : /* fall through */
    826      1.1  christos       case 1198 : /* fall through */
    827      1.1  christos       case 1199 : /* fall through */
    828      1.1  christos       case 1200 : /* fall through */
    829      1.1  christos       case 1201 : /* fall through */
    830      1.1  christos       case 1202 : /* fall through */
    831      1.1  christos       case 1203 : /* fall through */
    832      1.1  christos       case 1204 : /* fall through */
    833      1.1  christos       case 1205 : /* fall through */
    834      1.1  christos       case 1206 : /* fall through */
    835      1.1  christos       case 1207 : /* fall through */
    836      1.1  christos       case 1208 : /* fall through */
    837      1.1  christos       case 1209 : /* fall through */
    838      1.1  christos       case 1210 : /* fall through */
    839      1.1  christos       case 1211 : /* fall through */
    840      1.1  christos       case 1212 : /* fall through */
    841      1.1  christos       case 1213 : /* fall through */
    842      1.1  christos       case 1214 : /* fall through */
    843      1.1  christos       case 1215 : itype = OR1K32BF_INSN_L_LHZ; goto extract_sfmt_l_lhz;
    844      1.1  christos       case 1216 : /* fall through */
    845      1.1  christos       case 1217 : /* fall through */
    846      1.1  christos       case 1218 : /* fall through */
    847      1.1  christos       case 1219 : /* fall through */
    848      1.1  christos       case 1220 : /* fall through */
    849      1.1  christos       case 1221 : /* fall through */
    850      1.1  christos       case 1222 : /* fall through */
    851      1.1  christos       case 1223 : /* fall through */
    852      1.1  christos       case 1224 : /* fall through */
    853      1.1  christos       case 1225 : /* fall through */
    854      1.1  christos       case 1226 : /* fall through */
    855      1.1  christos       case 1227 : /* fall through */
    856      1.1  christos       case 1228 : /* fall through */
    857      1.1  christos       case 1229 : /* fall through */
    858      1.1  christos       case 1230 : /* fall through */
    859      1.1  christos       case 1231 : /* fall through */
    860      1.1  christos       case 1232 : /* fall through */
    861      1.1  christos       case 1233 : /* fall through */
    862      1.1  christos       case 1234 : /* fall through */
    863      1.1  christos       case 1235 : /* fall through */
    864      1.1  christos       case 1236 : /* fall through */
    865      1.1  christos       case 1237 : /* fall through */
    866      1.1  christos       case 1238 : /* fall through */
    867      1.1  christos       case 1239 : /* fall through */
    868      1.1  christos       case 1240 : /* fall through */
    869      1.1  christos       case 1241 : /* fall through */
    870      1.1  christos       case 1242 : /* fall through */
    871      1.1  christos       case 1243 : /* fall through */
    872      1.1  christos       case 1244 : /* fall through */
    873      1.1  christos       case 1245 : /* fall through */
    874      1.1  christos       case 1246 : /* fall through */
    875      1.1  christos       case 1247 : itype = OR1K32BF_INSN_L_LHS; goto extract_sfmt_l_lhs;
    876      1.1  christos       case 1248 : /* fall through */
    877      1.1  christos       case 1249 : /* fall through */
    878      1.1  christos       case 1250 : /* fall through */
    879      1.1  christos       case 1251 : /* fall through */
    880      1.1  christos       case 1252 : /* fall through */
    881      1.1  christos       case 1253 : /* fall through */
    882      1.1  christos       case 1254 : /* fall through */
    883      1.1  christos       case 1255 : /* fall through */
    884      1.1  christos       case 1256 : /* fall through */
    885      1.1  christos       case 1257 : /* fall through */
    886      1.1  christos       case 1258 : /* fall through */
    887      1.1  christos       case 1259 : /* fall through */
    888      1.1  christos       case 1260 : /* fall through */
    889      1.1  christos       case 1261 : /* fall through */
    890      1.1  christos       case 1262 : /* fall through */
    891      1.1  christos       case 1263 : /* fall through */
    892      1.1  christos       case 1264 : /* fall through */
    893      1.1  christos       case 1265 : /* fall through */
    894      1.1  christos       case 1266 : /* fall through */
    895      1.1  christos       case 1267 : /* fall through */
    896      1.1  christos       case 1268 : /* fall through */
    897      1.1  christos       case 1269 : /* fall through */
    898      1.1  christos       case 1270 : /* fall through */
    899      1.1  christos       case 1271 : /* fall through */
    900      1.1  christos       case 1272 : /* fall through */
    901      1.1  christos       case 1273 : /* fall through */
    902      1.1  christos       case 1274 : /* fall through */
    903      1.1  christos       case 1275 : /* fall through */
    904      1.1  christos       case 1276 : /* fall through */
    905      1.1  christos       case 1277 : /* fall through */
    906      1.1  christos       case 1278 : /* fall through */
    907      1.1  christos       case 1279 : itype = OR1K32BF_INSN_L_ADDI; goto extract_sfmt_l_addi;
    908      1.1  christos       case 1280 : /* fall through */
    909      1.1  christos       case 1281 : /* fall through */
    910      1.1  christos       case 1282 : /* fall through */
    911      1.1  christos       case 1283 : /* fall through */
    912      1.1  christos       case 1284 : /* fall through */
    913      1.1  christos       case 1285 : /* fall through */
    914      1.1  christos       case 1286 : /* fall through */
    915      1.1  christos       case 1287 : /* fall through */
    916      1.1  christos       case 1288 : /* fall through */
    917      1.1  christos       case 1289 : /* fall through */
    918      1.1  christos       case 1290 : /* fall through */
    919      1.1  christos       case 1291 : /* fall through */
    920      1.1  christos       case 1292 : /* fall through */
    921      1.1  christos       case 1293 : /* fall through */
    922      1.1  christos       case 1294 : /* fall through */
    923      1.1  christos       case 1295 : /* fall through */
    924      1.1  christos       case 1296 : /* fall through */
    925      1.1  christos       case 1297 : /* fall through */
    926      1.1  christos       case 1298 : /* fall through */
    927      1.1  christos       case 1299 : /* fall through */
    928      1.1  christos       case 1300 : /* fall through */
    929      1.1  christos       case 1301 : /* fall through */
    930      1.1  christos       case 1302 : /* fall through */
    931      1.1  christos       case 1303 : /* fall through */
    932      1.1  christos       case 1304 : /* fall through */
    933      1.1  christos       case 1305 : /* fall through */
    934      1.1  christos       case 1306 : /* fall through */
    935      1.1  christos       case 1307 : /* fall through */
    936      1.1  christos       case 1308 : /* fall through */
    937      1.1  christos       case 1309 : /* fall through */
    938      1.1  christos       case 1310 : /* fall through */
    939      1.1  christos       case 1311 : itype = OR1K32BF_INSN_L_ADDIC; goto extract_sfmt_l_addic;
    940      1.1  christos       case 1312 : /* fall through */
    941      1.1  christos       case 1313 : /* fall through */
    942      1.1  christos       case 1314 : /* fall through */
    943      1.1  christos       case 1315 : /* fall through */
    944      1.1  christos       case 1316 : /* fall through */
    945      1.1  christos       case 1317 : /* fall through */
    946      1.1  christos       case 1318 : /* fall through */
    947      1.1  christos       case 1319 : /* fall through */
    948      1.1  christos       case 1320 : /* fall through */
    949      1.1  christos       case 1321 : /* fall through */
    950      1.1  christos       case 1322 : /* fall through */
    951      1.1  christos       case 1323 : /* fall through */
    952      1.1  christos       case 1324 : /* fall through */
    953      1.1  christos       case 1325 : /* fall through */
    954      1.1  christos       case 1326 : /* fall through */
    955      1.1  christos       case 1327 : /* fall through */
    956      1.1  christos       case 1328 : /* fall through */
    957      1.1  christos       case 1329 : /* fall through */
    958      1.1  christos       case 1330 : /* fall through */
    959      1.1  christos       case 1331 : /* fall through */
    960      1.1  christos       case 1332 : /* fall through */
    961      1.1  christos       case 1333 : /* fall through */
    962      1.1  christos       case 1334 : /* fall through */
    963      1.1  christos       case 1335 : /* fall through */
    964      1.1  christos       case 1336 : /* fall through */
    965      1.1  christos       case 1337 : /* fall through */
    966      1.1  christos       case 1338 : /* fall through */
    967      1.1  christos       case 1339 : /* fall through */
    968      1.1  christos       case 1340 : /* fall through */
    969      1.1  christos       case 1341 : /* fall through */
    970      1.1  christos       case 1342 : /* fall through */
    971      1.1  christos       case 1343 : itype = OR1K32BF_INSN_L_ANDI; goto extract_sfmt_l_mfspr;
    972      1.1  christos       case 1344 : /* fall through */
    973      1.1  christos       case 1345 : /* fall through */
    974      1.1  christos       case 1346 : /* fall through */
    975      1.1  christos       case 1347 : /* fall through */
    976      1.1  christos       case 1348 : /* fall through */
    977      1.1  christos       case 1349 : /* fall through */
    978      1.1  christos       case 1350 : /* fall through */
    979      1.1  christos       case 1351 : /* fall through */
    980      1.1  christos       case 1352 : /* fall through */
    981      1.1  christos       case 1353 : /* fall through */
    982      1.1  christos       case 1354 : /* fall through */
    983      1.1  christos       case 1355 : /* fall through */
    984      1.1  christos       case 1356 : /* fall through */
    985      1.1  christos       case 1357 : /* fall through */
    986      1.1  christos       case 1358 : /* fall through */
    987      1.1  christos       case 1359 : /* fall through */
    988      1.1  christos       case 1360 : /* fall through */
    989      1.1  christos       case 1361 : /* fall through */
    990      1.1  christos       case 1362 : /* fall through */
    991      1.1  christos       case 1363 : /* fall through */
    992      1.1  christos       case 1364 : /* fall through */
    993      1.1  christos       case 1365 : /* fall through */
    994      1.1  christos       case 1366 : /* fall through */
    995      1.1  christos       case 1367 : /* fall through */
    996      1.1  christos       case 1368 : /* fall through */
    997      1.1  christos       case 1369 : /* fall through */
    998      1.1  christos       case 1370 : /* fall through */
    999      1.1  christos       case 1371 : /* fall through */
   1000      1.1  christos       case 1372 : /* fall through */
   1001      1.1  christos       case 1373 : /* fall through */
   1002      1.1  christos       case 1374 : /* fall through */
   1003      1.1  christos       case 1375 : itype = OR1K32BF_INSN_L_ORI; goto extract_sfmt_l_mfspr;
   1004      1.1  christos       case 1376 : /* fall through */
   1005      1.1  christos       case 1377 : /* fall through */
   1006      1.1  christos       case 1378 : /* fall through */
   1007      1.1  christos       case 1379 : /* fall through */
   1008      1.1  christos       case 1380 : /* fall through */
   1009      1.1  christos       case 1381 : /* fall through */
   1010      1.1  christos       case 1382 : /* fall through */
   1011      1.1  christos       case 1383 : /* fall through */
   1012      1.1  christos       case 1384 : /* fall through */
   1013      1.1  christos       case 1385 : /* fall through */
   1014      1.1  christos       case 1386 : /* fall through */
   1015      1.1  christos       case 1387 : /* fall through */
   1016      1.1  christos       case 1388 : /* fall through */
   1017      1.1  christos       case 1389 : /* fall through */
   1018      1.1  christos       case 1390 : /* fall through */
   1019      1.1  christos       case 1391 : /* fall through */
   1020      1.1  christos       case 1392 : /* fall through */
   1021      1.1  christos       case 1393 : /* fall through */
   1022      1.1  christos       case 1394 : /* fall through */
   1023      1.1  christos       case 1395 : /* fall through */
   1024      1.1  christos       case 1396 : /* fall through */
   1025      1.1  christos       case 1397 : /* fall through */
   1026      1.1  christos       case 1398 : /* fall through */
   1027      1.1  christos       case 1399 : /* fall through */
   1028      1.1  christos       case 1400 : /* fall through */
   1029      1.1  christos       case 1401 : /* fall through */
   1030      1.1  christos       case 1402 : /* fall through */
   1031      1.1  christos       case 1403 : /* fall through */
   1032      1.1  christos       case 1404 : /* fall through */
   1033      1.1  christos       case 1405 : /* fall through */
   1034      1.1  christos       case 1406 : /* fall through */
   1035      1.1  christos       case 1407 : itype = OR1K32BF_INSN_L_XORI; goto extract_sfmt_l_xori;
   1036      1.1  christos       case 1408 : /* fall through */
   1037      1.1  christos       case 1409 : /* fall through */
   1038      1.1  christos       case 1410 : /* fall through */
   1039      1.1  christos       case 1411 : /* fall through */
   1040      1.1  christos       case 1412 : /* fall through */
   1041      1.1  christos       case 1413 : /* fall through */
   1042      1.1  christos       case 1414 : /* fall through */
   1043      1.1  christos       case 1415 : /* fall through */
   1044      1.1  christos       case 1416 : /* fall through */
   1045      1.1  christos       case 1417 : /* fall through */
   1046      1.1  christos       case 1418 : /* fall through */
   1047      1.1  christos       case 1419 : /* fall through */
   1048      1.1  christos       case 1420 : /* fall through */
   1049      1.1  christos       case 1421 : /* fall through */
   1050      1.1  christos       case 1422 : /* fall through */
   1051      1.1  christos       case 1423 : /* fall through */
   1052      1.1  christos       case 1424 : /* fall through */
   1053      1.1  christos       case 1425 : /* fall through */
   1054      1.1  christos       case 1426 : /* fall through */
   1055      1.1  christos       case 1427 : /* fall through */
   1056      1.1  christos       case 1428 : /* fall through */
   1057      1.1  christos       case 1429 : /* fall through */
   1058      1.1  christos       case 1430 : /* fall through */
   1059      1.1  christos       case 1431 : /* fall through */
   1060      1.1  christos       case 1432 : /* fall through */
   1061      1.1  christos       case 1433 : /* fall through */
   1062      1.1  christos       case 1434 : /* fall through */
   1063      1.1  christos       case 1435 : /* fall through */
   1064      1.1  christos       case 1436 : /* fall through */
   1065      1.1  christos       case 1437 : /* fall through */
   1066      1.1  christos       case 1438 : /* fall through */
   1067      1.1  christos       case 1439 : itype = OR1K32BF_INSN_L_MULI; goto extract_sfmt_l_muli;
   1068      1.1  christos       case 1440 : /* fall through */
   1069      1.1  christos       case 1441 : /* fall through */
   1070      1.1  christos       case 1442 : /* fall through */
   1071      1.1  christos       case 1443 : /* fall through */
   1072      1.1  christos       case 1444 : /* fall through */
   1073      1.1  christos       case 1445 : /* fall through */
   1074      1.1  christos       case 1446 : /* fall through */
   1075      1.1  christos       case 1447 : /* fall through */
   1076      1.1  christos       case 1448 : /* fall through */
   1077      1.1  christos       case 1449 : /* fall through */
   1078      1.1  christos       case 1450 : /* fall through */
   1079      1.1  christos       case 1451 : /* fall through */
   1080      1.1  christos       case 1452 : /* fall through */
   1081      1.1  christos       case 1453 : /* fall through */
   1082      1.1  christos       case 1454 : /* fall through */
   1083      1.1  christos       case 1455 : /* fall through */
   1084      1.1  christos       case 1456 : /* fall through */
   1085      1.1  christos       case 1457 : /* fall through */
   1086      1.1  christos       case 1458 : /* fall through */
   1087      1.1  christos       case 1459 : /* fall through */
   1088      1.1  christos       case 1460 : /* fall through */
   1089      1.1  christos       case 1461 : /* fall through */
   1090      1.1  christos       case 1462 : /* fall through */
   1091      1.1  christos       case 1463 : /* fall through */
   1092      1.1  christos       case 1464 : /* fall through */
   1093      1.1  christos       case 1465 : /* fall through */
   1094      1.1  christos       case 1466 : /* fall through */
   1095      1.1  christos       case 1467 : /* fall through */
   1096      1.1  christos       case 1468 : /* fall through */
   1097      1.1  christos       case 1469 : /* fall through */
   1098      1.1  christos       case 1470 : /* fall through */
   1099      1.1  christos       case 1471 : itype = OR1K32BF_INSN_L_MFSPR; goto extract_sfmt_l_mfspr;
   1100      1.1  christos       case 1472 : /* fall through */
   1101      1.1  christos       case 1473 : /* fall through */
   1102      1.1  christos       case 1474 : /* fall through */
   1103      1.1  christos       case 1475 : /* fall through */
   1104      1.1  christos       case 1476 : /* fall through */
   1105      1.1  christos       case 1477 : /* fall through */
   1106      1.1  christos       case 1478 : /* fall through */
   1107      1.1  christos       case 1479 : /* fall through */
   1108      1.1  christos       case 1480 : /* fall through */
   1109      1.1  christos       case 1481 : /* fall through */
   1110      1.1  christos       case 1482 : /* fall through */
   1111      1.1  christos       case 1483 : /* fall through */
   1112      1.1  christos       case 1484 : /* fall through */
   1113      1.1  christos       case 1485 : /* fall through */
   1114      1.1  christos       case 1486 : /* fall through */
   1115  1.1.1.2  christos       case 1487 : /* fall through */
   1116      1.1  christos       case 1488 : /* fall through */
   1117      1.1  christos       case 1489 : /* fall through */
   1118      1.1  christos       case 1490 : /* fall through */
   1119      1.1  christos       case 1491 : /* fall through */
   1120      1.1  christos       case 1492 : /* fall through */
   1121      1.1  christos       case 1493 : /* fall through */
   1122      1.1  christos       case 1494 : /* fall through */
   1123      1.1  christos       case 1495 : /* fall through */
   1124      1.1  christos       case 1496 : /* fall through */
   1125      1.1  christos       case 1497 : /* fall through */
   1126      1.1  christos       case 1498 : /* fall through */
   1127      1.1  christos       case 1499 : /* fall through */
   1128      1.1  christos       case 1500 : /* fall through */
   1129      1.1  christos       case 1501 : /* fall through */
   1130      1.1  christos       case 1502 : /* fall through */
   1131      1.1  christos       case 1503 :
   1132      1.1  christos         {
   1133  1.1.1.2  christos           unsigned int val = (((insn >> 6) & (3 << 0)));
   1134      1.1  christos           switch (val)
   1135      1.1  christos           {
   1136      1.1  christos           case 0 :
   1137  1.1.1.2  christos             if ((entire_insn & 0xfc00ffc0) == 0xb8000000)
   1138  1.1.1.2  christos               { itype = OR1K32BF_INSN_L_SLLI; goto extract_sfmt_l_slli; }
   1139  1.1.1.2  christos             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1140  1.1.1.2  christos           case 1 :
   1141      1.1  christos             if ((entire_insn & 0xfc00ffc0) == 0xb8000040)
   1142      1.1  christos               { itype = OR1K32BF_INSN_L_SRLI; goto extract_sfmt_l_slli; }
   1143      1.1  christos             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1144  1.1.1.2  christos           case 2 :
   1145  1.1.1.2  christos             if ((entire_insn & 0xfc00ffc0) == 0xb8000080)
   1146  1.1.1.2  christos               { itype = OR1K32BF_INSN_L_SRAI; goto extract_sfmt_l_slli; }
   1147  1.1.1.2  christos             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1148  1.1.1.2  christos           case 3 :
   1149      1.1  christos             if ((entire_insn & 0xfc00ffc0) == 0xb80000c0)
   1150      1.1  christos               { itype = OR1K32BF_INSN_L_RORI; goto extract_sfmt_l_slli; }
   1151      1.1  christos             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1152      1.1  christos           default : itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1153      1.1  christos           }
   1154      1.1  christos         }
   1155      1.1  christos       case 1504 : /* fall through */
   1156      1.1  christos       case 1505 : /* fall through */
   1157      1.1  christos       case 1506 : /* fall through */
   1158      1.1  christos       case 1507 : /* fall through */
   1159      1.1  christos       case 1508 : /* fall through */
   1160      1.1  christos       case 1509 : /* fall through */
   1161      1.1  christos       case 1510 : /* fall through */
   1162      1.1  christos       case 1511 : /* fall through */
   1163      1.1  christos       case 1512 : /* fall through */
   1164      1.1  christos       case 1513 : /* fall through */
   1165      1.1  christos       case 1514 : /* fall through */
   1166      1.1  christos       case 1515 : /* fall through */
   1167      1.1  christos       case 1516 : /* fall through */
   1168      1.1  christos       case 1517 : /* fall through */
   1169      1.1  christos       case 1518 : /* fall through */
   1170      1.1  christos       case 1519 : /* fall through */
   1171      1.1  christos       case 1520 : /* fall through */
   1172      1.1  christos       case 1521 : /* fall through */
   1173      1.1  christos       case 1522 : /* fall through */
   1174      1.1  christos       case 1523 : /* fall through */
   1175      1.1  christos       case 1524 : /* fall through */
   1176      1.1  christos       case 1525 : /* fall through */
   1177      1.1  christos       case 1526 : /* fall through */
   1178      1.1  christos       case 1527 : /* fall through */
   1179      1.1  christos       case 1528 : /* fall through */
   1180      1.1  christos       case 1529 : /* fall through */
   1181      1.1  christos       case 1530 : /* fall through */
   1182      1.1  christos       case 1531 : /* fall through */
   1183      1.1  christos       case 1532 : /* fall through */
   1184      1.1  christos       case 1533 : /* fall through */
   1185      1.1  christos       case 1534 : /* fall through */
   1186      1.1  christos       case 1535 :
   1187      1.1  christos         {
   1188      1.1  christos           unsigned int val = (((insn >> 21) & (15 << 0)));
   1189      1.1  christos           switch (val)
   1190      1.1  christos           {
   1191      1.1  christos           case 0 :
   1192      1.1  christos             if ((entire_insn & 0xffe00000) == 0xbc000000)
   1193      1.1  christos               { itype = OR1K32BF_INSN_L_SFEQI; goto extract_sfmt_l_sfgtsi; }
   1194      1.1  christos             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1195      1.1  christos           case 1 :
   1196      1.1  christos             if ((entire_insn & 0xffe00000) == 0xbc200000)
   1197      1.1  christos               { itype = OR1K32BF_INSN_L_SFNEI; goto extract_sfmt_l_sfgtsi; }
   1198      1.1  christos             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1199      1.1  christos           case 2 :
   1200      1.1  christos             if ((entire_insn & 0xffe00000) == 0xbc400000)
   1201      1.1  christos               { itype = OR1K32BF_INSN_L_SFGTUI; goto extract_sfmt_l_sfgtsi; }
   1202      1.1  christos             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1203      1.1  christos           case 3 :
   1204      1.1  christos             if ((entire_insn & 0xffe00000) == 0xbc600000)
   1205      1.1  christos               { itype = OR1K32BF_INSN_L_SFGEUI; goto extract_sfmt_l_sfgtsi; }
   1206      1.1  christos             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1207      1.1  christos           case 4 :
   1208      1.1  christos             if ((entire_insn & 0xffe00000) == 0xbc800000)
   1209      1.1  christos               { itype = OR1K32BF_INSN_L_SFLTUI; goto extract_sfmt_l_sfgtsi; }
   1210      1.1  christos             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1211      1.1  christos           case 5 :
   1212      1.1  christos             if ((entire_insn & 0xffe00000) == 0xbca00000)
   1213      1.1  christos               { itype = OR1K32BF_INSN_L_SFLEUI; goto extract_sfmt_l_sfgtsi; }
   1214      1.1  christos             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1215      1.1  christos           case 10 :
   1216      1.1  christos             if ((entire_insn & 0xffe00000) == 0xbd400000)
   1217      1.1  christos               { itype = OR1K32BF_INSN_L_SFGTSI; goto extract_sfmt_l_sfgtsi; }
   1218      1.1  christos             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1219      1.1  christos           case 11 :
   1220      1.1  christos             if ((entire_insn & 0xffe00000) == 0xbd600000)
   1221      1.1  christos               { itype = OR1K32BF_INSN_L_SFGESI; goto extract_sfmt_l_sfgtsi; }
   1222      1.1  christos             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1223      1.1  christos           case 12 :
   1224      1.1  christos             if ((entire_insn & 0xffe00000) == 0xbd800000)
   1225      1.1  christos               { itype = OR1K32BF_INSN_L_SFLTSI; goto extract_sfmt_l_sfgtsi; }
   1226      1.1  christos             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1227      1.1  christos           case 13 :
   1228      1.1  christos             if ((entire_insn & 0xffe00000) == 0xbda00000)
   1229      1.1  christos               { itype = OR1K32BF_INSN_L_SFLESI; goto extract_sfmt_l_sfgtsi; }
   1230      1.1  christos             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1231      1.1  christos           default : itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1232      1.1  christos           }
   1233      1.1  christos         }
   1234      1.1  christos       case 1536 : /* fall through */
   1235      1.1  christos       case 1537 : /* fall through */
   1236      1.1  christos       case 1538 : /* fall through */
   1237      1.1  christos       case 1539 : /* fall through */
   1238      1.1  christos       case 1540 : /* fall through */
   1239      1.1  christos       case 1541 : /* fall through */
   1240      1.1  christos       case 1542 : /* fall through */
   1241      1.1  christos       case 1543 : /* fall through */
   1242      1.1  christos       case 1544 : /* fall through */
   1243      1.1  christos       case 1545 : /* fall through */
   1244      1.1  christos       case 1546 : /* fall through */
   1245      1.1  christos       case 1547 : /* fall through */
   1246      1.1  christos       case 1548 : /* fall through */
   1247      1.1  christos       case 1549 : /* fall through */
   1248      1.1  christos       case 1550 : /* fall through */
   1249      1.1  christos       case 1551 : /* fall through */
   1250      1.1  christos       case 1552 : /* fall through */
   1251      1.1  christos       case 1553 : /* fall through */
   1252      1.1  christos       case 1554 : /* fall through */
   1253      1.1  christos       case 1555 : /* fall through */
   1254      1.1  christos       case 1556 : /* fall through */
   1255      1.1  christos       case 1557 : /* fall through */
   1256      1.1  christos       case 1558 : /* fall through */
   1257      1.1  christos       case 1559 : /* fall through */
   1258      1.1  christos       case 1560 : /* fall through */
   1259      1.1  christos       case 1561 : /* fall through */
   1260      1.1  christos       case 1562 : /* fall through */
   1261      1.1  christos       case 1563 : /* fall through */
   1262      1.1  christos       case 1564 : /* fall through */
   1263      1.1  christos       case 1565 : /* fall through */
   1264      1.1  christos       case 1566 : /* fall through */
   1265      1.1  christos       case 1567 : itype = OR1K32BF_INSN_L_MTSPR; goto extract_sfmt_l_mtspr;
   1266      1.1  christos       case 1569 :
   1267      1.1  christos         if ((entire_insn & 0xffe007ff) == 0xc4000001)
   1268      1.1  christos           { itype = OR1K32BF_INSN_L_MAC; goto extract_sfmt_l_mac; }
   1269      1.1  christos         itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1270      1.1  christos       case 1570 :
   1271      1.1  christos         if ((entire_insn & 0xffe007ff) == 0xc4000002)
   1272      1.1  christos           { itype = OR1K32BF_INSN_L_MSB; goto extract_sfmt_l_mac; }
   1273      1.1  christos         itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1274      1.1  christos       case 1571 :
   1275      1.1  christos         if ((entire_insn & 0xffe007ff) == 0xc4000003)
   1276      1.1  christos           { itype = OR1K32BF_INSN_L_MACU; goto extract_sfmt_l_macu; }
   1277      1.1  christos         itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1278      1.1  christos       case 1572 :
   1279      1.1  christos         if ((entire_insn & 0xffe007ff) == 0xc4000004)
   1280      1.1  christos           { itype = OR1K32BF_INSN_L_MSBU; goto extract_sfmt_l_macu; }
   1281      1.1  christos         itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1282      1.1  christos       case 1600 :
   1283  1.1.1.2  christos         {
   1284  1.1.1.2  christos           unsigned int val = (((insn >> 5) & (7 << 0)));
   1285  1.1.1.2  christos           switch (val)
   1286  1.1.1.2  christos           {
   1287  1.1.1.2  christos           case 0 :
   1288  1.1.1.2  christos             if ((entire_insn & 0xfc0007ff) == 0xc8000000)
   1289  1.1.1.2  christos               { itype = OR1K32BF_INSN_LF_ADD_S; goto extract_sfmt_lf_add_s; }
   1290  1.1.1.2  christos             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1291  1.1.1.2  christos           case 7 :
   1292  1.1.1.2  christos             if ((entire_insn & 0xffe004ff) == 0xc80000e0)
   1293  1.1.1.2  christos               { itype = OR1K32BF_INSN_LF_CUST1_D32; goto extract_sfmt_l_msync; }
   1294  1.1.1.2  christos             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1295  1.1.1.2  christos           default : itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1296  1.1.1.2  christos           }
   1297  1.1.1.2  christos         }
   1298      1.1  christos       case 1601 :
   1299      1.1  christos         if ((entire_insn & 0xfc0007ff) == 0xc8000001)
   1300      1.1  christos           { itype = OR1K32BF_INSN_LF_SUB_S; goto extract_sfmt_lf_add_s; }
   1301      1.1  christos         itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1302      1.1  christos       case 1602 :
   1303      1.1  christos         if ((entire_insn & 0xfc0007ff) == 0xc8000002)
   1304      1.1  christos           { itype = OR1K32BF_INSN_LF_MUL_S; goto extract_sfmt_lf_add_s; }
   1305      1.1  christos         itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1306      1.1  christos       case 1603 :
   1307      1.1  christos         if ((entire_insn & 0xfc0007ff) == 0xc8000003)
   1308      1.1  christos           { itype = OR1K32BF_INSN_LF_DIV_S; goto extract_sfmt_lf_add_s; }
   1309      1.1  christos         itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1310      1.1  christos       case 1604 :
   1311      1.1  christos         if ((entire_insn & 0xfc00ffff) == 0xc8000004)
   1312      1.1  christos           { itype = OR1K32BF_INSN_LF_ITOF_S; goto extract_sfmt_lf_itof_s; }
   1313      1.1  christos         itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1314      1.1  christos       case 1605 :
   1315      1.1  christos         if ((entire_insn & 0xfc00ffff) == 0xc8000005)
   1316      1.1  christos           { itype = OR1K32BF_INSN_LF_FTOI_S; goto extract_sfmt_lf_ftoi_s; }
   1317      1.1  christos         itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1318      1.1  christos       case 1606 :
   1319      1.1  christos         if ((entire_insn & 0xfc0007ff) == 0xc8000006)
   1320      1.1  christos           { itype = OR1K32BF_INSN_LF_REM_S; goto extract_sfmt_lf_add_s; }
   1321      1.1  christos         itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1322      1.1  christos       case 1607 :
   1323      1.1  christos         if ((entire_insn & 0xfc0007ff) == 0xc8000007)
   1324      1.1  christos           { itype = OR1K32BF_INSN_LF_MADD_S; goto extract_sfmt_lf_madd_s; }
   1325      1.1  christos         itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1326      1.1  christos       case 1608 :
   1327  1.1.1.2  christos         {
   1328  1.1.1.2  christos           unsigned int val = (((insn >> 5) & (1 << 0)));
   1329  1.1.1.2  christos           switch (val)
   1330  1.1.1.2  christos           {
   1331  1.1.1.2  christos           case 0 :
   1332  1.1.1.2  christos             if ((entire_insn & 0xffe007ff) == 0xc8000008)
   1333  1.1.1.2  christos               { itype = OR1K32BF_INSN_LF_SFEQ_S; goto extract_sfmt_lf_sfeq_s; }
   1334  1.1.1.2  christos             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1335  1.1.1.2  christos           case 1 :
   1336  1.1.1.2  christos             if ((entire_insn & 0xffe007ff) == 0xc8000028)
   1337  1.1.1.2  christos               { itype = OR1K32BF_INSN_LF_SFUEQ_S; goto extract_sfmt_lf_sfeq_s; }
   1338  1.1.1.2  christos             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1339  1.1.1.2  christos           default : itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1340  1.1.1.2  christos           }
   1341  1.1.1.2  christos         }
   1342      1.1  christos       case 1609 :
   1343  1.1.1.2  christos         {
   1344  1.1.1.2  christos           unsigned int val = (((insn >> 5) & (1 << 0)));
   1345  1.1.1.2  christos           switch (val)
   1346  1.1.1.2  christos           {
   1347  1.1.1.2  christos           case 0 :
   1348  1.1.1.2  christos             if ((entire_insn & 0xffe007ff) == 0xc8000009)
   1349  1.1.1.2  christos               { itype = OR1K32BF_INSN_LF_SFNE_S; goto extract_sfmt_lf_sfeq_s; }
   1350  1.1.1.2  christos             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1351  1.1.1.2  christos           case 1 :
   1352  1.1.1.2  christos             if ((entire_insn & 0xffe007ff) == 0xc8000029)
   1353  1.1.1.2  christos               { itype = OR1K32BF_INSN_LF_SFUNE_S; goto extract_sfmt_lf_sfeq_s; }
   1354  1.1.1.2  christos             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1355  1.1.1.2  christos           default : itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1356  1.1.1.2  christos           }
   1357  1.1.1.2  christos         }
   1358      1.1  christos       case 1610 :
   1359  1.1.1.2  christos         {
   1360  1.1.1.2  christos           unsigned int val = (((insn >> 5) & (1 << 0)));
   1361  1.1.1.2  christos           switch (val)
   1362  1.1.1.2  christos           {
   1363  1.1.1.2  christos           case 0 :
   1364  1.1.1.2  christos             if ((entire_insn & 0xffe007ff) == 0xc800000a)
   1365  1.1.1.2  christos               { itype = OR1K32BF_INSN_LF_SFGT_S; goto extract_sfmt_lf_sfeq_s; }
   1366  1.1.1.2  christos             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1367  1.1.1.2  christos           case 1 :
   1368  1.1.1.2  christos             if ((entire_insn & 0xffe007ff) == 0xc800002a)
   1369  1.1.1.2  christos               { itype = OR1K32BF_INSN_LF_SFUGT_S; goto extract_sfmt_lf_sfeq_s; }
   1370  1.1.1.2  christos             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1371  1.1.1.2  christos           default : itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1372  1.1.1.2  christos           }
   1373  1.1.1.2  christos         }
   1374      1.1  christos       case 1611 :
   1375  1.1.1.2  christos         {
   1376  1.1.1.2  christos           unsigned int val = (((insn >> 5) & (1 << 0)));
   1377  1.1.1.2  christos           switch (val)
   1378  1.1.1.2  christos           {
   1379  1.1.1.2  christos           case 0 :
   1380  1.1.1.2  christos             if ((entire_insn & 0xffe007ff) == 0xc800000b)
   1381  1.1.1.2  christos               { itype = OR1K32BF_INSN_LF_SFGE_S; goto extract_sfmt_lf_sfeq_s; }
   1382  1.1.1.2  christos             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1383  1.1.1.2  christos           case 1 :
   1384  1.1.1.2  christos             if ((entire_insn & 0xffe007ff) == 0xc800002b)
   1385  1.1.1.2  christos               { itype = OR1K32BF_INSN_LF_SFUGE_S; goto extract_sfmt_lf_sfeq_s; }
   1386  1.1.1.2  christos             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1387  1.1.1.2  christos           default : itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1388  1.1.1.2  christos           }
   1389  1.1.1.2  christos         }
   1390      1.1  christos       case 1612 :
   1391  1.1.1.2  christos         {
   1392  1.1.1.2  christos           unsigned int val = (((insn >> 5) & (1 << 0)));
   1393  1.1.1.2  christos           switch (val)
   1394  1.1.1.2  christos           {
   1395  1.1.1.2  christos           case 0 :
   1396  1.1.1.2  christos             if ((entire_insn & 0xffe007ff) == 0xc800000c)
   1397  1.1.1.2  christos               { itype = OR1K32BF_INSN_LF_SFLT_S; goto extract_sfmt_lf_sfeq_s; }
   1398  1.1.1.2  christos             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1399  1.1.1.2  christos           case 1 :
   1400  1.1.1.2  christos             if ((entire_insn & 0xffe007ff) == 0xc800002c)
   1401  1.1.1.2  christos               { itype = OR1K32BF_INSN_LF_SFULT_S; goto extract_sfmt_lf_sfeq_s; }
   1402  1.1.1.2  christos             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1403  1.1.1.2  christos           default : itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1404  1.1.1.2  christos           }
   1405  1.1.1.2  christos         }
   1406      1.1  christos       case 1613 :
   1407  1.1.1.2  christos         {
   1408  1.1.1.2  christos           unsigned int val = (((insn >> 5) & (1 << 0)));
   1409  1.1.1.2  christos           switch (val)
   1410  1.1.1.2  christos           {
   1411  1.1.1.2  christos           case 0 :
   1412  1.1.1.2  christos             if ((entire_insn & 0xffe007ff) == 0xc800000d)
   1413  1.1.1.2  christos               { itype = OR1K32BF_INSN_LF_SFLE_S; goto extract_sfmt_lf_sfeq_s; }
   1414  1.1.1.2  christos             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1415  1.1.1.2  christos           case 1 :
   1416  1.1.1.2  christos             if ((entire_insn & 0xffe007ff) == 0xc800002d)
   1417  1.1.1.2  christos               { itype = OR1K32BF_INSN_LF_SFULE_S; goto extract_sfmt_lf_sfeq_s; }
   1418  1.1.1.2  christos             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1419  1.1.1.2  christos           default : itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1420  1.1.1.2  christos           }
   1421  1.1.1.2  christos         }
   1422  1.1.1.2  christos       case 1614 :
   1423  1.1.1.2  christos         if ((entire_insn & 0xffe007ff) == 0xc800002e)
   1424  1.1.1.2  christos           { itype = OR1K32BF_INSN_LF_SFUN_S; goto extract_sfmt_lf_sfeq_s; }
   1425      1.1  christos         itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1426      1.1  christos       case 1616 :
   1427  1.1.1.2  christos         {
   1428  1.1.1.2  christos           unsigned int val = (((insn >> 6) & (3 << 0)));
   1429  1.1.1.2  christos           switch (val)
   1430  1.1.1.2  christos           {
   1431  1.1.1.2  christos           case 0 :
   1432  1.1.1.2  christos             if ((entire_insn & 0xfc0000ff) == 0xc8000010)
   1433  1.1.1.2  christos               { itype = OR1K32BF_INSN_LF_ADD_D32; goto extract_sfmt_lf_add_d32; }
   1434  1.1.1.2  christos             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1435  1.1.1.2  christos           case 3 :
   1436  1.1.1.2  christos             if ((entire_insn & 0xffe007ff) == 0xc80000d0)
   1437  1.1.1.2  christos               { itype = OR1K32BF_INSN_LF_CUST1_S; goto extract_sfmt_l_msync; }
   1438  1.1.1.2  christos             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1439  1.1.1.2  christos           default : itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1440  1.1.1.2  christos           }
   1441  1.1.1.2  christos         }
   1442  1.1.1.2  christos       case 1617 :
   1443  1.1.1.2  christos         if ((entire_insn & 0xfc0000ff) == 0xc8000011)
   1444  1.1.1.2  christos           { itype = OR1K32BF_INSN_LF_SUB_D32; goto extract_sfmt_lf_add_d32; }
   1445  1.1.1.2  christos         itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1446  1.1.1.2  christos       case 1618 :
   1447  1.1.1.2  christos         if ((entire_insn & 0xfc0000ff) == 0xc8000012)
   1448  1.1.1.2  christos           { itype = OR1K32BF_INSN_LF_MUL_D32; goto extract_sfmt_lf_add_d32; }
   1449  1.1.1.2  christos         itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1450  1.1.1.2  christos       case 1619 :
   1451  1.1.1.2  christos         if ((entire_insn & 0xfc0000ff) == 0xc8000013)
   1452  1.1.1.2  christos           { itype = OR1K32BF_INSN_LF_DIV_D32; goto extract_sfmt_lf_add_d32; }
   1453  1.1.1.2  christos         itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1454  1.1.1.2  christos       case 1620 :
   1455  1.1.1.2  christos         if ((entire_insn & 0xfc00f9ff) == 0xc8000014)
   1456  1.1.1.2  christos           { itype = OR1K32BF_INSN_LF_ITOF_D32; goto extract_sfmt_lf_itof_d32; }
   1457  1.1.1.2  christos         itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1458  1.1.1.2  christos       case 1621 :
   1459  1.1.1.2  christos         if ((entire_insn & 0xfc00f9ff) == 0xc8000015)
   1460  1.1.1.2  christos           { itype = OR1K32BF_INSN_LF_FTOI_D32; goto extract_sfmt_lf_ftoi_d32; }
   1461  1.1.1.2  christos         itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1462  1.1.1.2  christos       case 1622 :
   1463  1.1.1.2  christos         if ((entire_insn & 0xfc0000ff) == 0xc8000016)
   1464  1.1.1.2  christos           { itype = OR1K32BF_INSN_LF_REM_D32; goto extract_sfmt_lf_add_d32; }
   1465  1.1.1.2  christos         itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1466  1.1.1.2  christos       case 1623 :
   1467  1.1.1.2  christos         if ((entire_insn & 0xfc0000ff) == 0xc8000017)
   1468  1.1.1.2  christos           { itype = OR1K32BF_INSN_LF_MADD_D32; goto extract_sfmt_lf_madd_d32; }
   1469  1.1.1.2  christos         itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1470  1.1.1.2  christos       case 1624 :
   1471  1.1.1.2  christos         {
   1472  1.1.1.2  christos           unsigned int val = (((insn >> 5) & (1 << 0)));
   1473  1.1.1.2  christos           switch (val)
   1474  1.1.1.2  christos           {
   1475  1.1.1.2  christos           case 0 :
   1476  1.1.1.2  christos             if ((entire_insn & 0xffe004ff) == 0xc8000018)
   1477  1.1.1.2  christos               { itype = OR1K32BF_INSN_LF_SFEQ_D32; goto extract_sfmt_lf_sfeq_d32; }
   1478  1.1.1.2  christos             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1479  1.1.1.2  christos           case 1 :
   1480  1.1.1.2  christos             if ((entire_insn & 0xffe004ff) == 0xc8000038)
   1481  1.1.1.2  christos               { itype = OR1K32BF_INSN_LF_SFUEQ_D32; goto extract_sfmt_lf_sfeq_d32; }
   1482  1.1.1.2  christos             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1483  1.1.1.2  christos           default : itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1484  1.1.1.2  christos           }
   1485  1.1.1.2  christos         }
   1486  1.1.1.2  christos       case 1625 :
   1487  1.1.1.2  christos         {
   1488  1.1.1.2  christos           unsigned int val = (((insn >> 5) & (1 << 0)));
   1489  1.1.1.2  christos           switch (val)
   1490  1.1.1.2  christos           {
   1491  1.1.1.2  christos           case 0 :
   1492  1.1.1.2  christos             if ((entire_insn & 0xffe004ff) == 0xc8000019)
   1493  1.1.1.2  christos               { itype = OR1K32BF_INSN_LF_SFNE_D32; goto extract_sfmt_lf_sfeq_d32; }
   1494  1.1.1.2  christos             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1495  1.1.1.2  christos           case 1 :
   1496  1.1.1.2  christos             if ((entire_insn & 0xffe004ff) == 0xc8000039)
   1497  1.1.1.2  christos               { itype = OR1K32BF_INSN_LF_SFUNE_D32; goto extract_sfmt_lf_sfeq_d32; }
   1498  1.1.1.2  christos             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1499  1.1.1.2  christos           default : itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1500  1.1.1.2  christos           }
   1501  1.1.1.2  christos         }
   1502  1.1.1.2  christos       case 1626 :
   1503  1.1.1.2  christos         {
   1504  1.1.1.2  christos           unsigned int val = (((insn >> 5) & (1 << 0)));
   1505  1.1.1.2  christos           switch (val)
   1506  1.1.1.2  christos           {
   1507  1.1.1.2  christos           case 0 :
   1508  1.1.1.2  christos             if ((entire_insn & 0xffe004ff) == 0xc800001a)
   1509  1.1.1.2  christos               { itype = OR1K32BF_INSN_LF_SFGT_D32; goto extract_sfmt_lf_sfeq_d32; }
   1510  1.1.1.2  christos             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1511  1.1.1.2  christos           case 1 :
   1512  1.1.1.2  christos             if ((entire_insn & 0xffe004ff) == 0xc800003a)
   1513  1.1.1.2  christos               { itype = OR1K32BF_INSN_LF_SFUGT_D32; goto extract_sfmt_lf_sfeq_d32; }
   1514  1.1.1.2  christos             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1515  1.1.1.2  christos           default : itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1516  1.1.1.2  christos           }
   1517  1.1.1.2  christos         }
   1518  1.1.1.2  christos       case 1627 :
   1519  1.1.1.2  christos         {
   1520  1.1.1.2  christos           unsigned int val = (((insn >> 5) & (1 << 0)));
   1521  1.1.1.2  christos           switch (val)
   1522  1.1.1.2  christos           {
   1523  1.1.1.2  christos           case 0 :
   1524  1.1.1.2  christos             if ((entire_insn & 0xffe004ff) == 0xc800001b)
   1525  1.1.1.2  christos               { itype = OR1K32BF_INSN_LF_SFGE_D32; goto extract_sfmt_lf_sfeq_d32; }
   1526  1.1.1.2  christos             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1527  1.1.1.2  christos           case 1 :
   1528  1.1.1.2  christos             if ((entire_insn & 0xffe004ff) == 0xc800003b)
   1529  1.1.1.2  christos               { itype = OR1K32BF_INSN_LF_SFUGE_D32; goto extract_sfmt_lf_sfeq_d32; }
   1530  1.1.1.2  christos             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1531  1.1.1.2  christos           default : itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1532  1.1.1.2  christos           }
   1533  1.1.1.2  christos         }
   1534  1.1.1.2  christos       case 1628 :
   1535  1.1.1.2  christos         {
   1536  1.1.1.2  christos           unsigned int val = (((insn >> 5) & (1 << 0)));
   1537  1.1.1.2  christos           switch (val)
   1538  1.1.1.2  christos           {
   1539  1.1.1.2  christos           case 0 :
   1540  1.1.1.2  christos             if ((entire_insn & 0xffe004ff) == 0xc800001c)
   1541  1.1.1.2  christos               { itype = OR1K32BF_INSN_LF_SFLT_D32; goto extract_sfmt_lf_sfeq_d32; }
   1542  1.1.1.2  christos             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1543  1.1.1.2  christos           case 1 :
   1544  1.1.1.2  christos             if ((entire_insn & 0xffe004ff) == 0xc800003c)
   1545  1.1.1.2  christos               { itype = OR1K32BF_INSN_LF_SFULT_D32; goto extract_sfmt_lf_sfeq_d32; }
   1546  1.1.1.2  christos             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1547  1.1.1.2  christos           default : itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1548  1.1.1.2  christos           }
   1549  1.1.1.2  christos         }
   1550  1.1.1.2  christos       case 1629 :
   1551  1.1.1.2  christos         {
   1552  1.1.1.2  christos           unsigned int val = (((insn >> 5) & (1 << 0)));
   1553  1.1.1.2  christos           switch (val)
   1554  1.1.1.2  christos           {
   1555  1.1.1.2  christos           case 0 :
   1556  1.1.1.2  christos             if ((entire_insn & 0xffe004ff) == 0xc800001d)
   1557  1.1.1.2  christos               { itype = OR1K32BF_INSN_LF_SFLE_D32; goto extract_sfmt_lf_sfeq_d32; }
   1558  1.1.1.2  christos             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1559  1.1.1.2  christos           case 1 :
   1560  1.1.1.2  christos             if ((entire_insn & 0xffe004ff) == 0xc800003d)
   1561  1.1.1.2  christos               { itype = OR1K32BF_INSN_LF_SFULE_D32; goto extract_sfmt_lf_sfeq_d32; }
   1562  1.1.1.2  christos             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1563  1.1.1.2  christos           default : itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1564  1.1.1.2  christos           }
   1565  1.1.1.2  christos         }
   1566  1.1.1.2  christos       case 1630 :
   1567  1.1.1.2  christos         if ((entire_insn & 0xffe004ff) == 0xc800003e)
   1568  1.1.1.2  christos           { itype = OR1K32BF_INSN_LF_SFUN_D32; goto extract_sfmt_lf_sfeq_d32; }
   1569      1.1  christos         itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1570      1.1  christos       case 1632 : /* fall through */
   1571      1.1  christos       case 1633 : /* fall through */
   1572      1.1  christos       case 1634 : /* fall through */
   1573      1.1  christos       case 1635 : /* fall through */
   1574      1.1  christos       case 1636 : /* fall through */
   1575      1.1  christos       case 1637 : /* fall through */
   1576      1.1  christos       case 1638 : /* fall through */
   1577      1.1  christos       case 1639 : /* fall through */
   1578      1.1  christos       case 1640 : /* fall through */
   1579      1.1  christos       case 1641 : /* fall through */
   1580      1.1  christos       case 1642 : /* fall through */
   1581      1.1  christos       case 1643 : /* fall through */
   1582      1.1  christos       case 1644 : /* fall through */
   1583      1.1  christos       case 1645 : /* fall through */
   1584      1.1  christos       case 1646 : /* fall through */
   1585      1.1  christos       case 1647 : /* fall through */
   1586      1.1  christos       case 1648 : /* fall through */
   1587      1.1  christos       case 1649 : /* fall through */
   1588      1.1  christos       case 1650 : /* fall through */
   1589      1.1  christos       case 1651 : /* fall through */
   1590      1.1  christos       case 1652 : /* fall through */
   1591      1.1  christos       case 1653 : /* fall through */
   1592      1.1  christos       case 1654 : /* fall through */
   1593      1.1  christos       case 1655 : /* fall through */
   1594      1.1  christos       case 1656 : /* fall through */
   1595      1.1  christos       case 1657 : /* fall through */
   1596      1.1  christos       case 1658 : /* fall through */
   1597      1.1  christos       case 1659 : /* fall through */
   1598      1.1  christos       case 1660 : /* fall through */
   1599      1.1  christos       case 1661 : /* fall through */
   1600      1.1  christos       case 1662 : /* fall through */
   1601      1.1  christos       case 1663 : itype = OR1K32BF_INSN_L_SWA; goto extract_sfmt_l_swa;
   1602      1.1  christos       case 1696 : /* fall through */
   1603      1.1  christos       case 1697 : /* fall through */
   1604      1.1  christos       case 1698 : /* fall through */
   1605      1.1  christos       case 1699 : /* fall through */
   1606      1.1  christos       case 1700 : /* fall through */
   1607      1.1  christos       case 1701 : /* fall through */
   1608      1.1  christos       case 1702 : /* fall through */
   1609      1.1  christos       case 1703 : /* fall through */
   1610      1.1  christos       case 1704 : /* fall through */
   1611      1.1  christos       case 1705 : /* fall through */
   1612      1.1  christos       case 1706 : /* fall through */
   1613      1.1  christos       case 1707 : /* fall through */
   1614      1.1  christos       case 1708 : /* fall through */
   1615      1.1  christos       case 1709 : /* fall through */
   1616      1.1  christos       case 1710 : /* fall through */
   1617      1.1  christos       case 1711 : /* fall through */
   1618      1.1  christos       case 1712 : /* fall through */
   1619      1.1  christos       case 1713 : /* fall through */
   1620      1.1  christos       case 1714 : /* fall through */
   1621      1.1  christos       case 1715 : /* fall through */
   1622      1.1  christos       case 1716 : /* fall through */
   1623      1.1  christos       case 1717 : /* fall through */
   1624      1.1  christos       case 1718 : /* fall through */
   1625      1.1  christos       case 1719 : /* fall through */
   1626      1.1  christos       case 1720 : /* fall through */
   1627      1.1  christos       case 1721 : /* fall through */
   1628      1.1  christos       case 1722 : /* fall through */
   1629      1.1  christos       case 1723 : /* fall through */
   1630      1.1  christos       case 1724 : /* fall through */
   1631      1.1  christos       case 1725 : /* fall through */
   1632      1.1  christos       case 1726 : /* fall through */
   1633      1.1  christos       case 1727 : itype = OR1K32BF_INSN_L_SW; goto extract_sfmt_l_sw;
   1634      1.1  christos       case 1728 : /* fall through */
   1635      1.1  christos       case 1729 : /* fall through */
   1636      1.1  christos       case 1730 : /* fall through */
   1637      1.1  christos       case 1731 : /* fall through */
   1638      1.1  christos       case 1732 : /* fall through */
   1639      1.1  christos       case 1733 : /* fall through */
   1640      1.1  christos       case 1734 : /* fall through */
   1641      1.1  christos       case 1735 : /* fall through */
   1642      1.1  christos       case 1736 : /* fall through */
   1643      1.1  christos       case 1737 : /* fall through */
   1644      1.1  christos       case 1738 : /* fall through */
   1645      1.1  christos       case 1739 : /* fall through */
   1646      1.1  christos       case 1740 : /* fall through */
   1647      1.1  christos       case 1741 : /* fall through */
   1648      1.1  christos       case 1742 : /* fall through */
   1649      1.1  christos       case 1743 : /* fall through */
   1650      1.1  christos       case 1744 : /* fall through */
   1651      1.1  christos       case 1745 : /* fall through */
   1652      1.1  christos       case 1746 : /* fall through */
   1653      1.1  christos       case 1747 : /* fall through */
   1654      1.1  christos       case 1748 : /* fall through */
   1655      1.1  christos       case 1749 : /* fall through */
   1656      1.1  christos       case 1750 : /* fall through */
   1657      1.1  christos       case 1751 : /* fall through */
   1658      1.1  christos       case 1752 : /* fall through */
   1659      1.1  christos       case 1753 : /* fall through */
   1660      1.1  christos       case 1754 : /* fall through */
   1661      1.1  christos       case 1755 : /* fall through */
   1662      1.1  christos       case 1756 : /* fall through */
   1663      1.1  christos       case 1757 : /* fall through */
   1664      1.1  christos       case 1758 : /* fall through */
   1665      1.1  christos       case 1759 : itype = OR1K32BF_INSN_L_SB; goto extract_sfmt_l_sb;
   1666      1.1  christos       case 1760 : /* fall through */
   1667      1.1  christos       case 1761 : /* fall through */
   1668      1.1  christos       case 1762 : /* fall through */
   1669      1.1  christos       case 1763 : /* fall through */
   1670      1.1  christos       case 1764 : /* fall through */
   1671      1.1  christos       case 1765 : /* fall through */
   1672      1.1  christos       case 1766 : /* fall through */
   1673      1.1  christos       case 1767 : /* fall through */
   1674      1.1  christos       case 1768 : /* fall through */
   1675      1.1  christos       case 1769 : /* fall through */
   1676      1.1  christos       case 1770 : /* fall through */
   1677      1.1  christos       case 1771 : /* fall through */
   1678      1.1  christos       case 1772 : /* fall through */
   1679      1.1  christos       case 1773 : /* fall through */
   1680      1.1  christos       case 1774 : /* fall through */
   1681      1.1  christos       case 1775 : /* fall through */
   1682      1.1  christos       case 1776 : /* fall through */
   1683      1.1  christos       case 1777 : /* fall through */
   1684      1.1  christos       case 1778 : /* fall through */
   1685      1.1  christos       case 1779 : /* fall through */
   1686      1.1  christos       case 1780 : /* fall through */
   1687      1.1  christos       case 1781 : /* fall through */
   1688      1.1  christos       case 1782 : /* fall through */
   1689      1.1  christos       case 1783 : /* fall through */
   1690      1.1  christos       case 1784 : /* fall through */
   1691      1.1  christos       case 1785 : /* fall through */
   1692      1.1  christos       case 1786 : /* fall through */
   1693      1.1  christos       case 1787 : /* fall through */
   1694      1.1  christos       case 1788 : /* fall through */
   1695      1.1  christos       case 1789 : /* fall through */
   1696      1.1  christos       case 1790 : /* fall through */
   1697      1.1  christos       case 1791 : itype = OR1K32BF_INSN_L_SH; goto extract_sfmt_l_sh;
   1698      1.1  christos       case 1792 :
   1699      1.1  christos         if ((entire_insn & 0xfc0007ff) == 0xe0000000)
   1700      1.1  christos           { itype = OR1K32BF_INSN_L_ADD; goto extract_sfmt_l_add; }
   1701      1.1  christos         itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1702      1.1  christos       case 1793 :
   1703      1.1  christos         if ((entire_insn & 0xfc0007ff) == 0xe0000001)
   1704      1.1  christos           { itype = OR1K32BF_INSN_L_ADDC; goto extract_sfmt_l_addc; }
   1705      1.1  christos         itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1706      1.1  christos       case 1794 :
   1707      1.1  christos         if ((entire_insn & 0xfc0007ff) == 0xe0000002)
   1708      1.1  christos           { itype = OR1K32BF_INSN_L_SUB; goto extract_sfmt_l_add; }
   1709      1.1  christos         itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1710      1.1  christos       case 1795 :
   1711      1.1  christos         if ((entire_insn & 0xfc0007ff) == 0xe0000003)
   1712      1.1  christos           { itype = OR1K32BF_INSN_L_AND; goto extract_sfmt_l_and; }
   1713      1.1  christos         itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1714      1.1  christos       case 1796 :
   1715      1.1  christos         if ((entire_insn & 0xfc0007ff) == 0xe0000004)
   1716      1.1  christos           { itype = OR1K32BF_INSN_L_OR; goto extract_sfmt_l_and; }
   1717      1.1  christos         itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1718      1.1  christos       case 1797 :
   1719      1.1  christos         if ((entire_insn & 0xfc0007ff) == 0xe0000005)
   1720      1.1  christos           { itype = OR1K32BF_INSN_L_XOR; goto extract_sfmt_l_and; }
   1721      1.1  christos         itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1722      1.1  christos       case 1798 :
   1723      1.1  christos         if ((entire_insn & 0xfc0007ff) == 0xe0000306)
   1724      1.1  christos           { itype = OR1K32BF_INSN_L_MUL; goto extract_sfmt_l_mul; }
   1725      1.1  christos         itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1726      1.1  christos       case 1799 :
   1727      1.1  christos         if ((entire_insn & 0xffe007ff) == 0xe0000307)
   1728      1.1  christos           { itype = OR1K32BF_INSN_L_MULD; goto extract_sfmt_l_muld; }
   1729      1.1  christos         itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1730      1.1  christos       case 1800 :
   1731      1.1  christos         {
   1732  1.1.1.2  christos           unsigned int val = (((insn >> 6) & (3 << 0)));
   1733      1.1  christos           switch (val)
   1734      1.1  christos           {
   1735      1.1  christos           case 0 :
   1736      1.1  christos             if ((entire_insn & 0xfc0007ff) == 0xe0000008)
   1737      1.1  christos               { itype = OR1K32BF_INSN_L_SLL; goto extract_sfmt_l_sll; }
   1738      1.1  christos             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1739      1.1  christos           case 1 :
   1740  1.1.1.2  christos             if ((entire_insn & 0xfc0007ff) == 0xe0000048)
   1741  1.1.1.2  christos               { itype = OR1K32BF_INSN_L_SRL; goto extract_sfmt_l_sll; }
   1742  1.1.1.2  christos             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1743  1.1.1.2  christos           case 2 :
   1744      1.1  christos             if ((entire_insn & 0xfc0007ff) == 0xe0000088)
   1745      1.1  christos               { itype = OR1K32BF_INSN_L_SRA; goto extract_sfmt_l_sll; }
   1746      1.1  christos             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1747  1.1.1.2  christos           case 3 :
   1748  1.1.1.2  christos             if ((entire_insn & 0xfc0007ff) == 0xe00000c8)
   1749  1.1.1.2  christos               { itype = OR1K32BF_INSN_L_ROR; goto extract_sfmt_l_sll; }
   1750  1.1.1.2  christos             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1751      1.1  christos           default : itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1752      1.1  christos           }
   1753      1.1  christos         }
   1754      1.1  christos       case 1801 :
   1755      1.1  christos         if ((entire_insn & 0xfc0007ff) == 0xe0000309)
   1756      1.1  christos           { itype = OR1K32BF_INSN_L_DIV; goto extract_sfmt_l_div; }
   1757      1.1  christos         itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1758      1.1  christos       case 1802 :
   1759      1.1  christos         if ((entire_insn & 0xfc0007ff) == 0xe000030a)
   1760      1.1  christos           { itype = OR1K32BF_INSN_L_DIVU; goto extract_sfmt_l_divu; }
   1761      1.1  christos         itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1762      1.1  christos       case 1803 :
   1763      1.1  christos         if ((entire_insn & 0xfc0007ff) == 0xe000030b)
   1764      1.1  christos           { itype = OR1K32BF_INSN_L_MULU; goto extract_sfmt_l_mulu; }
   1765      1.1  christos         itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1766      1.1  christos       case 1804 :
   1767      1.1  christos         {
   1768  1.1.1.2  christos           unsigned int val = (((insn >> 6) & (3 << 0)));
   1769      1.1  christos           switch (val)
   1770      1.1  christos           {
   1771      1.1  christos           case 0 :
   1772      1.1  christos             if ((entire_insn & 0xfc00ffff) == 0xe000000c)
   1773      1.1  christos               { itype = OR1K32BF_INSN_L_EXTHS; goto extract_sfmt_l_exths; }
   1774      1.1  christos             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1775      1.1  christos           case 1 :
   1776  1.1.1.2  christos             if ((entire_insn & 0xfc00ffff) == 0xe000004c)
   1777  1.1.1.2  christos               { itype = OR1K32BF_INSN_L_EXTBS; goto extract_sfmt_l_exths; }
   1778  1.1.1.2  christos             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1779  1.1.1.2  christos           case 2 :
   1780      1.1  christos             if ((entire_insn & 0xfc00ffff) == 0xe000008c)
   1781      1.1  christos               { itype = OR1K32BF_INSN_L_EXTHZ; goto extract_sfmt_l_exths; }
   1782      1.1  christos             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1783  1.1.1.2  christos           case 3 :
   1784  1.1.1.2  christos             if ((entire_insn & 0xfc00ffff) == 0xe00000cc)
   1785  1.1.1.2  christos               { itype = OR1K32BF_INSN_L_EXTBZ; goto extract_sfmt_l_exths; }
   1786  1.1.1.2  christos             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1787      1.1  christos           default : itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1788      1.1  christos           }
   1789      1.1  christos         }
   1790      1.1  christos       case 1805 :
   1791      1.1  christos         {
   1792  1.1.1.2  christos           unsigned int val = (((insn >> 7) & (3 << 1)) | ((insn >> 6) & (1 << 0)));
   1793      1.1  christos           switch (val)
   1794      1.1  christos           {
   1795      1.1  christos           case 0 :
   1796      1.1  christos             if ((entire_insn & 0xfc00ffff) == 0xe000000d)
   1797      1.1  christos               { itype = OR1K32BF_INSN_L_EXTWS; goto extract_sfmt_l_exths; }
   1798      1.1  christos             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1799  1.1.1.2  christos           case 1 :
   1800  1.1.1.2  christos             if ((entire_insn & 0xfc00ffff) == 0xe000004d)
   1801  1.1.1.2  christos               { itype = OR1K32BF_INSN_L_EXTWZ; goto extract_sfmt_l_exths; }
   1802  1.1.1.2  christos             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1803  1.1.1.2  christos           case 6 :
   1804      1.1  christos             if ((entire_insn & 0xffe007ff) == 0xe000030d)
   1805      1.1  christos               { itype = OR1K32BF_INSN_L_MULDU; goto extract_sfmt_l_muld; }
   1806      1.1  christos             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1807      1.1  christos           default : itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1808      1.1  christos           }
   1809      1.1  christos         }
   1810      1.1  christos       case 1806 :
   1811      1.1  christos         if ((entire_insn & 0xfc0007ff) == 0xe000000e)
   1812      1.1  christos           { itype = OR1K32BF_INSN_L_CMOV; goto extract_sfmt_l_cmov; }
   1813      1.1  christos         itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1814      1.1  christos       case 1807 :
   1815      1.1  christos         {
   1816      1.1  christos           unsigned int val = (((insn >> 8) & (1 << 0)));
   1817      1.1  christos           switch (val)
   1818      1.1  christos           {
   1819      1.1  christos           case 0 :
   1820      1.1  christos             if ((entire_insn & 0xfc0007ff) == 0xe000000f)
   1821      1.1  christos               { itype = OR1K32BF_INSN_L_FF1; goto extract_sfmt_l_ff1; }
   1822      1.1  christos             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1823      1.1  christos           case 1 :
   1824      1.1  christos             if ((entire_insn & 0xfc0007ff) == 0xe000010f)
   1825      1.1  christos               { itype = OR1K32BF_INSN_L_FL1; goto extract_sfmt_l_ff1; }
   1826      1.1  christos             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1827      1.1  christos           default : itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1828      1.1  christos           }
   1829      1.1  christos         }
   1830      1.1  christos       case 1824 :
   1831      1.1  christos         {
   1832      1.1  christos           unsigned int val = (((insn >> 21) & (15 << 0)));
   1833      1.1  christos           switch (val)
   1834      1.1  christos           {
   1835      1.1  christos           case 0 :
   1836      1.1  christos             if ((entire_insn & 0xffe007ff) == 0xe4000000)
   1837      1.1  christos               { itype = OR1K32BF_INSN_L_SFEQ; goto extract_sfmt_l_sfgts; }
   1838      1.1  christos             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1839      1.1  christos           case 1 :
   1840      1.1  christos             if ((entire_insn & 0xffe007ff) == 0xe4200000)
   1841      1.1  christos               { itype = OR1K32BF_INSN_L_SFNE; goto extract_sfmt_l_sfgts; }
   1842      1.1  christos             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1843      1.1  christos           case 2 :
   1844      1.1  christos             if ((entire_insn & 0xffe007ff) == 0xe4400000)
   1845      1.1  christos               { itype = OR1K32BF_INSN_L_SFGTU; goto extract_sfmt_l_sfgts; }
   1846      1.1  christos             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1847      1.1  christos           case 3 :
   1848      1.1  christos             if ((entire_insn & 0xffe007ff) == 0xe4600000)
   1849      1.1  christos               { itype = OR1K32BF_INSN_L_SFGEU; goto extract_sfmt_l_sfgts; }
   1850      1.1  christos             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1851      1.1  christos           case 4 :
   1852      1.1  christos             if ((entire_insn & 0xffe007ff) == 0xe4800000)
   1853      1.1  christos               { itype = OR1K32BF_INSN_L_SFLTU; goto extract_sfmt_l_sfgts; }
   1854      1.1  christos             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1855      1.1  christos           case 5 :
   1856      1.1  christos             if ((entire_insn & 0xffe007ff) == 0xe4a00000)
   1857      1.1  christos               { itype = OR1K32BF_INSN_L_SFLEU; goto extract_sfmt_l_sfgts; }
   1858      1.1  christos             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1859      1.1  christos           case 10 :
   1860      1.1  christos             if ((entire_insn & 0xffe007ff) == 0xe5400000)
   1861      1.1  christos               { itype = OR1K32BF_INSN_L_SFGTS; goto extract_sfmt_l_sfgts; }
   1862      1.1  christos             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1863      1.1  christos           case 11 :
   1864      1.1  christos             if ((entire_insn & 0xffe007ff) == 0xe5600000)
   1865      1.1  christos               { itype = OR1K32BF_INSN_L_SFGES; goto extract_sfmt_l_sfgts; }
   1866      1.1  christos             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1867      1.1  christos           case 12 :
   1868      1.1  christos             if ((entire_insn & 0xffe007ff) == 0xe5800000)
   1869      1.1  christos               { itype = OR1K32BF_INSN_L_SFLTS; goto extract_sfmt_l_sfgts; }
   1870      1.1  christos             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1871      1.1  christos           case 13 :
   1872      1.1  christos             if ((entire_insn & 0xffe007ff) == 0xe5a00000)
   1873      1.1  christos               { itype = OR1K32BF_INSN_L_SFLES; goto extract_sfmt_l_sfgts; }
   1874      1.1  christos             itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1875      1.1  christos           default : itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1876      1.1  christos           }
   1877      1.1  christos         }
   1878      1.1  christos       case 1920 :
   1879      1.1  christos         if ((entire_insn & 0xffffffff) == 0xf0000000)
   1880      1.1  christos           { itype = OR1K32BF_INSN_L_CUST5; goto extract_sfmt_l_msync; }
   1881      1.1  christos         itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1882      1.1  christos       case 1952 :
   1883      1.1  christos         if ((entire_insn & 0xffffffff) == 0xf4000000)
   1884      1.1  christos           { itype = OR1K32BF_INSN_L_CUST6; goto extract_sfmt_l_msync; }
   1885      1.1  christos         itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1886      1.1  christos       case 1984 :
   1887      1.1  christos         if ((entire_insn & 0xffffffff) == 0xf8000000)
   1888      1.1  christos           { itype = OR1K32BF_INSN_L_CUST7; goto extract_sfmt_l_msync; }
   1889      1.1  christos         itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1890      1.1  christos       case 2016 :
   1891      1.1  christos         if ((entire_insn & 0xffffffff) == 0xfc000000)
   1892      1.1  christos           { itype = OR1K32BF_INSN_L_CUST8; goto extract_sfmt_l_msync; }
   1893      1.1  christos         itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1894      1.1  christos       default : itype = OR1K32BF_INSN_X_INVALID; goto extract_sfmt_empty;
   1895      1.1  christos       }
   1896      1.1  christos     }
   1897      1.1  christos   }
   1898      1.1  christos 
   1899      1.1  christos   /* The instruction has been decoded, now extract the fields.  */
   1900      1.1  christos 
   1901      1.1  christos  extract_sfmt_empty:
   1902      1.1  christos   {
   1903      1.1  christos     const IDESC *idesc = &or1k32bf_insn_data[itype];
   1904      1.1  christos #define FLD(f) abuf->fields.sfmt_empty.f
   1905      1.1  christos 
   1906      1.1  christos 
   1907      1.1  christos   /* Record the fields for the semantic handler.  */
   1908      1.1  christos   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_empty", (char *) 0));
   1909      1.1  christos 
   1910      1.1  christos #undef FLD
   1911      1.1  christos     return idesc;
   1912      1.1  christos   }
   1913      1.1  christos 
   1914      1.1  christos  extract_sfmt_l_j:
   1915      1.1  christos   {
   1916      1.1  christos     const IDESC *idesc = &or1k32bf_insn_data[itype];
   1917      1.1  christos     CGEN_INSN_WORD insn = entire_insn;
   1918      1.1  christos #define FLD(f) abuf->fields.sfmt_l_j.f
   1919      1.1  christos     USI f_disp26;
   1920      1.1  christos 
   1921      1.1  christos     f_disp26 = ((((EXTRACT_LSB0_SINT (insn, 32, 25, 26)) << (2))) + (pc));
   1922      1.1  christos 
   1923      1.1  christos   /* Record the fields for the semantic handler.  */
   1924      1.1  christos   FLD (i_disp26) = f_disp26;
   1925      1.1  christos   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_j", "disp26 0x%x", 'x', f_disp26, (char *) 0));
   1926      1.1  christos 
   1927      1.1  christos #undef FLD
   1928      1.1  christos     return idesc;
   1929      1.1  christos   }
   1930      1.1  christos 
   1931      1.1  christos  extract_sfmt_l_adrp:
   1932      1.1  christos   {
   1933      1.1  christos     const IDESC *idesc = &or1k32bf_insn_data[itype];
   1934      1.1  christos     CGEN_INSN_WORD insn = entire_insn;
   1935      1.1  christos #define FLD(f) abuf->fields.sfmt_l_adrp.f
   1936      1.1  christos     UINT f_r1;
   1937      1.1  christos     USI f_disp21;
   1938      1.1  christos 
   1939      1.1  christos     f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
   1940      1.1  christos     f_disp21 = ((((EXTRACT_LSB0_SINT (insn, 32, 20, 21)) + (((SI) (pc) >> (13))))) << (13));
   1941      1.1  christos 
   1942      1.1  christos   /* Record the fields for the semantic handler.  */
   1943      1.1  christos   FLD (f_r1) = f_r1;
   1944      1.1  christos   FLD (i_disp21) = f_disp21;
   1945      1.1  christos   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_adrp", "f_r1 0x%x", 'x', f_r1, "disp21 0x%x", 'x', f_disp21, (char *) 0));
   1946      1.1  christos 
   1947      1.1  christos #undef FLD
   1948      1.1  christos     return idesc;
   1949      1.1  christos   }
   1950      1.1  christos 
   1951      1.1  christos  extract_sfmt_l_jal:
   1952      1.1  christos   {
   1953      1.1  christos     const IDESC *idesc = &or1k32bf_insn_data[itype];
   1954      1.1  christos     CGEN_INSN_WORD insn = entire_insn;
   1955      1.1  christos #define FLD(f) abuf->fields.sfmt_l_j.f
   1956      1.1  christos     USI f_disp26;
   1957      1.1  christos 
   1958      1.1  christos     f_disp26 = ((((EXTRACT_LSB0_SINT (insn, 32, 25, 26)) << (2))) + (pc));
   1959      1.1  christos 
   1960      1.1  christos   /* Record the fields for the semantic handler.  */
   1961      1.1  christos   FLD (i_disp26) = f_disp26;
   1962      1.1  christos   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_jal", "disp26 0x%x", 'x', f_disp26, (char *) 0));
   1963      1.1  christos 
   1964      1.1  christos #undef FLD
   1965      1.1  christos     return idesc;
   1966      1.1  christos   }
   1967      1.1  christos 
   1968      1.1  christos  extract_sfmt_l_jr:
   1969      1.1  christos   {
   1970      1.1  christos     const IDESC *idesc = &or1k32bf_insn_data[itype];
   1971      1.1  christos     CGEN_INSN_WORD insn = entire_insn;
   1972      1.1  christos #define FLD(f) abuf->fields.sfmt_l_sll.f
   1973      1.1  christos     UINT f_r3;
   1974      1.1  christos 
   1975      1.1  christos     f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5);
   1976      1.1  christos 
   1977      1.1  christos   /* Record the fields for the semantic handler.  */
   1978      1.1  christos   FLD (f_r3) = f_r3;
   1979      1.1  christos   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_jr", "f_r3 0x%x", 'x', f_r3, (char *) 0));
   1980      1.1  christos 
   1981      1.1  christos #undef FLD
   1982      1.1  christos     return idesc;
   1983      1.1  christos   }
   1984      1.1  christos 
   1985      1.1  christos  extract_sfmt_l_jalr:
   1986      1.1  christos   {
   1987      1.1  christos     const IDESC *idesc = &or1k32bf_insn_data[itype];
   1988      1.1  christos     CGEN_INSN_WORD insn = entire_insn;
   1989      1.1  christos #define FLD(f) abuf->fields.sfmt_l_sll.f
   1990      1.1  christos     UINT f_r3;
   1991      1.1  christos 
   1992      1.1  christos     f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5);
   1993      1.1  christos 
   1994      1.1  christos   /* Record the fields for the semantic handler.  */
   1995      1.1  christos   FLD (f_r3) = f_r3;
   1996      1.1  christos   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_jalr", "f_r3 0x%x", 'x', f_r3, (char *) 0));
   1997      1.1  christos 
   1998      1.1  christos #undef FLD
   1999      1.1  christos     return idesc;
   2000      1.1  christos   }
   2001      1.1  christos 
   2002      1.1  christos  extract_sfmt_l_bnf:
   2003      1.1  christos   {
   2004      1.1  christos     const IDESC *idesc = &or1k32bf_insn_data[itype];
   2005      1.1  christos     CGEN_INSN_WORD insn = entire_insn;
   2006      1.1  christos #define FLD(f) abuf->fields.sfmt_l_j.f
   2007      1.1  christos     USI f_disp26;
   2008      1.1  christos 
   2009      1.1  christos     f_disp26 = ((((EXTRACT_LSB0_SINT (insn, 32, 25, 26)) << (2))) + (pc));
   2010      1.1  christos 
   2011      1.1  christos   /* Record the fields for the semantic handler.  */
   2012      1.1  christos   FLD (i_disp26) = f_disp26;
   2013      1.1  christos   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_bnf", "disp26 0x%x", 'x', f_disp26, (char *) 0));
   2014      1.1  christos 
   2015      1.1  christos #undef FLD
   2016      1.1  christos     return idesc;
   2017      1.1  christos   }
   2018      1.1  christos 
   2019      1.1  christos  extract_sfmt_l_trap:
   2020      1.1  christos   {
   2021      1.1  christos     const IDESC *idesc = &or1k32bf_insn_data[itype];
   2022      1.1  christos #define FLD(f) abuf->fields.sfmt_empty.f
   2023      1.1  christos 
   2024      1.1  christos 
   2025      1.1  christos   /* Record the fields for the semantic handler.  */
   2026      1.1  christos   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_trap", (char *) 0));
   2027      1.1  christos 
   2028      1.1  christos #undef FLD
   2029      1.1  christos     return idesc;
   2030      1.1  christos   }
   2031      1.1  christos 
   2032      1.1  christos  extract_sfmt_l_msync:
   2033      1.1  christos   {
   2034      1.1  christos     const IDESC *idesc = &or1k32bf_insn_data[itype];
   2035      1.1  christos #define FLD(f) abuf->fields.sfmt_empty.f
   2036      1.1  christos 
   2037      1.1  christos 
   2038      1.1  christos   /* Record the fields for the semantic handler.  */
   2039      1.1  christos   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_msync", (char *) 0));
   2040      1.1  christos 
   2041      1.1  christos #undef FLD
   2042      1.1  christos     return idesc;
   2043      1.1  christos   }
   2044      1.1  christos 
   2045      1.1  christos  extract_sfmt_l_nop_imm:
   2046      1.1  christos   {
   2047      1.1  christos     const IDESC *idesc = &or1k32bf_insn_data[itype];
   2048      1.1  christos     CGEN_INSN_WORD insn = entire_insn;
   2049      1.1  christos #define FLD(f) abuf->fields.sfmt_l_mfspr.f
   2050      1.1  christos     UINT f_uimm16;
   2051      1.1  christos 
   2052      1.1  christos     f_uimm16 = EXTRACT_LSB0_UINT (insn, 32, 15, 16);
   2053      1.1  christos 
   2054      1.1  christos   /* Record the fields for the semantic handler.  */
   2055      1.1  christos   FLD (f_uimm16) = f_uimm16;
   2056      1.1  christos   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_nop_imm", "f_uimm16 0x%x", 'x', f_uimm16, (char *) 0));
   2057      1.1  christos 
   2058      1.1  christos #undef FLD
   2059      1.1  christos     return idesc;
   2060      1.1  christos   }
   2061      1.1  christos 
   2062      1.1  christos  extract_sfmt_l_movhi:
   2063      1.1  christos   {
   2064      1.1  christos     const IDESC *idesc = &or1k32bf_insn_data[itype];
   2065      1.1  christos     CGEN_INSN_WORD insn = entire_insn;
   2066      1.1  christos #define FLD(f) abuf->fields.sfmt_l_mfspr.f
   2067      1.1  christos     UINT f_r1;
   2068      1.1  christos     UINT f_uimm16;
   2069      1.1  christos 
   2070      1.1  christos     f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
   2071      1.1  christos     f_uimm16 = EXTRACT_LSB0_UINT (insn, 32, 15, 16);
   2072      1.1  christos 
   2073      1.1  christos   /* Record the fields for the semantic handler.  */
   2074      1.1  christos   FLD (f_uimm16) = f_uimm16;
   2075      1.1  christos   FLD (f_r1) = f_r1;
   2076      1.1  christos   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_movhi", "f_uimm16 0x%x", 'x', f_uimm16, "f_r1 0x%x", 'x', f_r1, (char *) 0));
   2077      1.1  christos 
   2078      1.1  christos #undef FLD
   2079      1.1  christos     return idesc;
   2080      1.1  christos   }
   2081      1.1  christos 
   2082      1.1  christos  extract_sfmt_l_macrc:
   2083      1.1  christos   {
   2084      1.1  christos     const IDESC *idesc = &or1k32bf_insn_data[itype];
   2085      1.1  christos     CGEN_INSN_WORD insn = entire_insn;
   2086      1.1  christos #define FLD(f) abuf->fields.sfmt_l_adrp.f
   2087      1.1  christos     UINT f_r1;
   2088      1.1  christos 
   2089      1.1  christos     f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
   2090      1.1  christos 
   2091      1.1  christos   /* Record the fields for the semantic handler.  */
   2092      1.1  christos   FLD (f_r1) = f_r1;
   2093      1.1  christos   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_macrc", "f_r1 0x%x", 'x', f_r1, (char *) 0));
   2094      1.1  christos 
   2095      1.1  christos #undef FLD
   2096      1.1  christos     return idesc;
   2097      1.1  christos   }
   2098      1.1  christos 
   2099      1.1  christos  extract_sfmt_l_mfspr:
   2100      1.1  christos   {
   2101      1.1  christos     const IDESC *idesc = &or1k32bf_insn_data[itype];
   2102      1.1  christos     CGEN_INSN_WORD insn = entire_insn;
   2103      1.1  christos #define FLD(f) abuf->fields.sfmt_l_mfspr.f
   2104      1.1  christos     UINT f_r1;
   2105      1.1  christos     UINT f_r2;
   2106      1.1  christos     UINT f_uimm16;
   2107      1.1  christos 
   2108      1.1  christos     f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
   2109      1.1  christos     f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
   2110      1.1  christos     f_uimm16 = EXTRACT_LSB0_UINT (insn, 32, 15, 16);
   2111      1.1  christos 
   2112      1.1  christos   /* Record the fields for the semantic handler.  */
   2113      1.1  christos   FLD (f_r2) = f_r2;
   2114      1.1  christos   FLD (f_uimm16) = f_uimm16;
   2115      1.1  christos   FLD (f_r1) = f_r1;
   2116      1.1  christos   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_mfspr", "f_r2 0x%x", 'x', f_r2, "f_uimm16 0x%x", 'x', f_uimm16, "f_r1 0x%x", 'x', f_r1, (char *) 0));
   2117      1.1  christos 
   2118      1.1  christos #undef FLD
   2119      1.1  christos     return idesc;
   2120      1.1  christos   }
   2121      1.1  christos 
   2122      1.1  christos  extract_sfmt_l_mtspr:
   2123      1.1  christos   {
   2124      1.1  christos     const IDESC *idesc = &or1k32bf_insn_data[itype];
   2125      1.1  christos     CGEN_INSN_WORD insn = entire_insn;
   2126      1.1  christos #define FLD(f) abuf->fields.sfmt_l_mtspr.f
   2127      1.1  christos     UINT f_imm16_25_5;
   2128      1.1  christos     UINT f_r2;
   2129      1.1  christos     UINT f_r3;
   2130      1.1  christos     UINT f_imm16_10_11;
   2131      1.1  christos     UINT f_uimm16_split;
   2132      1.1  christos 
   2133      1.1  christos     f_imm16_25_5 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
   2134      1.1  christos     f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
   2135      1.1  christos     f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5);
   2136      1.1  christos     f_imm16_10_11 = EXTRACT_LSB0_UINT (insn, 32, 10, 11);
   2137      1.1  christos   f_uimm16_split = ((UHI) (UINT) (((((f_imm16_25_5) << (11))) | (f_imm16_10_11))));
   2138      1.1  christos 
   2139      1.1  christos   /* Record the fields for the semantic handler.  */
   2140      1.1  christos   FLD (f_r2) = f_r2;
   2141      1.1  christos   FLD (f_r3) = f_r3;
   2142      1.1  christos   FLD (f_uimm16_split) = f_uimm16_split;
   2143      1.1  christos   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_mtspr", "f_r2 0x%x", 'x', f_r2, "f_r3 0x%x", 'x', f_r3, "f_uimm16_split 0x%x", 'x', f_uimm16_split, (char *) 0));
   2144      1.1  christos 
   2145      1.1  christos #undef FLD
   2146      1.1  christos     return idesc;
   2147      1.1  christos   }
   2148      1.1  christos 
   2149      1.1  christos  extract_sfmt_l_lwz:
   2150      1.1  christos   {
   2151      1.1  christos     const IDESC *idesc = &or1k32bf_insn_data[itype];
   2152      1.1  christos     CGEN_INSN_WORD insn = entire_insn;
   2153      1.1  christos #define FLD(f) abuf->fields.sfmt_l_lwz.f
   2154      1.1  christos     UINT f_r1;
   2155      1.1  christos     UINT f_r2;
   2156      1.1  christos     INT f_simm16;
   2157      1.1  christos 
   2158      1.1  christos     f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
   2159      1.1  christos     f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
   2160      1.1  christos     f_simm16 = EXTRACT_LSB0_SINT (insn, 32, 15, 16);
   2161      1.1  christos 
   2162      1.1  christos   /* Record the fields for the semantic handler.  */
   2163      1.1  christos   FLD (f_r2) = f_r2;
   2164      1.1  christos   FLD (f_simm16) = f_simm16;
   2165      1.1  christos   FLD (f_r1) = f_r1;
   2166      1.1  christos   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_lwz", "f_r2 0x%x", 'x', f_r2, "f_simm16 0x%x", 'x', f_simm16, "f_r1 0x%x", 'x', f_r1, (char *) 0));
   2167      1.1  christos 
   2168      1.1  christos #undef FLD
   2169      1.1  christos     return idesc;
   2170      1.1  christos   }
   2171      1.1  christos 
   2172      1.1  christos  extract_sfmt_l_lws:
   2173      1.1  christos   {
   2174      1.1  christos     const IDESC *idesc = &or1k32bf_insn_data[itype];
   2175      1.1  christos     CGEN_INSN_WORD insn = entire_insn;
   2176      1.1  christos #define FLD(f) abuf->fields.sfmt_l_lwz.f
   2177      1.1  christos     UINT f_r1;
   2178      1.1  christos     UINT f_r2;
   2179      1.1  christos     INT f_simm16;
   2180      1.1  christos 
   2181      1.1  christos     f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
   2182      1.1  christos     f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
   2183      1.1  christos     f_simm16 = EXTRACT_LSB0_SINT (insn, 32, 15, 16);
   2184      1.1  christos 
   2185      1.1  christos   /* Record the fields for the semantic handler.  */
   2186      1.1  christos   FLD (f_r2) = f_r2;
   2187      1.1  christos   FLD (f_simm16) = f_simm16;
   2188      1.1  christos   FLD (f_r1) = f_r1;
   2189      1.1  christos   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_lws", "f_r2 0x%x", 'x', f_r2, "f_simm16 0x%x", 'x', f_simm16, "f_r1 0x%x", 'x', f_r1, (char *) 0));
   2190      1.1  christos 
   2191      1.1  christos #undef FLD
   2192      1.1  christos     return idesc;
   2193      1.1  christos   }
   2194      1.1  christos 
   2195      1.1  christos  extract_sfmt_l_lwa:
   2196      1.1  christos   {
   2197      1.1  christos     const IDESC *idesc = &or1k32bf_insn_data[itype];
   2198      1.1  christos     CGEN_INSN_WORD insn = entire_insn;
   2199      1.1  christos #define FLD(f) abuf->fields.sfmt_l_lwz.f
   2200      1.1  christos     UINT f_r1;
   2201      1.1  christos     UINT f_r2;
   2202      1.1  christos     INT f_simm16;
   2203      1.1  christos 
   2204      1.1  christos     f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
   2205      1.1  christos     f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
   2206      1.1  christos     f_simm16 = EXTRACT_LSB0_SINT (insn, 32, 15, 16);
   2207      1.1  christos 
   2208      1.1  christos   /* Record the fields for the semantic handler.  */
   2209      1.1  christos   FLD (f_r2) = f_r2;
   2210      1.1  christos   FLD (f_simm16) = f_simm16;
   2211      1.1  christos   FLD (f_r1) = f_r1;
   2212      1.1  christos   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_lwa", "f_r2 0x%x", 'x', f_r2, "f_simm16 0x%x", 'x', f_simm16, "f_r1 0x%x", 'x', f_r1, (char *) 0));
   2213      1.1  christos 
   2214      1.1  christos #undef FLD
   2215      1.1  christos     return idesc;
   2216      1.1  christos   }
   2217      1.1  christos 
   2218      1.1  christos  extract_sfmt_l_lbz:
   2219      1.1  christos   {
   2220      1.1  christos     const IDESC *idesc = &or1k32bf_insn_data[itype];
   2221      1.1  christos     CGEN_INSN_WORD insn = entire_insn;
   2222      1.1  christos #define FLD(f) abuf->fields.sfmt_l_lwz.f
   2223      1.1  christos     UINT f_r1;
   2224      1.1  christos     UINT f_r2;
   2225      1.1  christos     INT f_simm16;
   2226      1.1  christos 
   2227      1.1  christos     f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
   2228      1.1  christos     f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
   2229      1.1  christos     f_simm16 = EXTRACT_LSB0_SINT (insn, 32, 15, 16);
   2230      1.1  christos 
   2231      1.1  christos   /* Record the fields for the semantic handler.  */
   2232      1.1  christos   FLD (f_r2) = f_r2;
   2233      1.1  christos   FLD (f_simm16) = f_simm16;
   2234      1.1  christos   FLD (f_r1) = f_r1;
   2235      1.1  christos   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_lbz", "f_r2 0x%x", 'x', f_r2, "f_simm16 0x%x", 'x', f_simm16, "f_r1 0x%x", 'x', f_r1, (char *) 0));
   2236      1.1  christos 
   2237      1.1  christos #undef FLD
   2238      1.1  christos     return idesc;
   2239      1.1  christos   }
   2240      1.1  christos 
   2241      1.1  christos  extract_sfmt_l_lbs:
   2242      1.1  christos   {
   2243      1.1  christos     const IDESC *idesc = &or1k32bf_insn_data[itype];
   2244      1.1  christos     CGEN_INSN_WORD insn = entire_insn;
   2245      1.1  christos #define FLD(f) abuf->fields.sfmt_l_lwz.f
   2246      1.1  christos     UINT f_r1;
   2247      1.1  christos     UINT f_r2;
   2248      1.1  christos     INT f_simm16;
   2249      1.1  christos 
   2250      1.1  christos     f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
   2251      1.1  christos     f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
   2252      1.1  christos     f_simm16 = EXTRACT_LSB0_SINT (insn, 32, 15, 16);
   2253      1.1  christos 
   2254      1.1  christos   /* Record the fields for the semantic handler.  */
   2255      1.1  christos   FLD (f_r2) = f_r2;
   2256      1.1  christos   FLD (f_simm16) = f_simm16;
   2257      1.1  christos   FLD (f_r1) = f_r1;
   2258      1.1  christos   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_lbs", "f_r2 0x%x", 'x', f_r2, "f_simm16 0x%x", 'x', f_simm16, "f_r1 0x%x", 'x', f_r1, (char *) 0));
   2259      1.1  christos 
   2260      1.1  christos #undef FLD
   2261      1.1  christos     return idesc;
   2262      1.1  christos   }
   2263      1.1  christos 
   2264      1.1  christos  extract_sfmt_l_lhz:
   2265      1.1  christos   {
   2266      1.1  christos     const IDESC *idesc = &or1k32bf_insn_data[itype];
   2267      1.1  christos     CGEN_INSN_WORD insn = entire_insn;
   2268      1.1  christos #define FLD(f) abuf->fields.sfmt_l_lwz.f
   2269      1.1  christos     UINT f_r1;
   2270      1.1  christos     UINT f_r2;
   2271      1.1  christos     INT f_simm16;
   2272      1.1  christos 
   2273      1.1  christos     f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
   2274      1.1  christos     f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
   2275      1.1  christos     f_simm16 = EXTRACT_LSB0_SINT (insn, 32, 15, 16);
   2276      1.1  christos 
   2277      1.1  christos   /* Record the fields for the semantic handler.  */
   2278      1.1  christos   FLD (f_r2) = f_r2;
   2279      1.1  christos   FLD (f_simm16) = f_simm16;
   2280      1.1  christos   FLD (f_r1) = f_r1;
   2281      1.1  christos   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_lhz", "f_r2 0x%x", 'x', f_r2, "f_simm16 0x%x", 'x', f_simm16, "f_r1 0x%x", 'x', f_r1, (char *) 0));
   2282      1.1  christos 
   2283      1.1  christos #undef FLD
   2284      1.1  christos     return idesc;
   2285      1.1  christos   }
   2286      1.1  christos 
   2287      1.1  christos  extract_sfmt_l_lhs:
   2288      1.1  christos   {
   2289      1.1  christos     const IDESC *idesc = &or1k32bf_insn_data[itype];
   2290      1.1  christos     CGEN_INSN_WORD insn = entire_insn;
   2291      1.1  christos #define FLD(f) abuf->fields.sfmt_l_lwz.f
   2292      1.1  christos     UINT f_r1;
   2293      1.1  christos     UINT f_r2;
   2294      1.1  christos     INT f_simm16;
   2295      1.1  christos 
   2296      1.1  christos     f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
   2297      1.1  christos     f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
   2298      1.1  christos     f_simm16 = EXTRACT_LSB0_SINT (insn, 32, 15, 16);
   2299      1.1  christos 
   2300      1.1  christos   /* Record the fields for the semantic handler.  */
   2301      1.1  christos   FLD (f_r2) = f_r2;
   2302      1.1  christos   FLD (f_simm16) = f_simm16;
   2303      1.1  christos   FLD (f_r1) = f_r1;
   2304      1.1  christos   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_lhs", "f_r2 0x%x", 'x', f_r2, "f_simm16 0x%x", 'x', f_simm16, "f_r1 0x%x", 'x', f_r1, (char *) 0));
   2305      1.1  christos 
   2306      1.1  christos #undef FLD
   2307      1.1  christos     return idesc;
   2308      1.1  christos   }
   2309      1.1  christos 
   2310      1.1  christos  extract_sfmt_l_sw:
   2311      1.1  christos   {
   2312      1.1  christos     const IDESC *idesc = &or1k32bf_insn_data[itype];
   2313      1.1  christos     CGEN_INSN_WORD insn = entire_insn;
   2314      1.1  christos #define FLD(f) abuf->fields.sfmt_l_sw.f
   2315      1.1  christos     UINT f_imm16_25_5;
   2316      1.1  christos     UINT f_r2;
   2317      1.1  christos     UINT f_r3;
   2318      1.1  christos     UINT f_imm16_10_11;
   2319      1.1  christos     INT f_simm16_split;
   2320      1.1  christos 
   2321      1.1  christos     f_imm16_25_5 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
   2322      1.1  christos     f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
   2323      1.1  christos     f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5);
   2324      1.1  christos     f_imm16_10_11 = EXTRACT_LSB0_UINT (insn, 32, 10, 11);
   2325      1.1  christos   f_simm16_split = ((HI) (UINT) (((((f_imm16_25_5) << (11))) | (f_imm16_10_11))));
   2326      1.1  christos 
   2327      1.1  christos   /* Record the fields for the semantic handler.  */
   2328      1.1  christos   FLD (f_r2) = f_r2;
   2329      1.1  christos   FLD (f_r3) = f_r3;
   2330      1.1  christos   FLD (f_simm16_split) = f_simm16_split;
   2331      1.1  christos   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_sw", "f_r2 0x%x", 'x', f_r2, "f_r3 0x%x", 'x', f_r3, "f_simm16_split 0x%x", 'x', f_simm16_split, (char *) 0));
   2332      1.1  christos 
   2333      1.1  christos #undef FLD
   2334      1.1  christos     return idesc;
   2335      1.1  christos   }
   2336      1.1  christos 
   2337      1.1  christos  extract_sfmt_l_sb:
   2338      1.1  christos   {
   2339      1.1  christos     const IDESC *idesc = &or1k32bf_insn_data[itype];
   2340      1.1  christos     CGEN_INSN_WORD insn = entire_insn;
   2341      1.1  christos #define FLD(f) abuf->fields.sfmt_l_sw.f
   2342      1.1  christos     UINT f_imm16_25_5;
   2343      1.1  christos     UINT f_r2;
   2344      1.1  christos     UINT f_r3;
   2345      1.1  christos     UINT f_imm16_10_11;
   2346      1.1  christos     INT f_simm16_split;
   2347      1.1  christos 
   2348      1.1  christos     f_imm16_25_5 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
   2349      1.1  christos     f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
   2350      1.1  christos     f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5);
   2351      1.1  christos     f_imm16_10_11 = EXTRACT_LSB0_UINT (insn, 32, 10, 11);
   2352      1.1  christos   f_simm16_split = ((HI) (UINT) (((((f_imm16_25_5) << (11))) | (f_imm16_10_11))));
   2353      1.1  christos 
   2354      1.1  christos   /* Record the fields for the semantic handler.  */
   2355      1.1  christos   FLD (f_r2) = f_r2;
   2356      1.1  christos   FLD (f_r3) = f_r3;
   2357      1.1  christos   FLD (f_simm16_split) = f_simm16_split;
   2358      1.1  christos   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_sb", "f_r2 0x%x", 'x', f_r2, "f_r3 0x%x", 'x', f_r3, "f_simm16_split 0x%x", 'x', f_simm16_split, (char *) 0));
   2359      1.1  christos 
   2360      1.1  christos #undef FLD
   2361      1.1  christos     return idesc;
   2362      1.1  christos   }
   2363      1.1  christos 
   2364      1.1  christos  extract_sfmt_l_sh:
   2365      1.1  christos   {
   2366      1.1  christos     const IDESC *idesc = &or1k32bf_insn_data[itype];
   2367      1.1  christos     CGEN_INSN_WORD insn = entire_insn;
   2368      1.1  christos #define FLD(f) abuf->fields.sfmt_l_sw.f
   2369      1.1  christos     UINT f_imm16_25_5;
   2370      1.1  christos     UINT f_r2;
   2371      1.1  christos     UINT f_r3;
   2372      1.1  christos     UINT f_imm16_10_11;
   2373      1.1  christos     INT f_simm16_split;
   2374      1.1  christos 
   2375      1.1  christos     f_imm16_25_5 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
   2376      1.1  christos     f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
   2377      1.1  christos     f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5);
   2378      1.1  christos     f_imm16_10_11 = EXTRACT_LSB0_UINT (insn, 32, 10, 11);
   2379      1.1  christos   f_simm16_split = ((HI) (UINT) (((((f_imm16_25_5) << (11))) | (f_imm16_10_11))));
   2380      1.1  christos 
   2381      1.1  christos   /* Record the fields for the semantic handler.  */
   2382      1.1  christos   FLD (f_r2) = f_r2;
   2383      1.1  christos   FLD (f_r3) = f_r3;
   2384      1.1  christos   FLD (f_simm16_split) = f_simm16_split;
   2385      1.1  christos   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_sh", "f_r2 0x%x", 'x', f_r2, "f_r3 0x%x", 'x', f_r3, "f_simm16_split 0x%x", 'x', f_simm16_split, (char *) 0));
   2386      1.1  christos 
   2387      1.1  christos #undef FLD
   2388      1.1  christos     return idesc;
   2389      1.1  christos   }
   2390      1.1  christos 
   2391      1.1  christos  extract_sfmt_l_swa:
   2392      1.1  christos   {
   2393      1.1  christos     const IDESC *idesc = &or1k32bf_insn_data[itype];
   2394      1.1  christos     CGEN_INSN_WORD insn = entire_insn;
   2395      1.1  christos #define FLD(f) abuf->fields.sfmt_l_sw.f
   2396      1.1  christos     UINT f_imm16_25_5;
   2397      1.1  christos     UINT f_r2;
   2398      1.1  christos     UINT f_r3;
   2399      1.1  christos     UINT f_imm16_10_11;
   2400      1.1  christos     INT f_simm16_split;
   2401      1.1  christos 
   2402      1.1  christos     f_imm16_25_5 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
   2403      1.1  christos     f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
   2404      1.1  christos     f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5);
   2405      1.1  christos     f_imm16_10_11 = EXTRACT_LSB0_UINT (insn, 32, 10, 11);
   2406      1.1  christos   f_simm16_split = ((HI) (UINT) (((((f_imm16_25_5) << (11))) | (f_imm16_10_11))));
   2407      1.1  christos 
   2408      1.1  christos   /* Record the fields for the semantic handler.  */
   2409      1.1  christos   FLD (f_r2) = f_r2;
   2410      1.1  christos   FLD (f_r3) = f_r3;
   2411      1.1  christos   FLD (f_simm16_split) = f_simm16_split;
   2412      1.1  christos   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_swa", "f_r2 0x%x", 'x', f_r2, "f_r3 0x%x", 'x', f_r3, "f_simm16_split 0x%x", 'x', f_simm16_split, (char *) 0));
   2413      1.1  christos 
   2414      1.1  christos #undef FLD
   2415      1.1  christos     return idesc;
   2416      1.1  christos   }
   2417      1.1  christos 
   2418      1.1  christos  extract_sfmt_l_sll:
   2419      1.1  christos   {
   2420      1.1  christos     const IDESC *idesc = &or1k32bf_insn_data[itype];
   2421      1.1  christos     CGEN_INSN_WORD insn = entire_insn;
   2422      1.1  christos #define FLD(f) abuf->fields.sfmt_l_sll.f
   2423      1.1  christos     UINT f_r1;
   2424      1.1  christos     UINT f_r2;
   2425      1.1  christos     UINT f_r3;
   2426      1.1  christos 
   2427      1.1  christos     f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
   2428      1.1  christos     f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
   2429      1.1  christos     f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5);
   2430      1.1  christos 
   2431      1.1  christos   /* Record the fields for the semantic handler.  */
   2432      1.1  christos   FLD (f_r2) = f_r2;
   2433      1.1  christos   FLD (f_r3) = f_r3;
   2434      1.1  christos   FLD (f_r1) = f_r1;
   2435      1.1  christos   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_sll", "f_r2 0x%x", 'x', f_r2, "f_r3 0x%x", 'x', f_r3, "f_r1 0x%x", 'x', f_r1, (char *) 0));
   2436      1.1  christos 
   2437      1.1  christos #undef FLD
   2438      1.1  christos     return idesc;
   2439      1.1  christos   }
   2440      1.1  christos 
   2441      1.1  christos  extract_sfmt_l_slli:
   2442      1.1  christos   {
   2443      1.1  christos     const IDESC *idesc = &or1k32bf_insn_data[itype];
   2444      1.1  christos     CGEN_INSN_WORD insn = entire_insn;
   2445      1.1  christos #define FLD(f) abuf->fields.sfmt_l_slli.f
   2446      1.1  christos     UINT f_r1;
   2447      1.1  christos     UINT f_r2;
   2448      1.1  christos     UINT f_uimm6;
   2449      1.1  christos 
   2450      1.1  christos     f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
   2451      1.1  christos     f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
   2452      1.1  christos     f_uimm6 = EXTRACT_LSB0_UINT (insn, 32, 5, 6);
   2453      1.1  christos 
   2454      1.1  christos   /* Record the fields for the semantic handler.  */
   2455      1.1  christos   FLD (f_r2) = f_r2;
   2456      1.1  christos   FLD (f_uimm6) = f_uimm6;
   2457      1.1  christos   FLD (f_r1) = f_r1;
   2458      1.1  christos   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_slli", "f_r2 0x%x", 'x', f_r2, "f_uimm6 0x%x", 'x', f_uimm6, "f_r1 0x%x", 'x', f_r1, (char *) 0));
   2459      1.1  christos 
   2460      1.1  christos #undef FLD
   2461      1.1  christos     return idesc;
   2462      1.1  christos   }
   2463      1.1  christos 
   2464      1.1  christos  extract_sfmt_l_and:
   2465      1.1  christos   {
   2466      1.1  christos     const IDESC *idesc = &or1k32bf_insn_data[itype];
   2467      1.1  christos     CGEN_INSN_WORD insn = entire_insn;
   2468      1.1  christos #define FLD(f) abuf->fields.sfmt_l_sll.f
   2469      1.1  christos     UINT f_r1;
   2470      1.1  christos     UINT f_r2;
   2471      1.1  christos     UINT f_r3;
   2472      1.1  christos 
   2473      1.1  christos     f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
   2474      1.1  christos     f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
   2475      1.1  christos     f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5);
   2476      1.1  christos 
   2477      1.1  christos   /* Record the fields for the semantic handler.  */
   2478      1.1  christos   FLD (f_r2) = f_r2;
   2479      1.1  christos   FLD (f_r3) = f_r3;
   2480      1.1  christos   FLD (f_r1) = f_r1;
   2481      1.1  christos   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_and", "f_r2 0x%x", 'x', f_r2, "f_r3 0x%x", 'x', f_r3, "f_r1 0x%x", 'x', f_r1, (char *) 0));
   2482      1.1  christos 
   2483      1.1  christos #undef FLD
   2484      1.1  christos     return idesc;
   2485      1.1  christos   }
   2486      1.1  christos 
   2487      1.1  christos  extract_sfmt_l_add:
   2488      1.1  christos   {
   2489      1.1  christos     const IDESC *idesc = &or1k32bf_insn_data[itype];
   2490      1.1  christos     CGEN_INSN_WORD insn = entire_insn;
   2491      1.1  christos #define FLD(f) abuf->fields.sfmt_l_sll.f
   2492      1.1  christos     UINT f_r1;
   2493      1.1  christos     UINT f_r2;
   2494      1.1  christos     UINT f_r3;
   2495      1.1  christos 
   2496      1.1  christos     f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
   2497      1.1  christos     f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
   2498      1.1  christos     f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5);
   2499      1.1  christos 
   2500      1.1  christos   /* Record the fields for the semantic handler.  */
   2501      1.1  christos   FLD (f_r2) = f_r2;
   2502      1.1  christos   FLD (f_r3) = f_r3;
   2503      1.1  christos   FLD (f_r1) = f_r1;
   2504      1.1  christos   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_add", "f_r2 0x%x", 'x', f_r2, "f_r3 0x%x", 'x', f_r3, "f_r1 0x%x", 'x', f_r1, (char *) 0));
   2505      1.1  christos 
   2506      1.1  christos #undef FLD
   2507      1.1  christos     return idesc;
   2508      1.1  christos   }
   2509      1.1  christos 
   2510      1.1  christos  extract_sfmt_l_addc:
   2511      1.1  christos   {
   2512      1.1  christos     const IDESC *idesc = &or1k32bf_insn_data[itype];
   2513      1.1  christos     CGEN_INSN_WORD insn = entire_insn;
   2514      1.1  christos #define FLD(f) abuf->fields.sfmt_l_sll.f
   2515      1.1  christos     UINT f_r1;
   2516      1.1  christos     UINT f_r2;
   2517      1.1  christos     UINT f_r3;
   2518      1.1  christos 
   2519      1.1  christos     f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
   2520      1.1  christos     f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
   2521      1.1  christos     f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5);
   2522      1.1  christos 
   2523      1.1  christos   /* Record the fields for the semantic handler.  */
   2524      1.1  christos   FLD (f_r2) = f_r2;
   2525      1.1  christos   FLD (f_r3) = f_r3;
   2526      1.1  christos   FLD (f_r1) = f_r1;
   2527      1.1  christos   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_addc", "f_r2 0x%x", 'x', f_r2, "f_r3 0x%x", 'x', f_r3, "f_r1 0x%x", 'x', f_r1, (char *) 0));
   2528      1.1  christos 
   2529      1.1  christos #undef FLD
   2530      1.1  christos     return idesc;
   2531      1.1  christos   }
   2532      1.1  christos 
   2533      1.1  christos  extract_sfmt_l_mul:
   2534      1.1  christos   {
   2535      1.1  christos     const IDESC *idesc = &or1k32bf_insn_data[itype];
   2536      1.1  christos     CGEN_INSN_WORD insn = entire_insn;
   2537      1.1  christos #define FLD(f) abuf->fields.sfmt_l_sll.f
   2538      1.1  christos     UINT f_r1;
   2539      1.1  christos     UINT f_r2;
   2540      1.1  christos     UINT f_r3;
   2541      1.1  christos 
   2542      1.1  christos     f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
   2543      1.1  christos     f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
   2544      1.1  christos     f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5);
   2545      1.1  christos 
   2546      1.1  christos   /* Record the fields for the semantic handler.  */
   2547      1.1  christos   FLD (f_r2) = f_r2;
   2548      1.1  christos   FLD (f_r3) = f_r3;
   2549      1.1  christos   FLD (f_r1) = f_r1;
   2550      1.1  christos   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_mul", "f_r2 0x%x", 'x', f_r2, "f_r3 0x%x", 'x', f_r3, "f_r1 0x%x", 'x', f_r1, (char *) 0));
   2551      1.1  christos 
   2552      1.1  christos #undef FLD
   2553      1.1  christos     return idesc;
   2554      1.1  christos   }
   2555      1.1  christos 
   2556      1.1  christos  extract_sfmt_l_muld:
   2557      1.1  christos   {
   2558      1.1  christos     const IDESC *idesc = &or1k32bf_insn_data[itype];
   2559      1.1  christos     CGEN_INSN_WORD insn = entire_insn;
   2560      1.1  christos #define FLD(f) abuf->fields.sfmt_l_sll.f
   2561      1.1  christos     UINT f_r2;
   2562      1.1  christos     UINT f_r3;
   2563      1.1  christos 
   2564      1.1  christos     f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
   2565      1.1  christos     f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5);
   2566      1.1  christos 
   2567      1.1  christos   /* Record the fields for the semantic handler.  */
   2568      1.1  christos   FLD (f_r2) = f_r2;
   2569      1.1  christos   FLD (f_r3) = f_r3;
   2570      1.1  christos   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_muld", "f_r2 0x%x", 'x', f_r2, "f_r3 0x%x", 'x', f_r3, (char *) 0));
   2571      1.1  christos 
   2572      1.1  christos #undef FLD
   2573      1.1  christos     return idesc;
   2574      1.1  christos   }
   2575      1.1  christos 
   2576      1.1  christos  extract_sfmt_l_mulu:
   2577      1.1  christos   {
   2578      1.1  christos     const IDESC *idesc = &or1k32bf_insn_data[itype];
   2579      1.1  christos     CGEN_INSN_WORD insn = entire_insn;
   2580      1.1  christos #define FLD(f) abuf->fields.sfmt_l_sll.f
   2581      1.1  christos     UINT f_r1;
   2582      1.1  christos     UINT f_r2;
   2583      1.1  christos     UINT f_r3;
   2584      1.1  christos 
   2585      1.1  christos     f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
   2586      1.1  christos     f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
   2587      1.1  christos     f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5);
   2588      1.1  christos 
   2589      1.1  christos   /* Record the fields for the semantic handler.  */
   2590      1.1  christos   FLD (f_r2) = f_r2;
   2591      1.1  christos   FLD (f_r3) = f_r3;
   2592      1.1  christos   FLD (f_r1) = f_r1;
   2593      1.1  christos   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_mulu", "f_r2 0x%x", 'x', f_r2, "f_r3 0x%x", 'x', f_r3, "f_r1 0x%x", 'x', f_r1, (char *) 0));
   2594      1.1  christos 
   2595      1.1  christos #undef FLD
   2596      1.1  christos     return idesc;
   2597      1.1  christos   }
   2598      1.1  christos 
   2599      1.1  christos  extract_sfmt_l_div:
   2600      1.1  christos   {
   2601      1.1  christos     const IDESC *idesc = &or1k32bf_insn_data[itype];
   2602      1.1  christos     CGEN_INSN_WORD insn = entire_insn;
   2603      1.1  christos #define FLD(f) abuf->fields.sfmt_l_sll.f
   2604      1.1  christos     UINT f_r1;
   2605      1.1  christos     UINT f_r2;
   2606      1.1  christos     UINT f_r3;
   2607      1.1  christos 
   2608      1.1  christos     f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
   2609      1.1  christos     f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
   2610      1.1  christos     f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5);
   2611      1.1  christos 
   2612      1.1  christos   /* Record the fields for the semantic handler.  */
   2613      1.1  christos   FLD (f_r2) = f_r2;
   2614      1.1  christos   FLD (f_r3) = f_r3;
   2615      1.1  christos   FLD (f_r1) = f_r1;
   2616      1.1  christos   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_div", "f_r2 0x%x", 'x', f_r2, "f_r3 0x%x", 'x', f_r3, "f_r1 0x%x", 'x', f_r1, (char *) 0));
   2617      1.1  christos 
   2618      1.1  christos #undef FLD
   2619      1.1  christos     return idesc;
   2620      1.1  christos   }
   2621      1.1  christos 
   2622      1.1  christos  extract_sfmt_l_divu:
   2623      1.1  christos   {
   2624      1.1  christos     const IDESC *idesc = &or1k32bf_insn_data[itype];
   2625      1.1  christos     CGEN_INSN_WORD insn = entire_insn;
   2626      1.1  christos #define FLD(f) abuf->fields.sfmt_l_sll.f
   2627      1.1  christos     UINT f_r1;
   2628      1.1  christos     UINT f_r2;
   2629      1.1  christos     UINT f_r3;
   2630      1.1  christos 
   2631      1.1  christos     f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
   2632      1.1  christos     f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
   2633      1.1  christos     f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5);
   2634      1.1  christos 
   2635      1.1  christos   /* Record the fields for the semantic handler.  */
   2636      1.1  christos   FLD (f_r2) = f_r2;
   2637      1.1  christos   FLD (f_r3) = f_r3;
   2638      1.1  christos   FLD (f_r1) = f_r1;
   2639      1.1  christos   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_divu", "f_r2 0x%x", 'x', f_r2, "f_r3 0x%x", 'x', f_r3, "f_r1 0x%x", 'x', f_r1, (char *) 0));
   2640      1.1  christos 
   2641      1.1  christos #undef FLD
   2642      1.1  christos     return idesc;
   2643      1.1  christos   }
   2644      1.1  christos 
   2645      1.1  christos  extract_sfmt_l_ff1:
   2646      1.1  christos   {
   2647      1.1  christos     const IDESC *idesc = &or1k32bf_insn_data[itype];
   2648      1.1  christos     CGEN_INSN_WORD insn = entire_insn;
   2649      1.1  christos #define FLD(f) abuf->fields.sfmt_l_slli.f
   2650      1.1  christos     UINT f_r1;
   2651      1.1  christos     UINT f_r2;
   2652      1.1  christos 
   2653      1.1  christos     f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
   2654      1.1  christos     f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
   2655      1.1  christos 
   2656      1.1  christos   /* Record the fields for the semantic handler.  */
   2657      1.1  christos   FLD (f_r2) = f_r2;
   2658      1.1  christos   FLD (f_r1) = f_r1;
   2659      1.1  christos   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_ff1", "f_r2 0x%x", 'x', f_r2, "f_r1 0x%x", 'x', f_r1, (char *) 0));
   2660      1.1  christos 
   2661      1.1  christos #undef FLD
   2662      1.1  christos     return idesc;
   2663      1.1  christos   }
   2664      1.1  christos 
   2665      1.1  christos  extract_sfmt_l_xori:
   2666      1.1  christos   {
   2667      1.1  christos     const IDESC *idesc = &or1k32bf_insn_data[itype];
   2668      1.1  christos     CGEN_INSN_WORD insn = entire_insn;
   2669      1.1  christos #define FLD(f) abuf->fields.sfmt_l_lwz.f
   2670      1.1  christos     UINT f_r1;
   2671      1.1  christos     UINT f_r2;
   2672      1.1  christos     INT f_simm16;
   2673      1.1  christos 
   2674      1.1  christos     f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
   2675      1.1  christos     f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
   2676      1.1  christos     f_simm16 = EXTRACT_LSB0_SINT (insn, 32, 15, 16);
   2677      1.1  christos 
   2678      1.1  christos   /* Record the fields for the semantic handler.  */
   2679      1.1  christos   FLD (f_r2) = f_r2;
   2680      1.1  christos   FLD (f_simm16) = f_simm16;
   2681      1.1  christos   FLD (f_r1) = f_r1;
   2682      1.1  christos   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_xori", "f_r2 0x%x", 'x', f_r2, "f_simm16 0x%x", 'x', f_simm16, "f_r1 0x%x", 'x', f_r1, (char *) 0));
   2683      1.1  christos 
   2684      1.1  christos #undef FLD
   2685      1.1  christos     return idesc;
   2686      1.1  christos   }
   2687      1.1  christos 
   2688      1.1  christos  extract_sfmt_l_addi:
   2689      1.1  christos   {
   2690      1.1  christos     const IDESC *idesc = &or1k32bf_insn_data[itype];
   2691      1.1  christos     CGEN_INSN_WORD insn = entire_insn;
   2692      1.1  christos #define FLD(f) abuf->fields.sfmt_l_lwz.f
   2693      1.1  christos     UINT f_r1;
   2694      1.1  christos     UINT f_r2;
   2695      1.1  christos     INT f_simm16;
   2696      1.1  christos 
   2697      1.1  christos     f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
   2698      1.1  christos     f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
   2699      1.1  christos     f_simm16 = EXTRACT_LSB0_SINT (insn, 32, 15, 16);
   2700      1.1  christos 
   2701      1.1  christos   /* Record the fields for the semantic handler.  */
   2702      1.1  christos   FLD (f_r2) = f_r2;
   2703      1.1  christos   FLD (f_simm16) = f_simm16;
   2704      1.1  christos   FLD (f_r1) = f_r1;
   2705      1.1  christos   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_addi", "f_r2 0x%x", 'x', f_r2, "f_simm16 0x%x", 'x', f_simm16, "f_r1 0x%x", 'x', f_r1, (char *) 0));
   2706      1.1  christos 
   2707      1.1  christos #undef FLD
   2708      1.1  christos     return idesc;
   2709      1.1  christos   }
   2710      1.1  christos 
   2711      1.1  christos  extract_sfmt_l_addic:
   2712      1.1  christos   {
   2713      1.1  christos     const IDESC *idesc = &or1k32bf_insn_data[itype];
   2714      1.1  christos     CGEN_INSN_WORD insn = entire_insn;
   2715      1.1  christos #define FLD(f) abuf->fields.sfmt_l_lwz.f
   2716      1.1  christos     UINT f_r1;
   2717      1.1  christos     UINT f_r2;
   2718      1.1  christos     INT f_simm16;
   2719      1.1  christos 
   2720      1.1  christos     f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
   2721      1.1  christos     f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
   2722      1.1  christos     f_simm16 = EXTRACT_LSB0_SINT (insn, 32, 15, 16);
   2723      1.1  christos 
   2724      1.1  christos   /* Record the fields for the semantic handler.  */
   2725      1.1  christos   FLD (f_r2) = f_r2;
   2726      1.1  christos   FLD (f_simm16) = f_simm16;
   2727      1.1  christos   FLD (f_r1) = f_r1;
   2728      1.1  christos   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_addic", "f_r2 0x%x", 'x', f_r2, "f_simm16 0x%x", 'x', f_simm16, "f_r1 0x%x", 'x', f_r1, (char *) 0));
   2729      1.1  christos 
   2730      1.1  christos #undef FLD
   2731      1.1  christos     return idesc;
   2732      1.1  christos   }
   2733      1.1  christos 
   2734      1.1  christos  extract_sfmt_l_muli:
   2735      1.1  christos   {
   2736      1.1  christos     const IDESC *idesc = &or1k32bf_insn_data[itype];
   2737      1.1  christos     CGEN_INSN_WORD insn = entire_insn;
   2738      1.1  christos #define FLD(f) abuf->fields.sfmt_l_lwz.f
   2739      1.1  christos     UINT f_r1;
   2740      1.1  christos     UINT f_r2;
   2741      1.1  christos     INT f_simm16;
   2742      1.1  christos 
   2743      1.1  christos     f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
   2744      1.1  christos     f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
   2745      1.1  christos     f_simm16 = EXTRACT_LSB0_SINT (insn, 32, 15, 16);
   2746      1.1  christos 
   2747      1.1  christos   /* Record the fields for the semantic handler.  */
   2748      1.1  christos   FLD (f_r2) = f_r2;
   2749      1.1  christos   FLD (f_simm16) = f_simm16;
   2750      1.1  christos   FLD (f_r1) = f_r1;
   2751      1.1  christos   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_muli", "f_r2 0x%x", 'x', f_r2, "f_simm16 0x%x", 'x', f_simm16, "f_r1 0x%x", 'x', f_r1, (char *) 0));
   2752      1.1  christos 
   2753      1.1  christos #undef FLD
   2754      1.1  christos     return idesc;
   2755      1.1  christos   }
   2756      1.1  christos 
   2757      1.1  christos  extract_sfmt_l_exths:
   2758      1.1  christos   {
   2759      1.1  christos     const IDESC *idesc = &or1k32bf_insn_data[itype];
   2760      1.1  christos     CGEN_INSN_WORD insn = entire_insn;
   2761      1.1  christos #define FLD(f) abuf->fields.sfmt_l_slli.f
   2762      1.1  christos     UINT f_r1;
   2763      1.1  christos     UINT f_r2;
   2764      1.1  christos 
   2765      1.1  christos     f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
   2766      1.1  christos     f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
   2767      1.1  christos 
   2768      1.1  christos   /* Record the fields for the semantic handler.  */
   2769      1.1  christos   FLD (f_r2) = f_r2;
   2770      1.1  christos   FLD (f_r1) = f_r1;
   2771      1.1  christos   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_exths", "f_r2 0x%x", 'x', f_r2, "f_r1 0x%x", 'x', f_r1, (char *) 0));
   2772      1.1  christos 
   2773      1.1  christos #undef FLD
   2774      1.1  christos     return idesc;
   2775      1.1  christos   }
   2776      1.1  christos 
   2777      1.1  christos  extract_sfmt_l_cmov:
   2778      1.1  christos   {
   2779      1.1  christos     const IDESC *idesc = &or1k32bf_insn_data[itype];
   2780      1.1  christos     CGEN_INSN_WORD insn = entire_insn;
   2781      1.1  christos #define FLD(f) abuf->fields.sfmt_l_sll.f
   2782      1.1  christos     UINT f_r1;
   2783      1.1  christos     UINT f_r2;
   2784      1.1  christos     UINT f_r3;
   2785      1.1  christos 
   2786      1.1  christos     f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
   2787      1.1  christos     f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
   2788      1.1  christos     f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5);
   2789      1.1  christos 
   2790      1.1  christos   /* Record the fields for the semantic handler.  */
   2791      1.1  christos   FLD (f_r2) = f_r2;
   2792      1.1  christos   FLD (f_r3) = f_r3;
   2793      1.1  christos   FLD (f_r1) = f_r1;
   2794      1.1  christos   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_cmov", "f_r2 0x%x", 'x', f_r2, "f_r3 0x%x", 'x', f_r3, "f_r1 0x%x", 'x', f_r1, (char *) 0));
   2795      1.1  christos 
   2796      1.1  christos #undef FLD
   2797      1.1  christos     return idesc;
   2798      1.1  christos   }
   2799      1.1  christos 
   2800      1.1  christos  extract_sfmt_l_sfgts:
   2801      1.1  christos   {
   2802      1.1  christos     const IDESC *idesc = &or1k32bf_insn_data[itype];
   2803      1.1  christos     CGEN_INSN_WORD insn = entire_insn;
   2804      1.1  christos #define FLD(f) abuf->fields.sfmt_l_sll.f
   2805      1.1  christos     UINT f_r2;
   2806      1.1  christos     UINT f_r3;
   2807      1.1  christos 
   2808      1.1  christos     f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
   2809      1.1  christos     f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5);
   2810      1.1  christos 
   2811      1.1  christos   /* Record the fields for the semantic handler.  */
   2812      1.1  christos   FLD (f_r2) = f_r2;
   2813      1.1  christos   FLD (f_r3) = f_r3;
   2814      1.1  christos   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_sfgts", "f_r2 0x%x", 'x', f_r2, "f_r3 0x%x", 'x', f_r3, (char *) 0));
   2815      1.1  christos 
   2816      1.1  christos #undef FLD
   2817      1.1  christos     return idesc;
   2818      1.1  christos   }
   2819      1.1  christos 
   2820      1.1  christos  extract_sfmt_l_sfgtsi:
   2821      1.1  christos   {
   2822      1.1  christos     const IDESC *idesc = &or1k32bf_insn_data[itype];
   2823      1.1  christos     CGEN_INSN_WORD insn = entire_insn;
   2824      1.1  christos #define FLD(f) abuf->fields.sfmt_l_lwz.f
   2825      1.1  christos     UINT f_r2;
   2826      1.1  christos     INT f_simm16;
   2827      1.1  christos 
   2828      1.1  christos     f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
   2829      1.1  christos     f_simm16 = EXTRACT_LSB0_SINT (insn, 32, 15, 16);
   2830      1.1  christos 
   2831      1.1  christos   /* Record the fields for the semantic handler.  */
   2832      1.1  christos   FLD (f_r2) = f_r2;
   2833      1.1  christos   FLD (f_simm16) = f_simm16;
   2834      1.1  christos   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_sfgtsi", "f_r2 0x%x", 'x', f_r2, "f_simm16 0x%x", 'x', f_simm16, (char *) 0));
   2835      1.1  christos 
   2836      1.1  christos #undef FLD
   2837      1.1  christos     return idesc;
   2838      1.1  christos   }
   2839      1.1  christos 
   2840      1.1  christos  extract_sfmt_l_mac:
   2841      1.1  christos   {
   2842      1.1  christos     const IDESC *idesc = &or1k32bf_insn_data[itype];
   2843      1.1  christos     CGEN_INSN_WORD insn = entire_insn;
   2844      1.1  christos #define FLD(f) abuf->fields.sfmt_l_sll.f
   2845      1.1  christos     UINT f_r2;
   2846      1.1  christos     UINT f_r3;
   2847      1.1  christos 
   2848      1.1  christos     f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
   2849      1.1  christos     f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5);
   2850      1.1  christos 
   2851      1.1  christos   /* Record the fields for the semantic handler.  */
   2852      1.1  christos   FLD (f_r2) = f_r2;
   2853      1.1  christos   FLD (f_r3) = f_r3;
   2854      1.1  christos   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_mac", "f_r2 0x%x", 'x', f_r2, "f_r3 0x%x", 'x', f_r3, (char *) 0));
   2855      1.1  christos 
   2856      1.1  christos #undef FLD
   2857      1.1  christos     return idesc;
   2858      1.1  christos   }
   2859      1.1  christos 
   2860      1.1  christos  extract_sfmt_l_maci:
   2861      1.1  christos   {
   2862      1.1  christos     const IDESC *idesc = &or1k32bf_insn_data[itype];
   2863      1.1  christos     CGEN_INSN_WORD insn = entire_insn;
   2864      1.1  christos #define FLD(f) abuf->fields.sfmt_l_lwz.f
   2865      1.1  christos     UINT f_r2;
   2866      1.1  christos     INT f_simm16;
   2867      1.1  christos 
   2868      1.1  christos     f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
   2869      1.1  christos     f_simm16 = EXTRACT_LSB0_SINT (insn, 32, 15, 16);
   2870      1.1  christos 
   2871      1.1  christos   /* Record the fields for the semantic handler.  */
   2872      1.1  christos   FLD (f_r2) = f_r2;
   2873      1.1  christos   FLD (f_simm16) = f_simm16;
   2874      1.1  christos   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_maci", "f_r2 0x%x", 'x', f_r2, "f_simm16 0x%x", 'x', f_simm16, (char *) 0));
   2875      1.1  christos 
   2876      1.1  christos #undef FLD
   2877      1.1  christos     return idesc;
   2878      1.1  christos   }
   2879      1.1  christos 
   2880      1.1  christos  extract_sfmt_l_macu:
   2881      1.1  christos   {
   2882      1.1  christos     const IDESC *idesc = &or1k32bf_insn_data[itype];
   2883      1.1  christos     CGEN_INSN_WORD insn = entire_insn;
   2884      1.1  christos #define FLD(f) abuf->fields.sfmt_l_sll.f
   2885      1.1  christos     UINT f_r2;
   2886      1.1  christos     UINT f_r3;
   2887      1.1  christos 
   2888      1.1  christos     f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
   2889      1.1  christos     f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5);
   2890      1.1  christos 
   2891      1.1  christos   /* Record the fields for the semantic handler.  */
   2892      1.1  christos   FLD (f_r2) = f_r2;
   2893      1.1  christos   FLD (f_r3) = f_r3;
   2894      1.1  christos   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_l_macu", "f_r2 0x%x", 'x', f_r2, "f_r3 0x%x", 'x', f_r3, (char *) 0));
   2895      1.1  christos 
   2896      1.1  christos #undef FLD
   2897      1.1  christos     return idesc;
   2898      1.1  christos   }
   2899      1.1  christos 
   2900      1.1  christos  extract_sfmt_lf_add_s:
   2901      1.1  christos   {
   2902      1.1  christos     const IDESC *idesc = &or1k32bf_insn_data[itype];
   2903      1.1  christos     CGEN_INSN_WORD insn = entire_insn;
   2904      1.1  christos #define FLD(f) abuf->fields.sfmt_l_sll.f
   2905      1.1  christos     UINT f_r1;
   2906      1.1  christos     UINT f_r2;
   2907      1.1  christos     UINT f_r3;
   2908      1.1  christos 
   2909      1.1  christos     f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
   2910      1.1  christos     f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
   2911      1.1  christos     f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5);
   2912      1.1  christos 
   2913      1.1  christos   /* Record the fields for the semantic handler.  */
   2914      1.1  christos   FLD (f_r2) = f_r2;
   2915      1.1  christos   FLD (f_r3) = f_r3;
   2916      1.1  christos   FLD (f_r1) = f_r1;
   2917      1.1  christos   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_lf_add_s", "f_r2 0x%x", 'x', f_r2, "f_r3 0x%x", 'x', f_r3, "f_r1 0x%x", 'x', f_r1, (char *) 0));
   2918      1.1  christos 
   2919      1.1  christos #undef FLD
   2920      1.1  christos     return idesc;
   2921      1.1  christos   }
   2922      1.1  christos 
   2923  1.1.1.2  christos  extract_sfmt_lf_add_d32:
   2924  1.1.1.2  christos   {
   2925  1.1.1.2  christos     const IDESC *idesc = &or1k32bf_insn_data[itype];
   2926  1.1.1.2  christos     CGEN_INSN_WORD insn = entire_insn;
   2927  1.1.1.2  christos #define FLD(f) abuf->fields.sfmt_lf_add_d32.f
   2928  1.1.1.2  christos     UINT f_r1;
   2929  1.1.1.2  christos     UINT f_r2;
   2930  1.1.1.2  christos     UINT f_r3;
   2931  1.1.1.2  christos     UINT f_rdoff_10_1;
   2932  1.1.1.2  christos     UINT f_raoff_9_1;
   2933  1.1.1.2  christos     UINT f_rboff_8_1;
   2934  1.1.1.2  christos     SI f_rdd32;
   2935  1.1.1.2  christos     SI f_rad32;
   2936  1.1.1.2  christos     SI f_rbd32;
   2937  1.1.1.2  christos 
   2938  1.1.1.2  christos     f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
   2939  1.1.1.2  christos     f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
   2940  1.1.1.2  christos     f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5);
   2941  1.1.1.2  christos     f_rdoff_10_1 = EXTRACT_LSB0_UINT (insn, 32, 10, 1);
   2942  1.1.1.2  christos     f_raoff_9_1 = EXTRACT_LSB0_UINT (insn, 32, 9, 1);
   2943  1.1.1.2  christos     f_rboff_8_1 = EXTRACT_LSB0_UINT (insn, 32, 8, 1);
   2944  1.1.1.2  christos   f_rdd32 = ((f_r1) | (((f_rdoff_10_1) << (5))));
   2945  1.1.1.2  christos   f_rad32 = ((f_r2) | (((f_raoff_9_1) << (5))));
   2946  1.1.1.2  christos   f_rbd32 = ((f_r3) | (((f_rboff_8_1) << (5))));
   2947  1.1.1.2  christos 
   2948  1.1.1.2  christos   /* Record the fields for the semantic handler.  */
   2949  1.1.1.2  christos   FLD (f_rad32) = f_rad32;
   2950  1.1.1.2  christos   FLD (f_rbd32) = f_rbd32;
   2951  1.1.1.2  christos   FLD (f_rdd32) = f_rdd32;
   2952  1.1.1.2  christos   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_lf_add_d32", "f_rad32 0x%x", 'x', f_rad32, "f_rbd32 0x%x", 'x', f_rbd32, "f_rdd32 0x%x", 'x', f_rdd32, (char *) 0));
   2953  1.1.1.2  christos 
   2954  1.1.1.2  christos #undef FLD
   2955  1.1.1.2  christos     return idesc;
   2956  1.1.1.2  christos   }
   2957  1.1.1.2  christos 
   2958      1.1  christos  extract_sfmt_lf_itof_s:
   2959      1.1  christos   {
   2960      1.1  christos     const IDESC *idesc = &or1k32bf_insn_data[itype];
   2961      1.1  christos     CGEN_INSN_WORD insn = entire_insn;
   2962      1.1  christos #define FLD(f) abuf->fields.sfmt_l_slli.f
   2963      1.1  christos     UINT f_r1;
   2964      1.1  christos     UINT f_r2;
   2965      1.1  christos 
   2966      1.1  christos     f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
   2967      1.1  christos     f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
   2968      1.1  christos 
   2969      1.1  christos   /* Record the fields for the semantic handler.  */
   2970      1.1  christos   FLD (f_r2) = f_r2;
   2971      1.1  christos   FLD (f_r1) = f_r1;
   2972      1.1  christos   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_lf_itof_s", "f_r2 0x%x", 'x', f_r2, "f_r1 0x%x", 'x', f_r1, (char *) 0));
   2973      1.1  christos 
   2974      1.1  christos #undef FLD
   2975      1.1  christos     return idesc;
   2976      1.1  christos   }
   2977      1.1  christos 
   2978  1.1.1.2  christos  extract_sfmt_lf_itof_d32:
   2979  1.1.1.2  christos   {
   2980  1.1.1.2  christos     const IDESC *idesc = &or1k32bf_insn_data[itype];
   2981  1.1.1.2  christos     CGEN_INSN_WORD insn = entire_insn;
   2982  1.1.1.2  christos #define FLD(f) abuf->fields.sfmt_lf_add_d32.f
   2983  1.1.1.2  christos     UINT f_r1;
   2984  1.1.1.2  christos     UINT f_r2;
   2985  1.1.1.2  christos     UINT f_rdoff_10_1;
   2986  1.1.1.2  christos     UINT f_raoff_9_1;
   2987  1.1.1.2  christos     SI f_rdd32;
   2988  1.1.1.2  christos     SI f_rad32;
   2989  1.1.1.2  christos 
   2990  1.1.1.2  christos     f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
   2991  1.1.1.2  christos     f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
   2992  1.1.1.2  christos     f_rdoff_10_1 = EXTRACT_LSB0_UINT (insn, 32, 10, 1);
   2993  1.1.1.2  christos     f_raoff_9_1 = EXTRACT_LSB0_UINT (insn, 32, 9, 1);
   2994  1.1.1.2  christos   f_rdd32 = ((f_r1) | (((f_rdoff_10_1) << (5))));
   2995  1.1.1.2  christos   f_rad32 = ((f_r2) | (((f_raoff_9_1) << (5))));
   2996  1.1.1.2  christos 
   2997  1.1.1.2  christos   /* Record the fields for the semantic handler.  */
   2998  1.1.1.2  christos   FLD (f_rad32) = f_rad32;
   2999  1.1.1.2  christos   FLD (f_rdd32) = f_rdd32;
   3000  1.1.1.2  christos   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_lf_itof_d32", "f_rad32 0x%x", 'x', f_rad32, "f_rdd32 0x%x", 'x', f_rdd32, (char *) 0));
   3001  1.1.1.2  christos 
   3002  1.1.1.2  christos #undef FLD
   3003  1.1.1.2  christos     return idesc;
   3004  1.1.1.2  christos   }
   3005  1.1.1.2  christos 
   3006      1.1  christos  extract_sfmt_lf_ftoi_s:
   3007      1.1  christos   {
   3008      1.1  christos     const IDESC *idesc = &or1k32bf_insn_data[itype];
   3009      1.1  christos     CGEN_INSN_WORD insn = entire_insn;
   3010      1.1  christos #define FLD(f) abuf->fields.sfmt_l_slli.f
   3011      1.1  christos     UINT f_r1;
   3012      1.1  christos     UINT f_r2;
   3013      1.1  christos 
   3014      1.1  christos     f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
   3015      1.1  christos     f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
   3016      1.1  christos 
   3017      1.1  christos   /* Record the fields for the semantic handler.  */
   3018      1.1  christos   FLD (f_r2) = f_r2;
   3019      1.1  christos   FLD (f_r1) = f_r1;
   3020      1.1  christos   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_lf_ftoi_s", "f_r2 0x%x", 'x', f_r2, "f_r1 0x%x", 'x', f_r1, (char *) 0));
   3021      1.1  christos 
   3022      1.1  christos #undef FLD
   3023      1.1  christos     return idesc;
   3024      1.1  christos   }
   3025      1.1  christos 
   3026  1.1.1.2  christos  extract_sfmt_lf_ftoi_d32:
   3027  1.1.1.2  christos   {
   3028  1.1.1.2  christos     const IDESC *idesc = &or1k32bf_insn_data[itype];
   3029  1.1.1.2  christos     CGEN_INSN_WORD insn = entire_insn;
   3030  1.1.1.2  christos #define FLD(f) abuf->fields.sfmt_lf_add_d32.f
   3031  1.1.1.2  christos     UINT f_r1;
   3032  1.1.1.2  christos     UINT f_r2;
   3033  1.1.1.2  christos     UINT f_rdoff_10_1;
   3034  1.1.1.2  christos     UINT f_raoff_9_1;
   3035  1.1.1.2  christos     SI f_rdd32;
   3036  1.1.1.2  christos     SI f_rad32;
   3037  1.1.1.2  christos 
   3038  1.1.1.2  christos     f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
   3039  1.1.1.2  christos     f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
   3040  1.1.1.2  christos     f_rdoff_10_1 = EXTRACT_LSB0_UINT (insn, 32, 10, 1);
   3041  1.1.1.2  christos     f_raoff_9_1 = EXTRACT_LSB0_UINT (insn, 32, 9, 1);
   3042  1.1.1.2  christos   f_rdd32 = ((f_r1) | (((f_rdoff_10_1) << (5))));
   3043  1.1.1.2  christos   f_rad32 = ((f_r2) | (((f_raoff_9_1) << (5))));
   3044  1.1.1.2  christos 
   3045  1.1.1.2  christos   /* Record the fields for the semantic handler.  */
   3046  1.1.1.2  christos   FLD (f_rad32) = f_rad32;
   3047  1.1.1.2  christos   FLD (f_rdd32) = f_rdd32;
   3048  1.1.1.2  christos   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_lf_ftoi_d32", "f_rad32 0x%x", 'x', f_rad32, "f_rdd32 0x%x", 'x', f_rdd32, (char *) 0));
   3049  1.1.1.2  christos 
   3050  1.1.1.2  christos #undef FLD
   3051  1.1.1.2  christos     return idesc;
   3052  1.1.1.2  christos   }
   3053  1.1.1.2  christos 
   3054  1.1.1.2  christos  extract_sfmt_lf_sfeq_s:
   3055      1.1  christos   {
   3056      1.1  christos     const IDESC *idesc = &or1k32bf_insn_data[itype];
   3057      1.1  christos     CGEN_INSN_WORD insn = entire_insn;
   3058      1.1  christos #define FLD(f) abuf->fields.sfmt_l_sll.f
   3059      1.1  christos     UINT f_r2;
   3060      1.1  christos     UINT f_r3;
   3061      1.1  christos 
   3062      1.1  christos     f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
   3063      1.1  christos     f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5);
   3064      1.1  christos 
   3065      1.1  christos   /* Record the fields for the semantic handler.  */
   3066      1.1  christos   FLD (f_r2) = f_r2;
   3067      1.1  christos   FLD (f_r3) = f_r3;
   3068  1.1.1.2  christos   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_lf_sfeq_s", "f_r2 0x%x", 'x', f_r2, "f_r3 0x%x", 'x', f_r3, (char *) 0));
   3069  1.1.1.2  christos 
   3070  1.1.1.2  christos #undef FLD
   3071  1.1.1.2  christos     return idesc;
   3072  1.1.1.2  christos   }
   3073  1.1.1.2  christos 
   3074  1.1.1.2  christos  extract_sfmt_lf_sfeq_d32:
   3075  1.1.1.2  christos   {
   3076  1.1.1.2  christos     const IDESC *idesc = &or1k32bf_insn_data[itype];
   3077  1.1.1.2  christos     CGEN_INSN_WORD insn = entire_insn;
   3078  1.1.1.2  christos #define FLD(f) abuf->fields.sfmt_lf_add_d32.f
   3079  1.1.1.2  christos     UINT f_r2;
   3080  1.1.1.2  christos     UINT f_r3;
   3081  1.1.1.2  christos     UINT f_raoff_9_1;
   3082  1.1.1.2  christos     UINT f_rboff_8_1;
   3083  1.1.1.2  christos     SI f_rad32;
   3084  1.1.1.2  christos     SI f_rbd32;
   3085  1.1.1.2  christos 
   3086  1.1.1.2  christos     f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
   3087  1.1.1.2  christos     f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5);
   3088  1.1.1.2  christos     f_raoff_9_1 = EXTRACT_LSB0_UINT (insn, 32, 9, 1);
   3089  1.1.1.2  christos     f_rboff_8_1 = EXTRACT_LSB0_UINT (insn, 32, 8, 1);
   3090  1.1.1.2  christos   f_rad32 = ((f_r2) | (((f_raoff_9_1) << (5))));
   3091  1.1.1.2  christos   f_rbd32 = ((f_r3) | (((f_rboff_8_1) << (5))));
   3092  1.1.1.2  christos 
   3093  1.1.1.2  christos   /* Record the fields for the semantic handler.  */
   3094  1.1.1.2  christos   FLD (f_rad32) = f_rad32;
   3095  1.1.1.2  christos   FLD (f_rbd32) = f_rbd32;
   3096  1.1.1.2  christos   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_lf_sfeq_d32", "f_rad32 0x%x", 'x', f_rad32, "f_rbd32 0x%x", 'x', f_rbd32, (char *) 0));
   3097      1.1  christos 
   3098      1.1  christos #undef FLD
   3099      1.1  christos     return idesc;
   3100      1.1  christos   }
   3101      1.1  christos 
   3102      1.1  christos  extract_sfmt_lf_madd_s:
   3103      1.1  christos   {
   3104      1.1  christos     const IDESC *idesc = &or1k32bf_insn_data[itype];
   3105      1.1  christos     CGEN_INSN_WORD insn = entire_insn;
   3106      1.1  christos #define FLD(f) abuf->fields.sfmt_l_sll.f
   3107      1.1  christos     UINT f_r1;
   3108      1.1  christos     UINT f_r2;
   3109      1.1  christos     UINT f_r3;
   3110      1.1  christos 
   3111      1.1  christos     f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
   3112      1.1  christos     f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
   3113      1.1  christos     f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5);
   3114      1.1  christos 
   3115      1.1  christos   /* Record the fields for the semantic handler.  */
   3116      1.1  christos   FLD (f_r2) = f_r2;
   3117      1.1  christos   FLD (f_r3) = f_r3;
   3118      1.1  christos   FLD (f_r1) = f_r1;
   3119      1.1  christos   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_lf_madd_s", "f_r2 0x%x", 'x', f_r2, "f_r3 0x%x", 'x', f_r3, "f_r1 0x%x", 'x', f_r1, (char *) 0));
   3120      1.1  christos 
   3121      1.1  christos #undef FLD
   3122      1.1  christos     return idesc;
   3123      1.1  christos   }
   3124      1.1  christos 
   3125  1.1.1.2  christos  extract_sfmt_lf_madd_d32:
   3126  1.1.1.2  christos   {
   3127  1.1.1.2  christos     const IDESC *idesc = &or1k32bf_insn_data[itype];
   3128  1.1.1.2  christos     CGEN_INSN_WORD insn = entire_insn;
   3129  1.1.1.2  christos #define FLD(f) abuf->fields.sfmt_lf_add_d32.f
   3130  1.1.1.2  christos     UINT f_r1;
   3131  1.1.1.2  christos     UINT f_r2;
   3132  1.1.1.2  christos     UINT f_r3;
   3133  1.1.1.2  christos     UINT f_rdoff_10_1;
   3134  1.1.1.2  christos     UINT f_raoff_9_1;
   3135  1.1.1.2  christos     UINT f_rboff_8_1;
   3136  1.1.1.2  christos     SI f_rdd32;
   3137  1.1.1.2  christos     SI f_rad32;
   3138  1.1.1.2  christos     SI f_rbd32;
   3139  1.1.1.2  christos 
   3140  1.1.1.2  christos     f_r1 = EXTRACT_LSB0_UINT (insn, 32, 25, 5);
   3141  1.1.1.2  christos     f_r2 = EXTRACT_LSB0_UINT (insn, 32, 20, 5);
   3142  1.1.1.2  christos     f_r3 = EXTRACT_LSB0_UINT (insn, 32, 15, 5);
   3143  1.1.1.2  christos     f_rdoff_10_1 = EXTRACT_LSB0_UINT (insn, 32, 10, 1);
   3144  1.1.1.2  christos     f_raoff_9_1 = EXTRACT_LSB0_UINT (insn, 32, 9, 1);
   3145  1.1.1.2  christos     f_rboff_8_1 = EXTRACT_LSB0_UINT (insn, 32, 8, 1);
   3146  1.1.1.2  christos   f_rdd32 = ((f_r1) | (((f_rdoff_10_1) << (5))));
   3147  1.1.1.2  christos   f_rad32 = ((f_r2) | (((f_raoff_9_1) << (5))));
   3148  1.1.1.2  christos   f_rbd32 = ((f_r3) | (((f_rboff_8_1) << (5))));
   3149  1.1.1.2  christos 
   3150  1.1.1.2  christos   /* Record the fields for the semantic handler.  */
   3151  1.1.1.2  christos   FLD (f_rad32) = f_rad32;
   3152  1.1.1.2  christos   FLD (f_rbd32) = f_rbd32;
   3153  1.1.1.2  christos   FLD (f_rdd32) = f_rdd32;
   3154  1.1.1.2  christos   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_lf_madd_d32", "f_rad32 0x%x", 'x', f_rad32, "f_rbd32 0x%x", 'x', f_rbd32, "f_rdd32 0x%x", 'x', f_rdd32, (char *) 0));
   3155  1.1.1.2  christos 
   3156  1.1.1.2  christos #undef FLD
   3157  1.1.1.2  christos     return idesc;
   3158  1.1.1.2  christos   }
   3159  1.1.1.2  christos 
   3160      1.1  christos }
   3161