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