Home | History | Annotate | Line # | Download | only in cris
decodev32.c revision 1.1.1.9
      1 /* Simulator instruction decoder for crisv32f.
      2 
      3 THIS FILE IS MACHINE GENERATED WITH CGEN.
      4 
      5 Copyright (C) 1996-2024 Free Software Foundation, Inc.
      6 
      7 This file is part of the GNU simulators.
      8 
      9    This file is free software; you can redistribute it and/or modify
     10    it under the terms of the GNU General Public License as published by
     11    the Free Software Foundation; either version 3, or (at your option)
     12    any later version.
     13 
     14    It is distributed in the hope that it will be useful, but WITHOUT
     15    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
     16    or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
     17    License for more details.
     18 
     19    You should have received a copy of the GNU General Public License along
     20    with this program; if not, write to the Free Software Foundation, Inc.,
     21    51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
     22 
     23 */
     24 
     25 #define WANT_CPU crisv32f
     26 #define WANT_CPU_CRISV32F
     27 
     28 #include "sim-main.h"
     29 #include "sim-assert.h"
     30 #include "cgen-mem.h"
     31 #include "cgen-ops.h"
     32 
     33 /* The instruction descriptor array.
     34    This is computed at runtime.  Space for it is not malloc'd to save a
     35    teensy bit of cpu in the decoder.  Moving it to malloc space is trivial
     36    but won't be done until necessary (we don't currently support the runtime
     37    addition of instructions nor an SMP machine with different cpus).  */
     38 static IDESC crisv32f_insn_data[CRISV32F_INSN__MAX];
     39 
     40 /* Commas between elements are contained in the macros.
     41    Some of these are conditionally compiled out.  */
     42 
     43 static const struct insn_sem crisv32f_insn_sem[] =
     44 {
     45   { VIRTUAL_INSN_X_INVALID, CRISV32F_INSN_X_INVALID, CRISV32F_SFMT_EMPTY },
     46   { VIRTUAL_INSN_X_AFTER, CRISV32F_INSN_X_AFTER, CRISV32F_SFMT_EMPTY },
     47   { VIRTUAL_INSN_X_BEFORE, CRISV32F_INSN_X_BEFORE, CRISV32F_SFMT_EMPTY },
     48   { VIRTUAL_INSN_X_CTI_CHAIN, CRISV32F_INSN_X_CTI_CHAIN, CRISV32F_SFMT_EMPTY },
     49   { VIRTUAL_INSN_X_CHAIN, CRISV32F_INSN_X_CHAIN, CRISV32F_SFMT_EMPTY },
     50   { VIRTUAL_INSN_X_BEGIN, CRISV32F_INSN_X_BEGIN, CRISV32F_SFMT_EMPTY },
     51   { CRIS_INSN_MOVE_B_R, CRISV32F_INSN_MOVE_B_R, CRISV32F_SFMT_MOVE_B_R },
     52   { CRIS_INSN_MOVE_W_R, CRISV32F_INSN_MOVE_W_R, CRISV32F_SFMT_MOVE_B_R },
     53   { CRIS_INSN_MOVE_D_R, CRISV32F_INSN_MOVE_D_R, CRISV32F_SFMT_MOVE_D_R },
     54   { CRIS_INSN_MOVEQ, CRISV32F_INSN_MOVEQ, CRISV32F_SFMT_MOVEQ },
     55   { CRIS_INSN_MOVS_B_R, CRISV32F_INSN_MOVS_B_R, CRISV32F_SFMT_MOVS_B_R },
     56   { CRIS_INSN_MOVS_W_R, CRISV32F_INSN_MOVS_W_R, CRISV32F_SFMT_MOVS_B_R },
     57   { CRIS_INSN_MOVU_B_R, CRISV32F_INSN_MOVU_B_R, CRISV32F_SFMT_MOVS_B_R },
     58   { CRIS_INSN_MOVU_W_R, CRISV32F_INSN_MOVU_W_R, CRISV32F_SFMT_MOVS_B_R },
     59   { CRIS_INSN_MOVECBR, CRISV32F_INSN_MOVECBR, CRISV32F_SFMT_MOVECBR },
     60   { CRIS_INSN_MOVECWR, CRISV32F_INSN_MOVECWR, CRISV32F_SFMT_MOVECWR },
     61   { CRIS_INSN_MOVECDR, CRISV32F_INSN_MOVECDR, CRISV32F_SFMT_MOVECDR },
     62   { CRIS_INSN_MOVSCBR, CRISV32F_INSN_MOVSCBR, CRISV32F_SFMT_MOVSCBR },
     63   { CRIS_INSN_MOVSCWR, CRISV32F_INSN_MOVSCWR, CRISV32F_SFMT_MOVSCWR },
     64   { CRIS_INSN_MOVUCBR, CRISV32F_INSN_MOVUCBR, CRISV32F_SFMT_MOVUCBR },
     65   { CRIS_INSN_MOVUCWR, CRISV32F_INSN_MOVUCWR, CRISV32F_SFMT_MOVUCWR },
     66   { CRIS_INSN_ADDQ, CRISV32F_INSN_ADDQ, CRISV32F_SFMT_ADDQ },
     67   { CRIS_INSN_SUBQ, CRISV32F_INSN_SUBQ, CRISV32F_SFMT_ADDQ },
     68   { CRIS_INSN_CMP_R_B_R, CRISV32F_INSN_CMP_R_B_R, CRISV32F_SFMT_CMP_R_B_R },
     69   { CRIS_INSN_CMP_R_W_R, CRISV32F_INSN_CMP_R_W_R, CRISV32F_SFMT_CMP_R_B_R },
     70   { CRIS_INSN_CMP_R_D_R, CRISV32F_INSN_CMP_R_D_R, CRISV32F_SFMT_CMP_R_B_R },
     71   { CRIS_INSN_CMP_M_B_M, CRISV32F_INSN_CMP_M_B_M, CRISV32F_SFMT_CMP_M_B_M },
     72   { CRIS_INSN_CMP_M_W_M, CRISV32F_INSN_CMP_M_W_M, CRISV32F_SFMT_CMP_M_W_M },
     73   { CRIS_INSN_CMP_M_D_M, CRISV32F_INSN_CMP_M_D_M, CRISV32F_SFMT_CMP_M_D_M },
     74   { CRIS_INSN_CMPCBR, CRISV32F_INSN_CMPCBR, CRISV32F_SFMT_CMPCBR },
     75   { CRIS_INSN_CMPCWR, CRISV32F_INSN_CMPCWR, CRISV32F_SFMT_CMPCWR },
     76   { CRIS_INSN_CMPCDR, CRISV32F_INSN_CMPCDR, CRISV32F_SFMT_CMPCDR },
     77   { CRIS_INSN_CMPQ, CRISV32F_INSN_CMPQ, CRISV32F_SFMT_CMPQ },
     78   { CRIS_INSN_CMPS_M_B_M, CRISV32F_INSN_CMPS_M_B_M, CRISV32F_SFMT_CMP_M_B_M },
     79   { CRIS_INSN_CMPS_M_W_M, CRISV32F_INSN_CMPS_M_W_M, CRISV32F_SFMT_CMP_M_W_M },
     80   { CRIS_INSN_CMPSCBR, CRISV32F_INSN_CMPSCBR, CRISV32F_SFMT_CMPCBR },
     81   { CRIS_INSN_CMPSCWR, CRISV32F_INSN_CMPSCWR, CRISV32F_SFMT_CMPCWR },
     82   { CRIS_INSN_CMPU_M_B_M, CRISV32F_INSN_CMPU_M_B_M, CRISV32F_SFMT_CMP_M_B_M },
     83   { CRIS_INSN_CMPU_M_W_M, CRISV32F_INSN_CMPU_M_W_M, CRISV32F_SFMT_CMP_M_W_M },
     84   { CRIS_INSN_CMPUCBR, CRISV32F_INSN_CMPUCBR, CRISV32F_SFMT_CMPUCBR },
     85   { CRIS_INSN_CMPUCWR, CRISV32F_INSN_CMPUCWR, CRISV32F_SFMT_CMPUCWR },
     86   { CRIS_INSN_MOVE_M_B_M, CRISV32F_INSN_MOVE_M_B_M, CRISV32F_SFMT_MOVE_M_B_M },
     87   { CRIS_INSN_MOVE_M_W_M, CRISV32F_INSN_MOVE_M_W_M, CRISV32F_SFMT_MOVE_M_W_M },
     88   { CRIS_INSN_MOVE_M_D_M, CRISV32F_INSN_MOVE_M_D_M, CRISV32F_SFMT_MOVE_M_D_M },
     89   { CRIS_INSN_MOVS_M_B_M, CRISV32F_INSN_MOVS_M_B_M, CRISV32F_SFMT_MOVS_M_B_M },
     90   { CRIS_INSN_MOVS_M_W_M, CRISV32F_INSN_MOVS_M_W_M, CRISV32F_SFMT_MOVS_M_W_M },
     91   { CRIS_INSN_MOVU_M_B_M, CRISV32F_INSN_MOVU_M_B_M, CRISV32F_SFMT_MOVS_M_B_M },
     92   { CRIS_INSN_MOVU_M_W_M, CRISV32F_INSN_MOVU_M_W_M, CRISV32F_SFMT_MOVS_M_W_M },
     93   { CRIS_INSN_MOVE_R_SPRV32, CRISV32F_INSN_MOVE_R_SPRV32, CRISV32F_SFMT_MOVE_R_SPRV32 },
     94   { CRIS_INSN_MOVE_SPR_RV32, CRISV32F_INSN_MOVE_SPR_RV32, CRISV32F_SFMT_MOVE_SPR_RV32 },
     95   { CRIS_INSN_MOVE_M_SPRV32, CRISV32F_INSN_MOVE_M_SPRV32, CRISV32F_SFMT_MOVE_M_SPRV32 },
     96   { CRIS_INSN_MOVE_C_SPRV32_P2, CRISV32F_INSN_MOVE_C_SPRV32_P2, CRISV32F_SFMT_MOVE_C_SPRV32_P2 },
     97   { CRIS_INSN_MOVE_C_SPRV32_P3, CRISV32F_INSN_MOVE_C_SPRV32_P3, CRISV32F_SFMT_MOVE_C_SPRV32_P2 },
     98   { CRIS_INSN_MOVE_C_SPRV32_P5, CRISV32F_INSN_MOVE_C_SPRV32_P5, CRISV32F_SFMT_MOVE_C_SPRV32_P2 },
     99   { CRIS_INSN_MOVE_C_SPRV32_P6, CRISV32F_INSN_MOVE_C_SPRV32_P6, CRISV32F_SFMT_MOVE_C_SPRV32_P2 },
    100   { CRIS_INSN_MOVE_C_SPRV32_P7, CRISV32F_INSN_MOVE_C_SPRV32_P7, CRISV32F_SFMT_MOVE_C_SPRV32_P2 },
    101   { CRIS_INSN_MOVE_C_SPRV32_P9, CRISV32F_INSN_MOVE_C_SPRV32_P9, CRISV32F_SFMT_MOVE_C_SPRV32_P2 },
    102   { CRIS_INSN_MOVE_C_SPRV32_P10, CRISV32F_INSN_MOVE_C_SPRV32_P10, CRISV32F_SFMT_MOVE_C_SPRV32_P2 },
    103   { CRIS_INSN_MOVE_C_SPRV32_P11, CRISV32F_INSN_MOVE_C_SPRV32_P11, CRISV32F_SFMT_MOVE_C_SPRV32_P2 },
    104   { CRIS_INSN_MOVE_C_SPRV32_P12, CRISV32F_INSN_MOVE_C_SPRV32_P12, CRISV32F_SFMT_MOVE_C_SPRV32_P2 },
    105   { CRIS_INSN_MOVE_C_SPRV32_P13, CRISV32F_INSN_MOVE_C_SPRV32_P13, CRISV32F_SFMT_MOVE_C_SPRV32_P2 },
    106   { CRIS_INSN_MOVE_C_SPRV32_P14, CRISV32F_INSN_MOVE_C_SPRV32_P14, CRISV32F_SFMT_MOVE_C_SPRV32_P2 },
    107   { CRIS_INSN_MOVE_C_SPRV32_P15, CRISV32F_INSN_MOVE_C_SPRV32_P15, CRISV32F_SFMT_MOVE_C_SPRV32_P2 },
    108   { CRIS_INSN_MOVE_SPR_MV32, CRISV32F_INSN_MOVE_SPR_MV32, CRISV32F_SFMT_MOVE_SPR_MV32 },
    109   { CRIS_INSN_MOVE_SS_R, CRISV32F_INSN_MOVE_SS_R, CRISV32F_SFMT_MOVE_SS_R },
    110   { CRIS_INSN_MOVE_R_SS, CRISV32F_INSN_MOVE_R_SS, CRISV32F_SFMT_MOVE_R_SS },
    111   { CRIS_INSN_MOVEM_R_M_V32, CRISV32F_INSN_MOVEM_R_M_V32, CRISV32F_SFMT_MOVEM_R_M_V32 },
    112   { CRIS_INSN_MOVEM_M_R_V32, CRISV32F_INSN_MOVEM_M_R_V32, CRISV32F_SFMT_MOVEM_M_R_V32 },
    113   { CRIS_INSN_ADD_B_R, CRISV32F_INSN_ADD_B_R, CRISV32F_SFMT_ADD_B_R },
    114   { CRIS_INSN_ADD_W_R, CRISV32F_INSN_ADD_W_R, CRISV32F_SFMT_ADD_B_R },
    115   { CRIS_INSN_ADD_D_R, CRISV32F_INSN_ADD_D_R, CRISV32F_SFMT_ADD_D_R },
    116   { CRIS_INSN_ADD_M_B_M, CRISV32F_INSN_ADD_M_B_M, CRISV32F_SFMT_ADD_M_B_M },
    117   { CRIS_INSN_ADD_M_W_M, CRISV32F_INSN_ADD_M_W_M, CRISV32F_SFMT_ADD_M_W_M },
    118   { CRIS_INSN_ADD_M_D_M, CRISV32F_INSN_ADD_M_D_M, CRISV32F_SFMT_ADD_M_D_M },
    119   { CRIS_INSN_ADDCBR, CRISV32F_INSN_ADDCBR, CRISV32F_SFMT_ADDCBR },
    120   { CRIS_INSN_ADDCWR, CRISV32F_INSN_ADDCWR, CRISV32F_SFMT_ADDCWR },
    121   { CRIS_INSN_ADDCDR, CRISV32F_INSN_ADDCDR, CRISV32F_SFMT_ADDCDR },
    122   { CRIS_INSN_ADDS_B_R, CRISV32F_INSN_ADDS_B_R, CRISV32F_SFMT_ADD_D_R },
    123   { CRIS_INSN_ADDS_W_R, CRISV32F_INSN_ADDS_W_R, CRISV32F_SFMT_ADD_D_R },
    124   { CRIS_INSN_ADDS_M_B_M, CRISV32F_INSN_ADDS_M_B_M, CRISV32F_SFMT_ADDS_M_B_M },
    125   { CRIS_INSN_ADDS_M_W_M, CRISV32F_INSN_ADDS_M_W_M, CRISV32F_SFMT_ADDS_M_W_M },
    126   { CRIS_INSN_ADDSCBR, CRISV32F_INSN_ADDSCBR, CRISV32F_SFMT_ADDSCBR },
    127   { CRIS_INSN_ADDSCWR, CRISV32F_INSN_ADDSCWR, CRISV32F_SFMT_ADDSCWR },
    128   { CRIS_INSN_ADDU_B_R, CRISV32F_INSN_ADDU_B_R, CRISV32F_SFMT_ADD_D_R },
    129   { CRIS_INSN_ADDU_W_R, CRISV32F_INSN_ADDU_W_R, CRISV32F_SFMT_ADD_D_R },
    130   { CRIS_INSN_ADDU_M_B_M, CRISV32F_INSN_ADDU_M_B_M, CRISV32F_SFMT_ADDS_M_B_M },
    131   { CRIS_INSN_ADDU_M_W_M, CRISV32F_INSN_ADDU_M_W_M, CRISV32F_SFMT_ADDS_M_W_M },
    132   { CRIS_INSN_ADDUCBR, CRISV32F_INSN_ADDUCBR, CRISV32F_SFMT_ADDSCBR },
    133   { CRIS_INSN_ADDUCWR, CRISV32F_INSN_ADDUCWR, CRISV32F_SFMT_ADDSCWR },
    134   { CRIS_INSN_SUB_B_R, CRISV32F_INSN_SUB_B_R, CRISV32F_SFMT_ADD_B_R },
    135   { CRIS_INSN_SUB_W_R, CRISV32F_INSN_SUB_W_R, CRISV32F_SFMT_ADD_B_R },
    136   { CRIS_INSN_SUB_D_R, CRISV32F_INSN_SUB_D_R, CRISV32F_SFMT_ADD_D_R },
    137   { CRIS_INSN_SUB_M_B_M, CRISV32F_INSN_SUB_M_B_M, CRISV32F_SFMT_ADD_M_B_M },
    138   { CRIS_INSN_SUB_M_W_M, CRISV32F_INSN_SUB_M_W_M, CRISV32F_SFMT_ADD_M_W_M },
    139   { CRIS_INSN_SUB_M_D_M, CRISV32F_INSN_SUB_M_D_M, CRISV32F_SFMT_ADD_M_D_M },
    140   { CRIS_INSN_SUBCBR, CRISV32F_INSN_SUBCBR, CRISV32F_SFMT_ADDCBR },
    141   { CRIS_INSN_SUBCWR, CRISV32F_INSN_SUBCWR, CRISV32F_SFMT_ADDCWR },
    142   { CRIS_INSN_SUBCDR, CRISV32F_INSN_SUBCDR, CRISV32F_SFMT_ADDCDR },
    143   { CRIS_INSN_SUBS_B_R, CRISV32F_INSN_SUBS_B_R, CRISV32F_SFMT_ADD_D_R },
    144   { CRIS_INSN_SUBS_W_R, CRISV32F_INSN_SUBS_W_R, CRISV32F_SFMT_ADD_D_R },
    145   { CRIS_INSN_SUBS_M_B_M, CRISV32F_INSN_SUBS_M_B_M, CRISV32F_SFMT_ADDS_M_B_M },
    146   { CRIS_INSN_SUBS_M_W_M, CRISV32F_INSN_SUBS_M_W_M, CRISV32F_SFMT_ADDS_M_W_M },
    147   { CRIS_INSN_SUBSCBR, CRISV32F_INSN_SUBSCBR, CRISV32F_SFMT_ADDSCBR },
    148   { CRIS_INSN_SUBSCWR, CRISV32F_INSN_SUBSCWR, CRISV32F_SFMT_ADDSCWR },
    149   { CRIS_INSN_SUBU_B_R, CRISV32F_INSN_SUBU_B_R, CRISV32F_SFMT_ADD_D_R },
    150   { CRIS_INSN_SUBU_W_R, CRISV32F_INSN_SUBU_W_R, CRISV32F_SFMT_ADD_D_R },
    151   { CRIS_INSN_SUBU_M_B_M, CRISV32F_INSN_SUBU_M_B_M, CRISV32F_SFMT_ADDS_M_B_M },
    152   { CRIS_INSN_SUBU_M_W_M, CRISV32F_INSN_SUBU_M_W_M, CRISV32F_SFMT_ADDS_M_W_M },
    153   { CRIS_INSN_SUBUCBR, CRISV32F_INSN_SUBUCBR, CRISV32F_SFMT_ADDSCBR },
    154   { CRIS_INSN_SUBUCWR, CRISV32F_INSN_SUBUCWR, CRISV32F_SFMT_ADDSCWR },
    155   { CRIS_INSN_ADDC_R, CRISV32F_INSN_ADDC_R, CRISV32F_SFMT_ADD_D_R },
    156   { CRIS_INSN_ADDC_M, CRISV32F_INSN_ADDC_M, CRISV32F_SFMT_ADDC_M },
    157   { CRIS_INSN_ADDC_C, CRISV32F_INSN_ADDC_C, CRISV32F_SFMT_ADDCDR },
    158   { CRIS_INSN_LAPC_D, CRISV32F_INSN_LAPC_D, CRISV32F_SFMT_LAPC_D },
    159   { CRIS_INSN_LAPCQ, CRISV32F_INSN_LAPCQ, CRISV32F_SFMT_LAPCQ },
    160   { CRIS_INSN_ADDI_B_R, CRISV32F_INSN_ADDI_B_R, CRISV32F_SFMT_ADDI_B_R },
    161   { CRIS_INSN_ADDI_W_R, CRISV32F_INSN_ADDI_W_R, CRISV32F_SFMT_ADDI_B_R },
    162   { CRIS_INSN_ADDI_D_R, CRISV32F_INSN_ADDI_D_R, CRISV32F_SFMT_ADDI_B_R },
    163   { CRIS_INSN_NEG_B_R, CRISV32F_INSN_NEG_B_R, CRISV32F_SFMT_NEG_B_R },
    164   { CRIS_INSN_NEG_W_R, CRISV32F_INSN_NEG_W_R, CRISV32F_SFMT_NEG_B_R },
    165   { CRIS_INSN_NEG_D_R, CRISV32F_INSN_NEG_D_R, CRISV32F_SFMT_NEG_D_R },
    166   { CRIS_INSN_TEST_M_B_M, CRISV32F_INSN_TEST_M_B_M, CRISV32F_SFMT_TEST_M_B_M },
    167   { CRIS_INSN_TEST_M_W_M, CRISV32F_INSN_TEST_M_W_M, CRISV32F_SFMT_TEST_M_W_M },
    168   { CRIS_INSN_TEST_M_D_M, CRISV32F_INSN_TEST_M_D_M, CRISV32F_SFMT_TEST_M_D_M },
    169   { CRIS_INSN_MOVE_R_M_B_M, CRISV32F_INSN_MOVE_R_M_B_M, CRISV32F_SFMT_MOVE_R_M_B_M },
    170   { CRIS_INSN_MOVE_R_M_W_M, CRISV32F_INSN_MOVE_R_M_W_M, CRISV32F_SFMT_MOVE_R_M_W_M },
    171   { CRIS_INSN_MOVE_R_M_D_M, CRISV32F_INSN_MOVE_R_M_D_M, CRISV32F_SFMT_MOVE_R_M_D_M },
    172   { CRIS_INSN_MULS_B, CRISV32F_INSN_MULS_B, CRISV32F_SFMT_MULS_B },
    173   { CRIS_INSN_MULS_W, CRISV32F_INSN_MULS_W, CRISV32F_SFMT_MULS_B },
    174   { CRIS_INSN_MULS_D, CRISV32F_INSN_MULS_D, CRISV32F_SFMT_MULS_B },
    175   { CRIS_INSN_MULU_B, CRISV32F_INSN_MULU_B, CRISV32F_SFMT_MULS_B },
    176   { CRIS_INSN_MULU_W, CRISV32F_INSN_MULU_W, CRISV32F_SFMT_MULS_B },
    177   { CRIS_INSN_MULU_D, CRISV32F_INSN_MULU_D, CRISV32F_SFMT_MULS_B },
    178   { CRIS_INSN_MCP, CRISV32F_INSN_MCP, CRISV32F_SFMT_MCP },
    179   { CRIS_INSN_DSTEP, CRISV32F_INSN_DSTEP, CRISV32F_SFMT_DSTEP },
    180   { CRIS_INSN_ABS, CRISV32F_INSN_ABS, CRISV32F_SFMT_MOVS_B_R },
    181   { CRIS_INSN_AND_B_R, CRISV32F_INSN_AND_B_R, CRISV32F_SFMT_AND_B_R },
    182   { CRIS_INSN_AND_W_R, CRISV32F_INSN_AND_W_R, CRISV32F_SFMT_AND_B_R },
    183   { CRIS_INSN_AND_D_R, CRISV32F_INSN_AND_D_R, CRISV32F_SFMT_AND_D_R },
    184   { CRIS_INSN_AND_M_B_M, CRISV32F_INSN_AND_M_B_M, CRISV32F_SFMT_AND_M_B_M },
    185   { CRIS_INSN_AND_M_W_M, CRISV32F_INSN_AND_M_W_M, CRISV32F_SFMT_AND_M_W_M },
    186   { CRIS_INSN_AND_M_D_M, CRISV32F_INSN_AND_M_D_M, CRISV32F_SFMT_AND_M_D_M },
    187   { CRIS_INSN_ANDCBR, CRISV32F_INSN_ANDCBR, CRISV32F_SFMT_ANDCBR },
    188   { CRIS_INSN_ANDCWR, CRISV32F_INSN_ANDCWR, CRISV32F_SFMT_ANDCWR },
    189   { CRIS_INSN_ANDCDR, CRISV32F_INSN_ANDCDR, CRISV32F_SFMT_ANDCDR },
    190   { CRIS_INSN_ANDQ, CRISV32F_INSN_ANDQ, CRISV32F_SFMT_ANDQ },
    191   { CRIS_INSN_ORR_B_R, CRISV32F_INSN_ORR_B_R, CRISV32F_SFMT_AND_B_R },
    192   { CRIS_INSN_ORR_W_R, CRISV32F_INSN_ORR_W_R, CRISV32F_SFMT_AND_B_R },
    193   { CRIS_INSN_ORR_D_R, CRISV32F_INSN_ORR_D_R, CRISV32F_SFMT_AND_D_R },
    194   { CRIS_INSN_OR_M_B_M, CRISV32F_INSN_OR_M_B_M, CRISV32F_SFMT_AND_M_B_M },
    195   { CRIS_INSN_OR_M_W_M, CRISV32F_INSN_OR_M_W_M, CRISV32F_SFMT_AND_M_W_M },
    196   { CRIS_INSN_OR_M_D_M, CRISV32F_INSN_OR_M_D_M, CRISV32F_SFMT_AND_M_D_M },
    197   { CRIS_INSN_ORCBR, CRISV32F_INSN_ORCBR, CRISV32F_SFMT_ANDCBR },
    198   { CRIS_INSN_ORCWR, CRISV32F_INSN_ORCWR, CRISV32F_SFMT_ANDCWR },
    199   { CRIS_INSN_ORCDR, CRISV32F_INSN_ORCDR, CRISV32F_SFMT_ANDCDR },
    200   { CRIS_INSN_ORQ, CRISV32F_INSN_ORQ, CRISV32F_SFMT_ANDQ },
    201   { CRIS_INSN_XOR, CRISV32F_INSN_XOR, CRISV32F_SFMT_DSTEP },
    202   { CRIS_INSN_SWAP, CRISV32F_INSN_SWAP, CRISV32F_SFMT_SWAP },
    203   { CRIS_INSN_ASRR_B_R, CRISV32F_INSN_ASRR_B_R, CRISV32F_SFMT_AND_B_R },
    204   { CRIS_INSN_ASRR_W_R, CRISV32F_INSN_ASRR_W_R, CRISV32F_SFMT_AND_B_R },
    205   { CRIS_INSN_ASRR_D_R, CRISV32F_INSN_ASRR_D_R, CRISV32F_SFMT_AND_D_R },
    206   { CRIS_INSN_ASRQ, CRISV32F_INSN_ASRQ, CRISV32F_SFMT_ASRQ },
    207   { CRIS_INSN_LSRR_B_R, CRISV32F_INSN_LSRR_B_R, CRISV32F_SFMT_LSRR_B_R },
    208   { CRIS_INSN_LSRR_W_R, CRISV32F_INSN_LSRR_W_R, CRISV32F_SFMT_LSRR_B_R },
    209   { CRIS_INSN_LSRR_D_R, CRISV32F_INSN_LSRR_D_R, CRISV32F_SFMT_LSRR_D_R },
    210   { CRIS_INSN_LSRQ, CRISV32F_INSN_LSRQ, CRISV32F_SFMT_ASRQ },
    211   { CRIS_INSN_LSLR_B_R, CRISV32F_INSN_LSLR_B_R, CRISV32F_SFMT_LSRR_B_R },
    212   { CRIS_INSN_LSLR_W_R, CRISV32F_INSN_LSLR_W_R, CRISV32F_SFMT_LSRR_B_R },
    213   { CRIS_INSN_LSLR_D_R, CRISV32F_INSN_LSLR_D_R, CRISV32F_SFMT_LSRR_D_R },
    214   { CRIS_INSN_LSLQ, CRISV32F_INSN_LSLQ, CRISV32F_SFMT_ASRQ },
    215   { CRIS_INSN_BTST, CRISV32F_INSN_BTST, CRISV32F_SFMT_BTST },
    216   { CRIS_INSN_BTSTQ, CRISV32F_INSN_BTSTQ, CRISV32F_SFMT_BTSTQ },
    217   { CRIS_INSN_SETF, CRISV32F_INSN_SETF, CRISV32F_SFMT_SETF },
    218   { CRIS_INSN_CLEARF, CRISV32F_INSN_CLEARF, CRISV32F_SFMT_SETF },
    219   { CRIS_INSN_RFE, CRISV32F_INSN_RFE, CRISV32F_SFMT_RFE },
    220   { CRIS_INSN_SFE, CRISV32F_INSN_SFE, CRISV32F_SFMT_SFE },
    221   { CRIS_INSN_RFG, CRISV32F_INSN_RFG, CRISV32F_SFMT_RFG },
    222   { CRIS_INSN_RFN, CRISV32F_INSN_RFN, CRISV32F_SFMT_RFN },
    223   { CRIS_INSN_HALT, CRISV32F_INSN_HALT, CRISV32F_SFMT_HALT },
    224   { CRIS_INSN_BCC_B, CRISV32F_INSN_BCC_B, CRISV32F_SFMT_BCC_B },
    225   { CRIS_INSN_BA_B, CRISV32F_INSN_BA_B, CRISV32F_SFMT_BA_B },
    226   { CRIS_INSN_BCC_W, CRISV32F_INSN_BCC_W, CRISV32F_SFMT_BCC_W },
    227   { CRIS_INSN_BA_W, CRISV32F_INSN_BA_W, CRISV32F_SFMT_BA_W },
    228   { CRIS_INSN_JAS_R, CRISV32F_INSN_JAS_R, CRISV32F_SFMT_JAS_R },
    229   { CRIS_INSN_JAS_C, CRISV32F_INSN_JAS_C, CRISV32F_SFMT_JAS_C },
    230   { CRIS_INSN_JUMP_P, CRISV32F_INSN_JUMP_P, CRISV32F_SFMT_JUMP_P },
    231   { CRIS_INSN_BAS_C, CRISV32F_INSN_BAS_C, CRISV32F_SFMT_BAS_C },
    232   { CRIS_INSN_JASC_R, CRISV32F_INSN_JASC_R, CRISV32F_SFMT_JASC_R },
    233   { CRIS_INSN_JASC_C, CRISV32F_INSN_JASC_C, CRISV32F_SFMT_JAS_C },
    234   { CRIS_INSN_BASC_C, CRISV32F_INSN_BASC_C, CRISV32F_SFMT_BAS_C },
    235   { CRIS_INSN_BREAK, CRISV32F_INSN_BREAK, CRISV32F_SFMT_BREAK },
    236   { CRIS_INSN_BOUND_R_B_R, CRISV32F_INSN_BOUND_R_B_R, CRISV32F_SFMT_DSTEP },
    237   { CRIS_INSN_BOUND_R_W_R, CRISV32F_INSN_BOUND_R_W_R, CRISV32F_SFMT_DSTEP },
    238   { CRIS_INSN_BOUND_R_D_R, CRISV32F_INSN_BOUND_R_D_R, CRISV32F_SFMT_DSTEP },
    239   { CRIS_INSN_BOUND_CB, CRISV32F_INSN_BOUND_CB, CRISV32F_SFMT_BOUND_CB },
    240   { CRIS_INSN_BOUND_CW, CRISV32F_INSN_BOUND_CW, CRISV32F_SFMT_BOUND_CW },
    241   { CRIS_INSN_BOUND_CD, CRISV32F_INSN_BOUND_CD, CRISV32F_SFMT_BOUND_CD },
    242   { CRIS_INSN_SCC, CRISV32F_INSN_SCC, CRISV32F_SFMT_SCC },
    243   { CRIS_INSN_LZ, CRISV32F_INSN_LZ, CRISV32F_SFMT_MOVS_B_R },
    244   { CRIS_INSN_ADDOQ, CRISV32F_INSN_ADDOQ, CRISV32F_SFMT_ADDOQ },
    245   { CRIS_INSN_ADDO_M_B_M, CRISV32F_INSN_ADDO_M_B_M, CRISV32F_SFMT_ADDO_M_B_M },
    246   { CRIS_INSN_ADDO_M_W_M, CRISV32F_INSN_ADDO_M_W_M, CRISV32F_SFMT_ADDO_M_W_M },
    247   { CRIS_INSN_ADDO_M_D_M, CRISV32F_INSN_ADDO_M_D_M, CRISV32F_SFMT_ADDO_M_D_M },
    248   { CRIS_INSN_ADDO_CB, CRISV32F_INSN_ADDO_CB, CRISV32F_SFMT_ADDO_CB },
    249   { CRIS_INSN_ADDO_CW, CRISV32F_INSN_ADDO_CW, CRISV32F_SFMT_ADDO_CW },
    250   { CRIS_INSN_ADDO_CD, CRISV32F_INSN_ADDO_CD, CRISV32F_SFMT_ADDO_CD },
    251   { CRIS_INSN_ADDI_ACR_B_R, CRISV32F_INSN_ADDI_ACR_B_R, CRISV32F_SFMT_ADDI_ACR_B_R },
    252   { CRIS_INSN_ADDI_ACR_W_R, CRISV32F_INSN_ADDI_ACR_W_R, CRISV32F_SFMT_ADDI_ACR_B_R },
    253   { CRIS_INSN_ADDI_ACR_D_R, CRISV32F_INSN_ADDI_ACR_D_R, CRISV32F_SFMT_ADDI_ACR_B_R },
    254   { CRIS_INSN_FIDXI, CRISV32F_INSN_FIDXI, CRISV32F_SFMT_FIDXI },
    255   { CRIS_INSN_FTAGI, CRISV32F_INSN_FTAGI, CRISV32F_SFMT_FIDXI },
    256   { CRIS_INSN_FIDXD, CRISV32F_INSN_FIDXD, CRISV32F_SFMT_FIDXI },
    257   { CRIS_INSN_FTAGD, CRISV32F_INSN_FTAGD, CRISV32F_SFMT_FIDXI },
    258 };
    259 
    260 static const struct insn_sem crisv32f_insn_sem_invalid =
    261 {
    262   VIRTUAL_INSN_X_INVALID, CRISV32F_INSN_X_INVALID, CRISV32F_SFMT_EMPTY
    263 };
    264 
    265 /* Initialize an IDESC from the compile-time computable parts.  */
    266 
    267 static INLINE void
    268 init_idesc (SIM_CPU *cpu, IDESC *id, const struct insn_sem *t)
    269 {
    270   const CGEN_INSN *insn_table = CGEN_CPU_INSN_TABLE (CPU_CPU_DESC (cpu))->init_entries;
    271 
    272   id->num = t->index;
    273   id->sfmt = t->sfmt;
    274   if ((int) t->type <= 0)
    275     id->idata = & cgen_virtual_insn_table[- (int) t->type];
    276   else
    277     id->idata = & insn_table[t->type];
    278   id->attrs = CGEN_INSN_ATTRS (id->idata);
    279   /* Oh my god, a magic number.  */
    280   id->length = CGEN_INSN_BITSIZE (id->idata) / 8;
    281 
    282 #if WITH_PROFILE_MODEL_P
    283   id->timing = & MODEL_TIMING (CPU_MODEL (cpu)) [t->index];
    284   {
    285     SIM_DESC sd = CPU_STATE (cpu);
    286     SIM_ASSERT (t->index == id->timing->num);
    287   }
    288 #endif
    289 
    290   /* Semantic pointers are initialized elsewhere.  */
    291 }
    292 
    293 /* Initialize the instruction descriptor table.  */
    294 
    295 void
    296 crisv32f_init_idesc_table (SIM_CPU *cpu)
    297 {
    298   IDESC *id,*tabend;
    299   const struct insn_sem *t,*tend;
    300   int tabsize = CRISV32F_INSN__MAX;
    301   IDESC *table = crisv32f_insn_data;
    302 
    303   memset (table, 0, tabsize * sizeof (IDESC));
    304 
    305   /* First set all entries to the `invalid insn'.  */
    306   t = & crisv32f_insn_sem_invalid;
    307   for (id = table, tabend = table + tabsize; id < tabend; ++id)
    308     init_idesc (cpu, id, t);
    309 
    310   /* Now fill in the values for the chosen cpu.  */
    311   for (t = crisv32f_insn_sem, tend = t + ARRAY_SIZE (crisv32f_insn_sem);
    312        t != tend; ++t)
    313     {
    314       init_idesc (cpu, & table[t->index], t);
    315     }
    316 
    317   /* Link the IDESC table into the cpu.  */
    318   CPU_IDESC (cpu) = table;
    319 }
    320 
    321 /* Given an instruction, return a pointer to its IDESC entry.  */
    322 
    323 const IDESC *
    324 crisv32f_decode (SIM_CPU *current_cpu, IADDR pc,
    325               CGEN_INSN_WORD base_insn,
    326               ARGBUF *abuf)
    327 {
    328   /* Result of decoder.  */
    329   CRISV32F_INSN_TYPE itype;
    330 
    331   {
    332     CGEN_INSN_WORD insn = base_insn;
    333 
    334     {
    335       unsigned int val0 = (((insn >> 4) & (255 << 0)));
    336       switch (val0)
    337       {
    338       case 0:
    339       case 1:
    340       case 2:
    341       case 3:
    342       case 4:
    343       case 5:
    344       case 6:
    345       case 7:
    346       case 8:
    347       case 9:
    348       case 10:
    349       case 11:
    350       case 12:
    351       case 13:
    352       case 14:
    353       case 15:
    354         {
    355           unsigned int val1 = (((insn >> 12) & (15 << 0)));
    356           switch (val1)
    357           {
    358           case 0:
    359           case 1:
    360           case 2:
    361           case 3:
    362           case 4:
    363           case 5:
    364           case 6:
    365           case 7:
    366           case 8:
    367           case 9:
    368           case 10:
    369           case 11:
    370           case 12:
    371           case 13:
    372           case 15: itype = CRISV32F_INSN_BCC_B; goto extract_sfmt_bcc_b;
    373           case 14: itype = CRISV32F_INSN_BA_B; goto extract_sfmt_ba_b;
    374           default: itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
    375           }
    376         }
    377       case 16:
    378       case 17:
    379       case 18:
    380       case 19:
    381       case 20:
    382       case 21:
    383       case 22:
    384       case 23:
    385       case 24:
    386       case 25:
    387       case 26:
    388       case 27:
    389       case 28:
    390       case 29:
    391       case 30:
    392       case 31: itype = CRISV32F_INSN_ADDOQ; goto extract_sfmt_addoq;
    393       case 32:
    394       case 33:
    395       case 34:
    396       case 35: itype = CRISV32F_INSN_ADDQ; goto extract_sfmt_addq;
    397       case 36:
    398       case 37:
    399       case 38:
    400       case 39: itype = CRISV32F_INSN_MOVEQ; goto extract_sfmt_moveq;
    401       case 40:
    402       case 41:
    403       case 42:
    404       case 43: itype = CRISV32F_INSN_SUBQ; goto extract_sfmt_addq;
    405       case 44:
    406       case 45:
    407       case 46:
    408       case 47: itype = CRISV32F_INSN_CMPQ; goto extract_sfmt_cmpq;
    409       case 48:
    410       case 49:
    411       case 50:
    412       case 51: itype = CRISV32F_INSN_ANDQ; goto extract_sfmt_andq;
    413       case 52:
    414       case 53:
    415       case 54:
    416       case 55: itype = CRISV32F_INSN_ORQ; goto extract_sfmt_andq;
    417       case 56:
    418       case 57: itype = CRISV32F_INSN_BTSTQ; goto extract_sfmt_btstq;
    419       case 58:
    420       case 59: itype = CRISV32F_INSN_ASRQ; goto extract_sfmt_asrq;
    421       case 60:
    422       case 61: itype = CRISV32F_INSN_LSLQ; goto extract_sfmt_asrq;
    423       case 62:
    424       case 63: itype = CRISV32F_INSN_LSRQ; goto extract_sfmt_asrq;
    425       case 64: itype = CRISV32F_INSN_ADDU_B_R; goto extract_sfmt_add_d_r;
    426       case 65: itype = CRISV32F_INSN_ADDU_W_R; goto extract_sfmt_add_d_r;
    427       case 66: itype = CRISV32F_INSN_ADDS_B_R; goto extract_sfmt_add_d_r;
    428       case 67: itype = CRISV32F_INSN_ADDS_W_R; goto extract_sfmt_add_d_r;
    429       case 68: itype = CRISV32F_INSN_MOVU_B_R; goto extract_sfmt_movs_b_r;
    430       case 69: itype = CRISV32F_INSN_MOVU_W_R; goto extract_sfmt_movs_b_r;
    431       case 70: itype = CRISV32F_INSN_MOVS_B_R; goto extract_sfmt_movs_b_r;
    432       case 71: itype = CRISV32F_INSN_MOVS_W_R; goto extract_sfmt_movs_b_r;
    433       case 72: itype = CRISV32F_INSN_SUBU_B_R; goto extract_sfmt_add_d_r;
    434       case 73: itype = CRISV32F_INSN_SUBU_W_R; goto extract_sfmt_add_d_r;
    435       case 74: itype = CRISV32F_INSN_SUBS_B_R; goto extract_sfmt_add_d_r;
    436       case 75: itype = CRISV32F_INSN_SUBS_W_R; goto extract_sfmt_add_d_r;
    437       case 76: itype = CRISV32F_INSN_LSLR_B_R; goto extract_sfmt_lsrr_b_r;
    438       case 77: itype = CRISV32F_INSN_LSLR_W_R; goto extract_sfmt_lsrr_b_r;
    439       case 78: itype = CRISV32F_INSN_LSLR_D_R; goto extract_sfmt_lsrr_d_r;
    440       case 79: itype = CRISV32F_INSN_BTST; goto extract_sfmt_btst;
    441       case 80: itype = CRISV32F_INSN_ADDI_B_R; goto extract_sfmt_addi_b_r;
    442       case 81: itype = CRISV32F_INSN_ADDI_W_R; goto extract_sfmt_addi_b_r;
    443       case 82: itype = CRISV32F_INSN_ADDI_D_R; goto extract_sfmt_addi_b_r;
    444       case 83: itype = CRISV32F_INSN_SCC; goto extract_sfmt_scc;
    445       case 84: itype = CRISV32F_INSN_ADDI_ACR_B_R; goto extract_sfmt_addi_acr_b_r;
    446       case 85: itype = CRISV32F_INSN_ADDI_ACR_W_R; goto extract_sfmt_addi_acr_b_r;
    447       case 86: itype = CRISV32F_INSN_ADDI_ACR_D_R; goto extract_sfmt_addi_acr_b_r;
    448       case 87: itype = CRISV32F_INSN_ADDC_R; goto extract_sfmt_add_d_r;
    449       case 88: itype = CRISV32F_INSN_NEG_B_R; goto extract_sfmt_neg_b_r;
    450       case 89: itype = CRISV32F_INSN_NEG_W_R; goto extract_sfmt_neg_b_r;
    451       case 90: itype = CRISV32F_INSN_NEG_D_R; goto extract_sfmt_neg_d_r;
    452       case 91: itype = CRISV32F_INSN_SETF; goto extract_sfmt_setf;
    453       case 92: itype = CRISV32F_INSN_BOUND_R_B_R; goto extract_sfmt_dstep;
    454       case 93: itype = CRISV32F_INSN_BOUND_R_W_R; goto extract_sfmt_dstep;
    455       case 94: itype = CRISV32F_INSN_BOUND_R_D_R; goto extract_sfmt_dstep;
    456       case 95: itype = CRISV32F_INSN_CLEARF; goto extract_sfmt_setf;
    457       case 96: itype = CRISV32F_INSN_ADD_B_R; goto extract_sfmt_add_b_r;
    458       case 97: itype = CRISV32F_INSN_ADD_W_R; goto extract_sfmt_add_b_r;
    459       case 98: itype = CRISV32F_INSN_ADD_D_R; goto extract_sfmt_add_d_r;
    460       case 99: itype = CRISV32F_INSN_MOVE_R_SPRV32; goto extract_sfmt_move_r_sprv32;
    461       case 100: itype = CRISV32F_INSN_MOVE_B_R; goto extract_sfmt_move_b_r;
    462       case 101: itype = CRISV32F_INSN_MOVE_W_R; goto extract_sfmt_move_b_r;
    463       case 102: itype = CRISV32F_INSN_MOVE_D_R; goto extract_sfmt_move_d_r;
    464       case 103: itype = CRISV32F_INSN_MOVE_SPR_RV32; goto extract_sfmt_move_spr_rv32;
    465       case 104: itype = CRISV32F_INSN_SUB_B_R; goto extract_sfmt_add_b_r;
    466       case 105: itype = CRISV32F_INSN_SUB_W_R; goto extract_sfmt_add_b_r;
    467       case 106: itype = CRISV32F_INSN_SUB_D_R; goto extract_sfmt_add_d_r;
    468       case 107: itype = CRISV32F_INSN_ABS; goto extract_sfmt_movs_b_r;
    469       case 108: itype = CRISV32F_INSN_CMP_R_B_R; goto extract_sfmt_cmp_r_b_r;
    470       case 109: itype = CRISV32F_INSN_CMP_R_W_R; goto extract_sfmt_cmp_r_b_r;
    471       case 110: itype = CRISV32F_INSN_CMP_R_D_R; goto extract_sfmt_cmp_r_b_r;
    472       case 111: itype = CRISV32F_INSN_DSTEP; goto extract_sfmt_dstep;
    473       case 112: itype = CRISV32F_INSN_AND_B_R; goto extract_sfmt_and_b_r;
    474       case 113: itype = CRISV32F_INSN_AND_W_R; goto extract_sfmt_and_b_r;
    475       case 114: itype = CRISV32F_INSN_AND_D_R; goto extract_sfmt_and_d_r;
    476       case 115: itype = CRISV32F_INSN_LZ; goto extract_sfmt_movs_b_r;
    477       case 116: itype = CRISV32F_INSN_ORR_B_R; goto extract_sfmt_and_b_r;
    478       case 117: itype = CRISV32F_INSN_ORR_W_R; goto extract_sfmt_and_b_r;
    479       case 118: itype = CRISV32F_INSN_ORR_D_R; goto extract_sfmt_and_d_r;
    480       case 119: itype = CRISV32F_INSN_SWAP; goto extract_sfmt_swap;
    481       case 120: itype = CRISV32F_INSN_ASRR_B_R; goto extract_sfmt_and_b_r;
    482       case 121: itype = CRISV32F_INSN_ASRR_W_R; goto extract_sfmt_and_b_r;
    483       case 122: itype = CRISV32F_INSN_ASRR_D_R; goto extract_sfmt_and_d_r;
    484       case 123: itype = CRISV32F_INSN_XOR; goto extract_sfmt_dstep;
    485       case 124: itype = CRISV32F_INSN_LSRR_B_R; goto extract_sfmt_lsrr_b_r;
    486       case 125: itype = CRISV32F_INSN_LSRR_W_R; goto extract_sfmt_lsrr_b_r;
    487       case 126: itype = CRISV32F_INSN_LSRR_D_R; goto extract_sfmt_lsrr_d_r;
    488       case 127: itype = CRISV32F_INSN_MCP; goto extract_sfmt_mcp;
    489       case 128: itype = CRISV32F_INSN_ADDU_M_B_M; goto extract_sfmt_adds_m_b_m;
    490       case 129: itype = CRISV32F_INSN_ADDU_M_W_M; goto extract_sfmt_adds_m_w_m;
    491       case 130: itype = CRISV32F_INSN_ADDS_M_B_M; goto extract_sfmt_adds_m_b_m;
    492       case 131: itype = CRISV32F_INSN_ADDS_M_W_M; goto extract_sfmt_adds_m_w_m;
    493       case 132: itype = CRISV32F_INSN_MOVU_M_B_M; goto extract_sfmt_movs_m_b_m;
    494       case 133: itype = CRISV32F_INSN_MOVU_M_W_M; goto extract_sfmt_movs_m_w_m;
    495       case 134: itype = CRISV32F_INSN_MOVS_M_B_M; goto extract_sfmt_movs_m_b_m;
    496       case 135: itype = CRISV32F_INSN_MOVS_M_W_M; goto extract_sfmt_movs_m_w_m;
    497       case 136: itype = CRISV32F_INSN_SUBU_M_B_M; goto extract_sfmt_adds_m_b_m;
    498       case 137: itype = CRISV32F_INSN_SUBU_M_W_M; goto extract_sfmt_adds_m_w_m;
    499       case 138: itype = CRISV32F_INSN_SUBS_M_B_M; goto extract_sfmt_adds_m_b_m;
    500       case 139: itype = CRISV32F_INSN_SUBS_M_W_M; goto extract_sfmt_adds_m_w_m;
    501       case 140: itype = CRISV32F_INSN_CMPU_M_B_M; goto extract_sfmt_cmp_m_b_m;
    502       case 141: itype = CRISV32F_INSN_CMPU_M_W_M; goto extract_sfmt_cmp_m_w_m;
    503       case 142: itype = CRISV32F_INSN_CMPS_M_B_M; goto extract_sfmt_cmp_m_b_m;
    504       case 143: itype = CRISV32F_INSN_CMPS_M_W_M; goto extract_sfmt_cmp_m_w_m;
    505       case 144: itype = CRISV32F_INSN_MULU_B; goto extract_sfmt_muls_b;
    506       case 145: itype = CRISV32F_INSN_MULU_W; goto extract_sfmt_muls_b;
    507       case 146: itype = CRISV32F_INSN_MULU_D; goto extract_sfmt_muls_b;
    508       case 147:
    509         {
    510           unsigned int val1 = (((insn >> 12) & (15 << 0)));
    511           switch (val1)
    512           {
    513           case 2:
    514             if ((base_insn & 0xffff) == 0x2930)
    515               { itype = CRISV32F_INSN_RFE; goto extract_sfmt_rfe; }
    516             itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
    517           case 3:
    518             if ((base_insn & 0xffff) == 0x3930)
    519               { itype = CRISV32F_INSN_SFE; goto extract_sfmt_sfe; }
    520             itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
    521           case 4:
    522             if ((base_insn & 0xffff) == 0x4930)
    523               { itype = CRISV32F_INSN_RFG; goto extract_sfmt_rfg; }
    524             itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
    525           case 5:
    526             if ((base_insn & 0xffff) == 0x5930)
    527               { itype = CRISV32F_INSN_RFN; goto extract_sfmt_rfn; }
    528             itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
    529           case 14: itype = CRISV32F_INSN_BREAK; goto extract_sfmt_break;
    530           case 15:
    531             if ((base_insn & 0xffff) == 0xf930)
    532               { itype = CRISV32F_INSN_HALT; goto extract_sfmt_halt; }
    533             itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
    534           default: itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
    535           }
    536         }
    537       case 148: itype = CRISV32F_INSN_ADDO_M_B_M; goto extract_sfmt_addo_m_b_m;
    538       case 149: itype = CRISV32F_INSN_ADDO_M_W_M; goto extract_sfmt_addo_m_w_m;
    539       case 150: itype = CRISV32F_INSN_ADDO_M_D_M; goto extract_sfmt_addo_m_d_m;
    540       case 151: itype = CRISV32F_INSN_LAPCQ; goto extract_sfmt_lapcq;
    541       case 154: itype = CRISV32F_INSN_ADDC_M; goto extract_sfmt_addc_m;
    542       case 155: itype = CRISV32F_INSN_JAS_R; goto extract_sfmt_jas_r;
    543       case 159:
    544         if ((base_insn & 0xfff) == 0x9f0)
    545           { itype = CRISV32F_INSN_JUMP_P; goto extract_sfmt_jump_p; }
    546         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
    547       case 160: itype = CRISV32F_INSN_ADD_M_B_M; goto extract_sfmt_add_m_b_m;
    548       case 161: itype = CRISV32F_INSN_ADD_M_W_M; goto extract_sfmt_add_m_w_m;
    549       case 162: itype = CRISV32F_INSN_ADD_M_D_M; goto extract_sfmt_add_m_d_m;
    550       case 163: itype = CRISV32F_INSN_MOVE_M_SPRV32; goto extract_sfmt_move_m_sprv32;
    551       case 164: itype = CRISV32F_INSN_MOVE_M_B_M; goto extract_sfmt_move_m_b_m;
    552       case 165: itype = CRISV32F_INSN_MOVE_M_W_M; goto extract_sfmt_move_m_w_m;
    553       case 166: itype = CRISV32F_INSN_MOVE_M_D_M; goto extract_sfmt_move_m_d_m;
    554       case 167:
    555       case 231: itype = CRISV32F_INSN_MOVE_SPR_MV32; goto extract_sfmt_move_spr_mv32;
    556       case 168: itype = CRISV32F_INSN_SUB_M_B_M; goto extract_sfmt_add_m_b_m;
    557       case 169: itype = CRISV32F_INSN_SUB_M_W_M; goto extract_sfmt_add_m_w_m;
    558       case 170: itype = CRISV32F_INSN_SUB_M_D_M; goto extract_sfmt_add_m_d_m;
    559       case 171:
    560         {
    561           unsigned int val1 = (((insn >> 12) & (1 << 0)));
    562           switch (val1)
    563           {
    564           case 0:
    565             if ((base_insn & 0xfff0) == 0xab0)
    566               { itype = CRISV32F_INSN_FIDXD; goto extract_sfmt_fidxi; }
    567             itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
    568           case 1:
    569             if ((base_insn & 0xfff0) == 0x1ab0)
    570               { itype = CRISV32F_INSN_FTAGD; goto extract_sfmt_fidxi; }
    571             itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
    572           default: itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
    573           }
    574         }
    575       case 172: itype = CRISV32F_INSN_CMP_M_B_M; goto extract_sfmt_cmp_m_b_m;
    576       case 173: itype = CRISV32F_INSN_CMP_M_W_M; goto extract_sfmt_cmp_m_w_m;
    577       case 174: itype = CRISV32F_INSN_CMP_M_D_M; goto extract_sfmt_cmp_m_d_m;
    578       case 176: itype = CRISV32F_INSN_AND_M_B_M; goto extract_sfmt_and_m_b_m;
    579       case 177: itype = CRISV32F_INSN_AND_M_W_M; goto extract_sfmt_and_m_w_m;
    580       case 178: itype = CRISV32F_INSN_AND_M_D_M; goto extract_sfmt_and_m_d_m;
    581       case 179: itype = CRISV32F_INSN_JASC_R; goto extract_sfmt_jasc_r;
    582       case 180: itype = CRISV32F_INSN_OR_M_B_M; goto extract_sfmt_and_m_b_m;
    583       case 181: itype = CRISV32F_INSN_OR_M_W_M; goto extract_sfmt_and_m_w_m;
    584       case 182: itype = CRISV32F_INSN_OR_M_D_M; goto extract_sfmt_and_m_d_m;
    585       case 183: itype = CRISV32F_INSN_MOVE_R_SS; goto extract_sfmt_move_r_ss;
    586       case 184:
    587       case 248:
    588         if ((base_insn & 0xfbf0) == 0xb80)
    589           { itype = CRISV32F_INSN_TEST_M_B_M; goto extract_sfmt_test_m_b_m; }
    590         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
    591       case 185:
    592       case 249:
    593         if ((base_insn & 0xfbf0) == 0xb90)
    594           { itype = CRISV32F_INSN_TEST_M_W_M; goto extract_sfmt_test_m_w_m; }
    595         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
    596       case 186:
    597       case 250:
    598         if ((base_insn & 0xfbf0) == 0xba0)
    599           { itype = CRISV32F_INSN_TEST_M_D_M; goto extract_sfmt_test_m_d_m; }
    600         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
    601       case 187:
    602       case 251: itype = CRISV32F_INSN_MOVEM_M_R_V32; goto extract_sfmt_movem_m_r_v32;
    603       case 188:
    604       case 252: itype = CRISV32F_INSN_MOVE_R_M_B_M; goto extract_sfmt_move_r_m_b_m;
    605       case 189:
    606       case 253: itype = CRISV32F_INSN_MOVE_R_M_W_M; goto extract_sfmt_move_r_m_w_m;
    607       case 190:
    608       case 254: itype = CRISV32F_INSN_MOVE_R_M_D_M; goto extract_sfmt_move_r_m_d_m;
    609       case 191:
    610       case 255: itype = CRISV32F_INSN_MOVEM_R_M_V32; goto extract_sfmt_movem_r_m_v32;
    611       case 192:
    612         {
    613           unsigned int val1 = (((insn >> 0) & (15 << 0)));
    614           switch (val1)
    615           {
    616           case 0:
    617           case 1:
    618           case 2:
    619           case 3:
    620           case 4:
    621           case 5:
    622           case 6:
    623           case 7:
    624           case 8:
    625           case 9:
    626           case 10:
    627           case 11:
    628           case 12:
    629           case 13:
    630           case 14: itype = CRISV32F_INSN_ADDU_M_B_M; goto extract_sfmt_adds_m_b_m;
    631           case 15: itype = CRISV32F_INSN_ADDUCBR; goto extract_sfmt_addscbr;
    632           default: itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
    633           }
    634         }
    635       case 193:
    636         {
    637           unsigned int val1 = (((insn >> 0) & (15 << 0)));
    638           switch (val1)
    639           {
    640           case 0:
    641           case 1:
    642           case 2:
    643           case 3:
    644           case 4:
    645           case 5:
    646           case 6:
    647           case 7:
    648           case 8:
    649           case 9:
    650           case 10:
    651           case 11:
    652           case 12:
    653           case 13:
    654           case 14: itype = CRISV32F_INSN_ADDU_M_W_M; goto extract_sfmt_adds_m_w_m;
    655           case 15: itype = CRISV32F_INSN_ADDUCWR; goto extract_sfmt_addscwr;
    656           default: itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
    657           }
    658         }
    659       case 194:
    660         {
    661           unsigned int val1 = (((insn >> 0) & (15 << 0)));
    662           switch (val1)
    663           {
    664           case 0:
    665           case 1:
    666           case 2:
    667           case 3:
    668           case 4:
    669           case 5:
    670           case 6:
    671           case 7:
    672           case 8:
    673           case 9:
    674           case 10:
    675           case 11:
    676           case 12:
    677           case 13:
    678           case 14: itype = CRISV32F_INSN_ADDS_M_B_M; goto extract_sfmt_adds_m_b_m;
    679           case 15: itype = CRISV32F_INSN_ADDSCBR; goto extract_sfmt_addscbr;
    680           default: itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
    681           }
    682         }
    683       case 195:
    684         {
    685           unsigned int val1 = (((insn >> 0) & (15 << 0)));
    686           switch (val1)
    687           {
    688           case 0:
    689           case 1:
    690           case 2:
    691           case 3:
    692           case 4:
    693           case 5:
    694           case 6:
    695           case 7:
    696           case 8:
    697           case 9:
    698           case 10:
    699           case 11:
    700           case 12:
    701           case 13:
    702           case 14: itype = CRISV32F_INSN_ADDS_M_W_M; goto extract_sfmt_adds_m_w_m;
    703           case 15: itype = CRISV32F_INSN_ADDSCWR; goto extract_sfmt_addscwr;
    704           default: itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
    705           }
    706         }
    707       case 196:
    708         {
    709           unsigned int val1 = (((insn >> 0) & (15 << 0)));
    710           switch (val1)
    711           {
    712           case 0:
    713           case 1:
    714           case 2:
    715           case 3:
    716           case 4:
    717           case 5:
    718           case 6:
    719           case 7:
    720           case 8:
    721           case 9:
    722           case 10:
    723           case 11:
    724           case 12:
    725           case 13:
    726           case 14: itype = CRISV32F_INSN_MOVU_M_B_M; goto extract_sfmt_movs_m_b_m;
    727           case 15: itype = CRISV32F_INSN_MOVUCBR; goto extract_sfmt_movucbr;
    728           default: itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
    729           }
    730         }
    731       case 197:
    732         {
    733           unsigned int val1 = (((insn >> 0) & (15 << 0)));
    734           switch (val1)
    735           {
    736           case 0:
    737           case 1:
    738           case 2:
    739           case 3:
    740           case 4:
    741           case 5:
    742           case 6:
    743           case 7:
    744           case 8:
    745           case 9:
    746           case 10:
    747           case 11:
    748           case 12:
    749           case 13:
    750           case 14: itype = CRISV32F_INSN_MOVU_M_W_M; goto extract_sfmt_movs_m_w_m;
    751           case 15: itype = CRISV32F_INSN_MOVUCWR; goto extract_sfmt_movucwr;
    752           default: itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
    753           }
    754         }
    755       case 198:
    756         {
    757           unsigned int val1 = (((insn >> 0) & (15 << 0)));
    758           switch (val1)
    759           {
    760           case 0:
    761           case 1:
    762           case 2:
    763           case 3:
    764           case 4:
    765           case 5:
    766           case 6:
    767           case 7:
    768           case 8:
    769           case 9:
    770           case 10:
    771           case 11:
    772           case 12:
    773           case 13:
    774           case 14: itype = CRISV32F_INSN_MOVS_M_B_M; goto extract_sfmt_movs_m_b_m;
    775           case 15: itype = CRISV32F_INSN_MOVSCBR; goto extract_sfmt_movscbr;
    776           default: itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
    777           }
    778         }
    779       case 199:
    780         {
    781           unsigned int val1 = (((insn >> 0) & (15 << 0)));
    782           switch (val1)
    783           {
    784           case 0:
    785           case 1:
    786           case 2:
    787           case 3:
    788           case 4:
    789           case 5:
    790           case 6:
    791           case 7:
    792           case 8:
    793           case 9:
    794           case 10:
    795           case 11:
    796           case 12:
    797           case 13:
    798           case 14: itype = CRISV32F_INSN_MOVS_M_W_M; goto extract_sfmt_movs_m_w_m;
    799           case 15: itype = CRISV32F_INSN_MOVSCWR; goto extract_sfmt_movscwr;
    800           default: itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
    801           }
    802         }
    803       case 200:
    804         {
    805           unsigned int val1 = (((insn >> 0) & (15 << 0)));
    806           switch (val1)
    807           {
    808           case 0:
    809           case 1:
    810           case 2:
    811           case 3:
    812           case 4:
    813           case 5:
    814           case 6:
    815           case 7:
    816           case 8:
    817           case 9:
    818           case 10:
    819           case 11:
    820           case 12:
    821           case 13:
    822           case 14: itype = CRISV32F_INSN_SUBU_M_B_M; goto extract_sfmt_adds_m_b_m;
    823           case 15: itype = CRISV32F_INSN_SUBUCBR; goto extract_sfmt_addscbr;
    824           default: itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
    825           }
    826         }
    827       case 201:
    828         {
    829           unsigned int val1 = (((insn >> 0) & (15 << 0)));
    830           switch (val1)
    831           {
    832           case 0:
    833           case 1:
    834           case 2:
    835           case 3:
    836           case 4:
    837           case 5:
    838           case 6:
    839           case 7:
    840           case 8:
    841           case 9:
    842           case 10:
    843           case 11:
    844           case 12:
    845           case 13:
    846           case 14: itype = CRISV32F_INSN_SUBU_M_W_M; goto extract_sfmt_adds_m_w_m;
    847           case 15: itype = CRISV32F_INSN_SUBUCWR; goto extract_sfmt_addscwr;
    848           default: itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
    849           }
    850         }
    851       case 202:
    852         {
    853           unsigned int val1 = (((insn >> 0) & (15 << 0)));
    854           switch (val1)
    855           {
    856           case 0:
    857           case 1:
    858           case 2:
    859           case 3:
    860           case 4:
    861           case 5:
    862           case 6:
    863           case 7:
    864           case 8:
    865           case 9:
    866           case 10:
    867           case 11:
    868           case 12:
    869           case 13:
    870           case 14: itype = CRISV32F_INSN_SUBS_M_B_M; goto extract_sfmt_adds_m_b_m;
    871           case 15: itype = CRISV32F_INSN_SUBSCBR; goto extract_sfmt_addscbr;
    872           default: itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
    873           }
    874         }
    875       case 203:
    876         {
    877           unsigned int val1 = (((insn >> 0) & (15 << 0)));
    878           switch (val1)
    879           {
    880           case 0:
    881           case 1:
    882           case 2:
    883           case 3:
    884           case 4:
    885           case 5:
    886           case 6:
    887           case 7:
    888           case 8:
    889           case 9:
    890           case 10:
    891           case 11:
    892           case 12:
    893           case 13:
    894           case 14: itype = CRISV32F_INSN_SUBS_M_W_M; goto extract_sfmt_adds_m_w_m;
    895           case 15: itype = CRISV32F_INSN_SUBSCWR; goto extract_sfmt_addscwr;
    896           default: itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
    897           }
    898         }
    899       case 204:
    900         {
    901           unsigned int val1 = (((insn >> 0) & (15 << 0)));
    902           switch (val1)
    903           {
    904           case 0:
    905           case 1:
    906           case 2:
    907           case 3:
    908           case 4:
    909           case 5:
    910           case 6:
    911           case 7:
    912           case 8:
    913           case 9:
    914           case 10:
    915           case 11:
    916           case 12:
    917           case 13:
    918           case 14: itype = CRISV32F_INSN_CMPU_M_B_M; goto extract_sfmt_cmp_m_b_m;
    919           case 15: itype = CRISV32F_INSN_CMPUCBR; goto extract_sfmt_cmpucbr;
    920           default: itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
    921           }
    922         }
    923       case 205:
    924         {
    925           unsigned int val1 = (((insn >> 0) & (15 << 0)));
    926           switch (val1)
    927           {
    928           case 0:
    929           case 1:
    930           case 2:
    931           case 3:
    932           case 4:
    933           case 5:
    934           case 6:
    935           case 7:
    936           case 8:
    937           case 9:
    938           case 10:
    939           case 11:
    940           case 12:
    941           case 13:
    942           case 14: itype = CRISV32F_INSN_CMPU_M_W_M; goto extract_sfmt_cmp_m_w_m;
    943           case 15: itype = CRISV32F_INSN_CMPUCWR; goto extract_sfmt_cmpucwr;
    944           default: itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
    945           }
    946         }
    947       case 206:
    948         {
    949           unsigned int val1 = (((insn >> 0) & (15 << 0)));
    950           switch (val1)
    951           {
    952           case 0:
    953           case 1:
    954           case 2:
    955           case 3:
    956           case 4:
    957           case 5:
    958           case 6:
    959           case 7:
    960           case 8:
    961           case 9:
    962           case 10:
    963           case 11:
    964           case 12:
    965           case 13:
    966           case 14: itype = CRISV32F_INSN_CMPS_M_B_M; goto extract_sfmt_cmp_m_b_m;
    967           case 15: itype = CRISV32F_INSN_CMPSCBR; goto extract_sfmt_cmpcbr;
    968           default: itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
    969           }
    970         }
    971       case 207:
    972         {
    973           unsigned int val1 = (((insn >> 0) & (15 << 0)));
    974           switch (val1)
    975           {
    976           case 0:
    977           case 1:
    978           case 2:
    979           case 3:
    980           case 4:
    981           case 5:
    982           case 6:
    983           case 7:
    984           case 8:
    985           case 9:
    986           case 10:
    987           case 11:
    988           case 12:
    989           case 13:
    990           case 14: itype = CRISV32F_INSN_CMPS_M_W_M; goto extract_sfmt_cmp_m_w_m;
    991           case 15: itype = CRISV32F_INSN_CMPSCWR; goto extract_sfmt_cmpcwr;
    992           default: itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
    993           }
    994         }
    995       case 208: itype = CRISV32F_INSN_MULS_B; goto extract_sfmt_muls_b;
    996       case 209: itype = CRISV32F_INSN_MULS_W; goto extract_sfmt_muls_b;
    997       case 210: itype = CRISV32F_INSN_MULS_D; goto extract_sfmt_muls_b;
    998       case 211:
    999         {
   1000           unsigned int val1 = (((insn >> 12) & (1 << 0)));
   1001           switch (val1)
   1002           {
   1003           case 0:
   1004             if ((base_insn & 0xfff0) == 0xd30)
   1005               { itype = CRISV32F_INSN_FIDXI; goto extract_sfmt_fidxi; }
   1006             itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
   1007           case 1:
   1008             if ((base_insn & 0xfff0) == 0x1d30)
   1009               { itype = CRISV32F_INSN_FTAGI; goto extract_sfmt_fidxi; }
   1010             itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
   1011           default: itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
   1012           }
   1013         }
   1014       case 212:
   1015         {
   1016           unsigned int val1 = (((insn >> 0) & (15 << 0)));
   1017           switch (val1)
   1018           {
   1019           case 0:
   1020           case 1:
   1021           case 2:
   1022           case 3:
   1023           case 4:
   1024           case 5:
   1025           case 6:
   1026           case 7:
   1027           case 8:
   1028           case 9:
   1029           case 10:
   1030           case 11:
   1031           case 12:
   1032           case 13:
   1033           case 14: itype = CRISV32F_INSN_ADDO_M_B_M; goto extract_sfmt_addo_m_b_m;
   1034           case 15: itype = CRISV32F_INSN_ADDO_CB; goto extract_sfmt_addo_cb;
   1035           default: itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
   1036           }
   1037         }
   1038       case 213:
   1039         {
   1040           unsigned int val1 = (((insn >> 0) & (15 << 0)));
   1041           switch (val1)
   1042           {
   1043           case 0:
   1044           case 1:
   1045           case 2:
   1046           case 3:
   1047           case 4:
   1048           case 5:
   1049           case 6:
   1050           case 7:
   1051           case 8:
   1052           case 9:
   1053           case 10:
   1054           case 11:
   1055           case 12:
   1056           case 13:
   1057           case 14: itype = CRISV32F_INSN_ADDO_M_W_M; goto extract_sfmt_addo_m_w_m;
   1058           case 15: itype = CRISV32F_INSN_ADDO_CW; goto extract_sfmt_addo_cw;
   1059           default: itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
   1060           }
   1061         }
   1062       case 214:
   1063         {
   1064           unsigned int val1 = (((insn >> 0) & (15 << 0)));
   1065           switch (val1)
   1066           {
   1067           case 0:
   1068           case 1:
   1069           case 2:
   1070           case 3:
   1071           case 4:
   1072           case 5:
   1073           case 6:
   1074           case 7:
   1075           case 8:
   1076           case 9:
   1077           case 10:
   1078           case 11:
   1079           case 12:
   1080           case 13:
   1081           case 14: itype = CRISV32F_INSN_ADDO_M_D_M; goto extract_sfmt_addo_m_d_m;
   1082           case 15: itype = CRISV32F_INSN_ADDO_CD; goto extract_sfmt_addo_cd;
   1083           default: itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
   1084           }
   1085         }
   1086       case 215:
   1087         if ((base_insn & 0xfff) == 0xd7f)
   1088           { itype = CRISV32F_INSN_LAPC_D; goto extract_sfmt_lapc_d; }
   1089         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
   1090       case 218:
   1091         {
   1092           unsigned int val1 = (((insn >> 0) & (15 << 0)));
   1093           switch (val1)
   1094           {
   1095           case 0:
   1096           case 1:
   1097           case 2:
   1098           case 3:
   1099           case 4:
   1100           case 5:
   1101           case 6:
   1102           case 7:
   1103           case 8:
   1104           case 9:
   1105           case 10:
   1106           case 11:
   1107           case 12:
   1108           case 13:
   1109           case 14: itype = CRISV32F_INSN_ADDC_M; goto extract_sfmt_addc_m;
   1110           case 15: itype = CRISV32F_INSN_ADDC_C; goto extract_sfmt_addcdr;
   1111           default: itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
   1112           }
   1113         }
   1114       case 219:
   1115         if ((base_insn & 0xfff) == 0xdbf)
   1116           { itype = CRISV32F_INSN_JAS_C; goto extract_sfmt_jas_c; }
   1117         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
   1118       case 220:
   1119         if ((base_insn & 0xfff) == 0xdcf)
   1120           { itype = CRISV32F_INSN_BOUND_CB; goto extract_sfmt_bound_cb; }
   1121         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
   1122       case 221:
   1123         if ((base_insn & 0xfff) == 0xddf)
   1124           { itype = CRISV32F_INSN_BOUND_CW; goto extract_sfmt_bound_cw; }
   1125         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
   1126       case 222:
   1127         if ((base_insn & 0xfff) == 0xdef)
   1128           { itype = CRISV32F_INSN_BOUND_CD; goto extract_sfmt_bound_cd; }
   1129         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
   1130       case 223:
   1131         {
   1132           unsigned int val1 = (((insn >> 12) & (15 << 0)));
   1133           switch (val1)
   1134           {
   1135           case 0:
   1136           case 1:
   1137           case 2:
   1138           case 3:
   1139           case 4:
   1140           case 5:
   1141           case 6:
   1142           case 7:
   1143           case 8:
   1144           case 9:
   1145           case 10:
   1146           case 11:
   1147           case 12:
   1148           case 13:
   1149           case 15:
   1150             if ((base_insn & 0xfff) == 0xdff)
   1151               { itype = CRISV32F_INSN_BCC_W; goto extract_sfmt_bcc_w; }
   1152             itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
   1153           case 14:
   1154             if ((base_insn & 0xffff) == 0xedff)
   1155               { itype = CRISV32F_INSN_BA_W; goto extract_sfmt_ba_w; }
   1156             itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
   1157           default: itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
   1158           }
   1159         }
   1160       case 224:
   1161         {
   1162           unsigned int val1 = (((insn >> 0) & (15 << 0)));
   1163           switch (val1)
   1164           {
   1165           case 0:
   1166           case 1:
   1167           case 2:
   1168           case 3:
   1169           case 4:
   1170           case 5:
   1171           case 6:
   1172           case 7:
   1173           case 8:
   1174           case 9:
   1175           case 10:
   1176           case 11:
   1177           case 12:
   1178           case 13:
   1179           case 14: itype = CRISV32F_INSN_ADD_M_B_M; goto extract_sfmt_add_m_b_m;
   1180           case 15: itype = CRISV32F_INSN_ADDCBR; goto extract_sfmt_addcbr;
   1181           default: itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
   1182           }
   1183         }
   1184       case 225:
   1185         {
   1186           unsigned int val1 = (((insn >> 0) & (15 << 0)));
   1187           switch (val1)
   1188           {
   1189           case 0:
   1190           case 1:
   1191           case 2:
   1192           case 3:
   1193           case 4:
   1194           case 5:
   1195           case 6:
   1196           case 7:
   1197           case 8:
   1198           case 9:
   1199           case 10:
   1200           case 11:
   1201           case 12:
   1202           case 13:
   1203           case 14: itype = CRISV32F_INSN_ADD_M_W_M; goto extract_sfmt_add_m_w_m;
   1204           case 15: itype = CRISV32F_INSN_ADDCWR; goto extract_sfmt_addcwr;
   1205           default: itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
   1206           }
   1207         }
   1208       case 226:
   1209         {
   1210           unsigned int val1 = (((insn >> 0) & (15 << 0)));
   1211           switch (val1)
   1212           {
   1213           case 0:
   1214           case 1:
   1215           case 2:
   1216           case 3:
   1217           case 4:
   1218           case 5:
   1219           case 6:
   1220           case 7:
   1221           case 8:
   1222           case 9:
   1223           case 10:
   1224           case 11:
   1225           case 12:
   1226           case 13:
   1227           case 14: itype = CRISV32F_INSN_ADD_M_D_M; goto extract_sfmt_add_m_d_m;
   1228           case 15: itype = CRISV32F_INSN_ADDCDR; goto extract_sfmt_addcdr;
   1229           default: itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
   1230           }
   1231         }
   1232       case 227:
   1233         {
   1234           unsigned int val1 = (((insn >> 12) & (15 << 0)));
   1235           switch (val1)
   1236           {
   1237           case 0:
   1238           case 1:
   1239           case 4:
   1240           case 8: itype = CRISV32F_INSN_MOVE_M_SPRV32; goto extract_sfmt_move_m_sprv32;
   1241           case 2:
   1242             {
   1243               unsigned int val2 = (((insn >> 0) & (15 << 0)));
   1244               switch (val2)
   1245               {
   1246               case 0:
   1247               case 1:
   1248               case 2:
   1249               case 3:
   1250               case 4:
   1251               case 5:
   1252               case 6:
   1253               case 7:
   1254               case 8:
   1255               case 9:
   1256               case 10:
   1257               case 11:
   1258               case 12:
   1259               case 13:
   1260               case 14: itype = CRISV32F_INSN_MOVE_M_SPRV32; goto extract_sfmt_move_m_sprv32;
   1261               case 15: itype = CRISV32F_INSN_MOVE_C_SPRV32_P2; goto extract_sfmt_move_c_sprv32_p2;
   1262               default: itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
   1263               }
   1264             }
   1265           case 3:
   1266             {
   1267               unsigned int val2 = (((insn >> 0) & (15 << 0)));
   1268               switch (val2)
   1269               {
   1270               case 0:
   1271               case 1:
   1272               case 2:
   1273               case 3:
   1274               case 4:
   1275               case 5:
   1276               case 6:
   1277               case 7:
   1278               case 8:
   1279               case 9:
   1280               case 10:
   1281               case 11:
   1282               case 12:
   1283               case 13:
   1284               case 14: itype = CRISV32F_INSN_MOVE_M_SPRV32; goto extract_sfmt_move_m_sprv32;
   1285               case 15: itype = CRISV32F_INSN_MOVE_C_SPRV32_P3; goto extract_sfmt_move_c_sprv32_p2;
   1286               default: itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
   1287               }
   1288             }
   1289           case 5:
   1290             {
   1291               unsigned int val2 = (((insn >> 0) & (15 << 0)));
   1292               switch (val2)
   1293               {
   1294               case 0:
   1295               case 1:
   1296               case 2:
   1297               case 3:
   1298               case 4:
   1299               case 5:
   1300               case 6:
   1301               case 7:
   1302               case 8:
   1303               case 9:
   1304               case 10:
   1305               case 11:
   1306               case 12:
   1307               case 13:
   1308               case 14: itype = CRISV32F_INSN_MOVE_M_SPRV32; goto extract_sfmt_move_m_sprv32;
   1309               case 15: itype = CRISV32F_INSN_MOVE_C_SPRV32_P5; goto extract_sfmt_move_c_sprv32_p2;
   1310               default: itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
   1311               }
   1312             }
   1313           case 6:
   1314             {
   1315               unsigned int val2 = (((insn >> 0) & (15 << 0)));
   1316               switch (val2)
   1317               {
   1318               case 0:
   1319               case 1:
   1320               case 2:
   1321               case 3:
   1322               case 4:
   1323               case 5:
   1324               case 6:
   1325               case 7:
   1326               case 8:
   1327               case 9:
   1328               case 10:
   1329               case 11:
   1330               case 12:
   1331               case 13:
   1332               case 14: itype = CRISV32F_INSN_MOVE_M_SPRV32; goto extract_sfmt_move_m_sprv32;
   1333               case 15: itype = CRISV32F_INSN_MOVE_C_SPRV32_P6; goto extract_sfmt_move_c_sprv32_p2;
   1334               default: itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
   1335               }
   1336             }
   1337           case 7:
   1338             {
   1339               unsigned int val2 = (((insn >> 0) & (15 << 0)));
   1340               switch (val2)
   1341               {
   1342               case 0:
   1343               case 1:
   1344               case 2:
   1345               case 3:
   1346               case 4:
   1347               case 5:
   1348               case 6:
   1349               case 7:
   1350               case 8:
   1351               case 9:
   1352               case 10:
   1353               case 11:
   1354               case 12:
   1355               case 13:
   1356               case 14: itype = CRISV32F_INSN_MOVE_M_SPRV32; goto extract_sfmt_move_m_sprv32;
   1357               case 15: itype = CRISV32F_INSN_MOVE_C_SPRV32_P7; goto extract_sfmt_move_c_sprv32_p2;
   1358               default: itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
   1359               }
   1360             }
   1361           case 9:
   1362             {
   1363               unsigned int val2 = (((insn >> 0) & (15 << 0)));
   1364               switch (val2)
   1365               {
   1366               case 0:
   1367               case 1:
   1368               case 2:
   1369               case 3:
   1370               case 4:
   1371               case 5:
   1372               case 6:
   1373               case 7:
   1374               case 8:
   1375               case 9:
   1376               case 10:
   1377               case 11:
   1378               case 12:
   1379               case 13:
   1380               case 14: itype = CRISV32F_INSN_MOVE_M_SPRV32; goto extract_sfmt_move_m_sprv32;
   1381               case 15: itype = CRISV32F_INSN_MOVE_C_SPRV32_P9; goto extract_sfmt_move_c_sprv32_p2;
   1382               default: itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
   1383               }
   1384             }
   1385           case 10:
   1386             {
   1387               unsigned int val2 = (((insn >> 0) & (15 << 0)));
   1388               switch (val2)
   1389               {
   1390               case 0:
   1391               case 1:
   1392               case 2:
   1393               case 3:
   1394               case 4:
   1395               case 5:
   1396               case 6:
   1397               case 7:
   1398               case 8:
   1399               case 9:
   1400               case 10:
   1401               case 11:
   1402               case 12:
   1403               case 13:
   1404               case 14: itype = CRISV32F_INSN_MOVE_M_SPRV32; goto extract_sfmt_move_m_sprv32;
   1405               case 15: itype = CRISV32F_INSN_MOVE_C_SPRV32_P10; goto extract_sfmt_move_c_sprv32_p2;
   1406               default: itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
   1407               }
   1408             }
   1409           case 11:
   1410             {
   1411               unsigned int val2 = (((insn >> 0) & (15 << 0)));
   1412               switch (val2)
   1413               {
   1414               case 0:
   1415               case 1:
   1416               case 2:
   1417               case 3:
   1418               case 4:
   1419               case 5:
   1420               case 6:
   1421               case 7:
   1422               case 8:
   1423               case 9:
   1424               case 10:
   1425               case 11:
   1426               case 12:
   1427               case 13:
   1428               case 14: itype = CRISV32F_INSN_MOVE_M_SPRV32; goto extract_sfmt_move_m_sprv32;
   1429               case 15: itype = CRISV32F_INSN_MOVE_C_SPRV32_P11; goto extract_sfmt_move_c_sprv32_p2;
   1430               default: itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
   1431               }
   1432             }
   1433           case 12:
   1434             {
   1435               unsigned int val2 = (((insn >> 0) & (15 << 0)));
   1436               switch (val2)
   1437               {
   1438               case 0:
   1439               case 1:
   1440               case 2:
   1441               case 3:
   1442               case 4:
   1443               case 5:
   1444               case 6:
   1445               case 7:
   1446               case 8:
   1447               case 9:
   1448               case 10:
   1449               case 11:
   1450               case 12:
   1451               case 13:
   1452               case 14: itype = CRISV32F_INSN_MOVE_M_SPRV32; goto extract_sfmt_move_m_sprv32;
   1453               case 15: itype = CRISV32F_INSN_MOVE_C_SPRV32_P12; goto extract_sfmt_move_c_sprv32_p2;
   1454               default: itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
   1455               }
   1456             }
   1457           case 13:
   1458             {
   1459               unsigned int val2 = (((insn >> 0) & (15 << 0)));
   1460               switch (val2)
   1461               {
   1462               case 0:
   1463               case 1:
   1464               case 2:
   1465               case 3:
   1466               case 4:
   1467               case 5:
   1468               case 6:
   1469               case 7:
   1470               case 8:
   1471               case 9:
   1472               case 10:
   1473               case 11:
   1474               case 12:
   1475               case 13:
   1476               case 14: itype = CRISV32F_INSN_MOVE_M_SPRV32; goto extract_sfmt_move_m_sprv32;
   1477               case 15: itype = CRISV32F_INSN_MOVE_C_SPRV32_P13; goto extract_sfmt_move_c_sprv32_p2;
   1478               default: itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
   1479               }
   1480             }
   1481           case 14:
   1482             {
   1483               unsigned int val2 = (((insn >> 0) & (15 << 0)));
   1484               switch (val2)
   1485               {
   1486               case 0:
   1487               case 1:
   1488               case 2:
   1489               case 3:
   1490               case 4:
   1491               case 5:
   1492               case 6:
   1493               case 7:
   1494               case 8:
   1495               case 9:
   1496               case 10:
   1497               case 11:
   1498               case 12:
   1499               case 13:
   1500               case 14: itype = CRISV32F_INSN_MOVE_M_SPRV32; goto extract_sfmt_move_m_sprv32;
   1501               case 15: itype = CRISV32F_INSN_MOVE_C_SPRV32_P14; goto extract_sfmt_move_c_sprv32_p2;
   1502               default: itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
   1503               }
   1504             }
   1505           case 15:
   1506             {
   1507               unsigned int val2 = (((insn >> 0) & (15 << 0)));
   1508               switch (val2)
   1509               {
   1510               case 0:
   1511               case 1:
   1512               case 2:
   1513               case 3:
   1514               case 4:
   1515               case 5:
   1516               case 6:
   1517               case 7:
   1518               case 8:
   1519               case 9:
   1520               case 10:
   1521               case 11:
   1522               case 12:
   1523               case 13:
   1524               case 14: itype = CRISV32F_INSN_MOVE_M_SPRV32; goto extract_sfmt_move_m_sprv32;
   1525               case 15: itype = CRISV32F_INSN_MOVE_C_SPRV32_P15; goto extract_sfmt_move_c_sprv32_p2;
   1526               default: itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
   1527               }
   1528             }
   1529           default: itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
   1530           }
   1531         }
   1532       case 228:
   1533         {
   1534           unsigned int val1 = (((insn >> 0) & (15 << 0)));
   1535           switch (val1)
   1536           {
   1537           case 0:
   1538           case 1:
   1539           case 2:
   1540           case 3:
   1541           case 4:
   1542           case 5:
   1543           case 6:
   1544           case 7:
   1545           case 8:
   1546           case 9:
   1547           case 10:
   1548           case 11:
   1549           case 12:
   1550           case 13:
   1551           case 14: itype = CRISV32F_INSN_MOVE_M_B_M; goto extract_sfmt_move_m_b_m;
   1552           case 15: itype = CRISV32F_INSN_MOVECBR; goto extract_sfmt_movecbr;
   1553           default: itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
   1554           }
   1555         }
   1556       case 229:
   1557         {
   1558           unsigned int val1 = (((insn >> 0) & (15 << 0)));
   1559           switch (val1)
   1560           {
   1561           case 0:
   1562           case 1:
   1563           case 2:
   1564           case 3:
   1565           case 4:
   1566           case 5:
   1567           case 6:
   1568           case 7:
   1569           case 8:
   1570           case 9:
   1571           case 10:
   1572           case 11:
   1573           case 12:
   1574           case 13:
   1575           case 14: itype = CRISV32F_INSN_MOVE_M_W_M; goto extract_sfmt_move_m_w_m;
   1576           case 15: itype = CRISV32F_INSN_MOVECWR; goto extract_sfmt_movecwr;
   1577           default: itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
   1578           }
   1579         }
   1580       case 230:
   1581         {
   1582           unsigned int val1 = (((insn >> 0) & (15 << 0)));
   1583           switch (val1)
   1584           {
   1585           case 0:
   1586           case 1:
   1587           case 2:
   1588           case 3:
   1589           case 4:
   1590           case 5:
   1591           case 6:
   1592           case 7:
   1593           case 8:
   1594           case 9:
   1595           case 10:
   1596           case 11:
   1597           case 12:
   1598           case 13:
   1599           case 14: itype = CRISV32F_INSN_MOVE_M_D_M; goto extract_sfmt_move_m_d_m;
   1600           case 15: itype = CRISV32F_INSN_MOVECDR; goto extract_sfmt_movecdr;
   1601           default: itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
   1602           }
   1603         }
   1604       case 232:
   1605         {
   1606           unsigned int val1 = (((insn >> 0) & (15 << 0)));
   1607           switch (val1)
   1608           {
   1609           case 0:
   1610           case 1:
   1611           case 2:
   1612           case 3:
   1613           case 4:
   1614           case 5:
   1615           case 6:
   1616           case 7:
   1617           case 8:
   1618           case 9:
   1619           case 10:
   1620           case 11:
   1621           case 12:
   1622           case 13:
   1623           case 14: itype = CRISV32F_INSN_SUB_M_B_M; goto extract_sfmt_add_m_b_m;
   1624           case 15: itype = CRISV32F_INSN_SUBCBR; goto extract_sfmt_addcbr;
   1625           default: itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
   1626           }
   1627         }
   1628       case 233:
   1629         {
   1630           unsigned int val1 = (((insn >> 0) & (15 << 0)));
   1631           switch (val1)
   1632           {
   1633           case 0:
   1634           case 1:
   1635           case 2:
   1636           case 3:
   1637           case 4:
   1638           case 5:
   1639           case 6:
   1640           case 7:
   1641           case 8:
   1642           case 9:
   1643           case 10:
   1644           case 11:
   1645           case 12:
   1646           case 13:
   1647           case 14: itype = CRISV32F_INSN_SUB_M_W_M; goto extract_sfmt_add_m_w_m;
   1648           case 15: itype = CRISV32F_INSN_SUBCWR; goto extract_sfmt_addcwr;
   1649           default: itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
   1650           }
   1651         }
   1652       case 234:
   1653         {
   1654           unsigned int val1 = (((insn >> 0) & (15 << 0)));
   1655           switch (val1)
   1656           {
   1657           case 0:
   1658           case 1:
   1659           case 2:
   1660           case 3:
   1661           case 4:
   1662           case 5:
   1663           case 6:
   1664           case 7:
   1665           case 8:
   1666           case 9:
   1667           case 10:
   1668           case 11:
   1669           case 12:
   1670           case 13:
   1671           case 14: itype = CRISV32F_INSN_SUB_M_D_M; goto extract_sfmt_add_m_d_m;
   1672           case 15: itype = CRISV32F_INSN_SUBCDR; goto extract_sfmt_addcdr;
   1673           default: itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
   1674           }
   1675         }
   1676       case 235:
   1677         if ((base_insn & 0xfff) == 0xebf)
   1678           { itype = CRISV32F_INSN_BAS_C; goto extract_sfmt_bas_c; }
   1679         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
   1680       case 236:
   1681         {
   1682           unsigned int val1 = (((insn >> 0) & (15 << 0)));
   1683           switch (val1)
   1684           {
   1685           case 0:
   1686           case 1:
   1687           case 2:
   1688           case 3:
   1689           case 4:
   1690           case 5:
   1691           case 6:
   1692           case 7:
   1693           case 8:
   1694           case 9:
   1695           case 10:
   1696           case 11:
   1697           case 12:
   1698           case 13:
   1699           case 14: itype = CRISV32F_INSN_CMP_M_B_M; goto extract_sfmt_cmp_m_b_m;
   1700           case 15: itype = CRISV32F_INSN_CMPCBR; goto extract_sfmt_cmpcbr;
   1701           default: itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
   1702           }
   1703         }
   1704       case 237:
   1705         {
   1706           unsigned int val1 = (((insn >> 0) & (15 << 0)));
   1707           switch (val1)
   1708           {
   1709           case 0:
   1710           case 1:
   1711           case 2:
   1712           case 3:
   1713           case 4:
   1714           case 5:
   1715           case 6:
   1716           case 7:
   1717           case 8:
   1718           case 9:
   1719           case 10:
   1720           case 11:
   1721           case 12:
   1722           case 13:
   1723           case 14: itype = CRISV32F_INSN_CMP_M_W_M; goto extract_sfmt_cmp_m_w_m;
   1724           case 15: itype = CRISV32F_INSN_CMPCWR; goto extract_sfmt_cmpcwr;
   1725           default: itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
   1726           }
   1727         }
   1728       case 238:
   1729         {
   1730           unsigned int val1 = (((insn >> 0) & (15 << 0)));
   1731           switch (val1)
   1732           {
   1733           case 0:
   1734           case 1:
   1735           case 2:
   1736           case 3:
   1737           case 4:
   1738           case 5:
   1739           case 6:
   1740           case 7:
   1741           case 8:
   1742           case 9:
   1743           case 10:
   1744           case 11:
   1745           case 12:
   1746           case 13:
   1747           case 14: itype = CRISV32F_INSN_CMP_M_D_M; goto extract_sfmt_cmp_m_d_m;
   1748           case 15: itype = CRISV32F_INSN_CMPCDR; goto extract_sfmt_cmpcdr;
   1749           default: itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
   1750           }
   1751         }
   1752       case 239:
   1753         if ((base_insn & 0xfff) == 0xeff)
   1754           { itype = CRISV32F_INSN_BASC_C; goto extract_sfmt_bas_c; }
   1755         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
   1756       case 240:
   1757         {
   1758           unsigned int val1 = (((insn >> 0) & (15 << 0)));
   1759           switch (val1)
   1760           {
   1761           case 0:
   1762           case 1:
   1763           case 2:
   1764           case 3:
   1765           case 4:
   1766           case 5:
   1767           case 6:
   1768           case 7:
   1769           case 8:
   1770           case 9:
   1771           case 10:
   1772           case 11:
   1773           case 12:
   1774           case 13:
   1775           case 14: itype = CRISV32F_INSN_AND_M_B_M; goto extract_sfmt_and_m_b_m;
   1776           case 15: itype = CRISV32F_INSN_ANDCBR; goto extract_sfmt_andcbr;
   1777           default: itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
   1778           }
   1779         }
   1780       case 241:
   1781         {
   1782           unsigned int val1 = (((insn >> 0) & (15 << 0)));
   1783           switch (val1)
   1784           {
   1785           case 0:
   1786           case 1:
   1787           case 2:
   1788           case 3:
   1789           case 4:
   1790           case 5:
   1791           case 6:
   1792           case 7:
   1793           case 8:
   1794           case 9:
   1795           case 10:
   1796           case 11:
   1797           case 12:
   1798           case 13:
   1799           case 14: itype = CRISV32F_INSN_AND_M_W_M; goto extract_sfmt_and_m_w_m;
   1800           case 15: itype = CRISV32F_INSN_ANDCWR; goto extract_sfmt_andcwr;
   1801           default: itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
   1802           }
   1803         }
   1804       case 242:
   1805         {
   1806           unsigned int val1 = (((insn >> 0) & (15 << 0)));
   1807           switch (val1)
   1808           {
   1809           case 0:
   1810           case 1:
   1811           case 2:
   1812           case 3:
   1813           case 4:
   1814           case 5:
   1815           case 6:
   1816           case 7:
   1817           case 8:
   1818           case 9:
   1819           case 10:
   1820           case 11:
   1821           case 12:
   1822           case 13:
   1823           case 14: itype = CRISV32F_INSN_AND_M_D_M; goto extract_sfmt_and_m_d_m;
   1824           case 15: itype = CRISV32F_INSN_ANDCDR; goto extract_sfmt_andcdr;
   1825           default: itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
   1826           }
   1827         }
   1828       case 243:
   1829         if ((base_insn & 0xfff) == 0xf3f)
   1830           { itype = CRISV32F_INSN_JASC_C; goto extract_sfmt_jas_c; }
   1831         itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
   1832       case 244:
   1833         {
   1834           unsigned int val1 = (((insn >> 0) & (15 << 0)));
   1835           switch (val1)
   1836           {
   1837           case 0:
   1838           case 1:
   1839           case 2:
   1840           case 3:
   1841           case 4:
   1842           case 5:
   1843           case 6:
   1844           case 7:
   1845           case 8:
   1846           case 9:
   1847           case 10:
   1848           case 11:
   1849           case 12:
   1850           case 13:
   1851           case 14: itype = CRISV32F_INSN_OR_M_B_M; goto extract_sfmt_and_m_b_m;
   1852           case 15: itype = CRISV32F_INSN_ORCBR; goto extract_sfmt_andcbr;
   1853           default: itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
   1854           }
   1855         }
   1856       case 245:
   1857         {
   1858           unsigned int val1 = (((insn >> 0) & (15 << 0)));
   1859           switch (val1)
   1860           {
   1861           case 0:
   1862           case 1:
   1863           case 2:
   1864           case 3:
   1865           case 4:
   1866           case 5:
   1867           case 6:
   1868           case 7:
   1869           case 8:
   1870           case 9:
   1871           case 10:
   1872           case 11:
   1873           case 12:
   1874           case 13:
   1875           case 14: itype = CRISV32F_INSN_OR_M_W_M; goto extract_sfmt_and_m_w_m;
   1876           case 15: itype = CRISV32F_INSN_ORCWR; goto extract_sfmt_andcwr;
   1877           default: itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
   1878           }
   1879         }
   1880       case 246:
   1881         {
   1882           unsigned int val1 = (((insn >> 0) & (15 << 0)));
   1883           switch (val1)
   1884           {
   1885           case 0:
   1886           case 1:
   1887           case 2:
   1888           case 3:
   1889           case 4:
   1890           case 5:
   1891           case 6:
   1892           case 7:
   1893           case 8:
   1894           case 9:
   1895           case 10:
   1896           case 11:
   1897           case 12:
   1898           case 13:
   1899           case 14: itype = CRISV32F_INSN_OR_M_D_M; goto extract_sfmt_and_m_d_m;
   1900           case 15: itype = CRISV32F_INSN_ORCDR; goto extract_sfmt_andcdr;
   1901           default: itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
   1902           }
   1903         }
   1904       case 247: itype = CRISV32F_INSN_MOVE_SS_R; goto extract_sfmt_move_ss_r;
   1905       default: itype = CRISV32F_INSN_X_INVALID; goto extract_sfmt_empty;
   1906       }
   1907     }
   1908   }
   1909 
   1910   /* The instruction has been decoded, now extract the fields.  */
   1911 
   1912  extract_sfmt_empty:
   1913   {
   1914     const IDESC *idesc = &crisv32f_insn_data[itype];
   1915 #define FLD(f) abuf->fields.sfmt_empty.f
   1916 
   1917 
   1918   /* Record the fields for the semantic handler.  */
   1919   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_empty", (char *) 0));
   1920 
   1921 #undef FLD
   1922     return idesc;
   1923   }
   1924 
   1925  extract_sfmt_move_b_r:
   1926   {
   1927     const IDESC *idesc = &crisv32f_insn_data[itype];
   1928     CGEN_INSN_WORD insn ATTRIBUTE_UNUSED = base_insn;
   1929 #define FLD(f) abuf->fields.sfmt_addc_m.f
   1930     UINT f_operand2;
   1931     UINT f_operand1;
   1932 
   1933     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
   1934     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
   1935 
   1936   /* Record the fields for the semantic handler.  */
   1937   FLD (f_operand1) = f_operand1;
   1938   FLD (f_operand2) = f_operand2;
   1939   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_move_b_r", "f_operand1 0x%x", 'x', f_operand1, "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
   1940 
   1941 #if WITH_PROFILE_MODEL_P
   1942   /* Record the fields for profiling.  */
   1943   if (PROFILE_MODEL_P (current_cpu))
   1944     {
   1945       FLD (in_Rs) = f_operand1;
   1946       FLD (out_h_gr_SI_index_of__INT_Rd) = FLD (f_operand2);
   1947     }
   1948 #endif
   1949 #undef FLD
   1950     return idesc;
   1951   }
   1952 
   1953  extract_sfmt_move_d_r:
   1954   {
   1955     const IDESC *idesc = &crisv32f_insn_data[itype];
   1956     CGEN_INSN_WORD insn ATTRIBUTE_UNUSED = base_insn;
   1957 #define FLD(f) abuf->fields.sfmt_addc_m.f
   1958     UINT f_operand2;
   1959     UINT f_operand1;
   1960 
   1961     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
   1962     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
   1963 
   1964   /* Record the fields for the semantic handler.  */
   1965   FLD (f_operand1) = f_operand1;
   1966   FLD (f_operand2) = f_operand2;
   1967   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_move_d_r", "f_operand1 0x%x", 'x', f_operand1, "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
   1968 
   1969 #if WITH_PROFILE_MODEL_P
   1970   /* Record the fields for profiling.  */
   1971   if (PROFILE_MODEL_P (current_cpu))
   1972     {
   1973       FLD (in_Rs) = f_operand1;
   1974       FLD (out_h_gr_SI_index_of__INT_Rd) = FLD (f_operand2);
   1975     }
   1976 #endif
   1977 #undef FLD
   1978     return idesc;
   1979   }
   1980 
   1981  extract_sfmt_moveq:
   1982   {
   1983     const IDESC *idesc = &crisv32f_insn_data[itype];
   1984     CGEN_INSN_WORD insn ATTRIBUTE_UNUSED = base_insn;
   1985 #define FLD(f) abuf->fields.sfmt_moveq.f
   1986     UINT f_operand2;
   1987     INT f_s6;
   1988 
   1989     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
   1990     f_s6 = EXTRACT_LSB0_SINT (insn, 16, 5, 6);
   1991 
   1992   /* Record the fields for the semantic handler.  */
   1993   FLD (f_s6) = f_s6;
   1994   FLD (f_operand2) = f_operand2;
   1995   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_moveq", "f_s6 0x%x", 'x', f_s6, "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
   1996 
   1997 #if WITH_PROFILE_MODEL_P
   1998   /* Record the fields for profiling.  */
   1999   if (PROFILE_MODEL_P (current_cpu))
   2000     {
   2001       FLD (out_Rd) = f_operand2;
   2002     }
   2003 #endif
   2004 #undef FLD
   2005     return idesc;
   2006   }
   2007 
   2008  extract_sfmt_movs_b_r:
   2009   {
   2010     const IDESC *idesc = &crisv32f_insn_data[itype];
   2011     CGEN_INSN_WORD insn ATTRIBUTE_UNUSED = base_insn;
   2012 #define FLD(f) abuf->fields.sfmt_muls_b.f
   2013     UINT f_operand2;
   2014     UINT f_operand1;
   2015 
   2016     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
   2017     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
   2018 
   2019   /* Record the fields for the semantic handler.  */
   2020   FLD (f_operand1) = f_operand1;
   2021   FLD (f_operand2) = f_operand2;
   2022   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movs_b_r", "f_operand1 0x%x", 'x', f_operand1, "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
   2023 
   2024 #if WITH_PROFILE_MODEL_P
   2025   /* Record the fields for profiling.  */
   2026   if (PROFILE_MODEL_P (current_cpu))
   2027     {
   2028       FLD (in_Rs) = f_operand1;
   2029       FLD (out_Rd) = f_operand2;
   2030     }
   2031 #endif
   2032 #undef FLD
   2033     return idesc;
   2034   }
   2035 
   2036  extract_sfmt_movecbr:
   2037   {
   2038     const IDESC *idesc = &crisv32f_insn_data[itype];
   2039     CGEN_INSN_WORD insn ATTRIBUTE_UNUSED = base_insn;
   2040 #define FLD(f) abuf->fields.sfmt_addcbr.f
   2041     INT f_indir_pc__byte;
   2042     UINT f_operand2;
   2043     /* Contents of trailing part of insn.  */
   2044     UINT word_1;
   2045 
   2046   word_1 = GETIMEMUSI (current_cpu, pc + 2);
   2047     f_indir_pc__byte = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
   2048     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
   2049 
   2050   /* Record the fields for the semantic handler.  */
   2051   FLD (f_operand2) = f_operand2;
   2052   FLD (f_indir_pc__byte) = f_indir_pc__byte;
   2053   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movecbr", "f_operand2 0x%x", 'x', f_operand2, "f_indir_pc__byte 0x%x", 'x', f_indir_pc__byte, (char *) 0));
   2054 
   2055 #if WITH_PROFILE_MODEL_P
   2056   /* Record the fields for profiling.  */
   2057   if (PROFILE_MODEL_P (current_cpu))
   2058     {
   2059       FLD (out_h_gr_SI_index_of__INT_Rd) = FLD (f_operand2);
   2060     }
   2061 #endif
   2062 #undef FLD
   2063     return idesc;
   2064   }
   2065 
   2066  extract_sfmt_movecwr:
   2067   {
   2068     const IDESC *idesc = &crisv32f_insn_data[itype];
   2069     CGEN_INSN_WORD insn ATTRIBUTE_UNUSED = base_insn;
   2070 #define FLD(f) abuf->fields.sfmt_addcwr.f
   2071     INT f_indir_pc__word;
   2072     UINT f_operand2;
   2073     /* Contents of trailing part of insn.  */
   2074     UINT word_1;
   2075 
   2076   word_1 = GETIMEMUSI (current_cpu, pc + 2);
   2077     f_indir_pc__word = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
   2078     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
   2079 
   2080   /* Record the fields for the semantic handler.  */
   2081   FLD (f_operand2) = f_operand2;
   2082   FLD (f_indir_pc__word) = f_indir_pc__word;
   2083   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movecwr", "f_operand2 0x%x", 'x', f_operand2, "f_indir_pc__word 0x%x", 'x', f_indir_pc__word, (char *) 0));
   2084 
   2085 #if WITH_PROFILE_MODEL_P
   2086   /* Record the fields for profiling.  */
   2087   if (PROFILE_MODEL_P (current_cpu))
   2088     {
   2089       FLD (out_h_gr_SI_index_of__INT_Rd) = FLD (f_operand2);
   2090     }
   2091 #endif
   2092 #undef FLD
   2093     return idesc;
   2094   }
   2095 
   2096  extract_sfmt_movecdr:
   2097   {
   2098     const IDESC *idesc = &crisv32f_insn_data[itype];
   2099     CGEN_INSN_WORD insn ATTRIBUTE_UNUSED = base_insn;
   2100 #define FLD(f) abuf->fields.sfmt_bound_cd.f
   2101     INT f_indir_pc__dword;
   2102     UINT f_operand2;
   2103     /* Contents of trailing part of insn.  */
   2104     UINT word_1;
   2105 
   2106   word_1 = GETIMEMUSI (current_cpu, pc + 2);
   2107     f_indir_pc__dword = (0|(EXTRACT_LSB0_UINT (word_1, 32, 31, 32) << 0));
   2108     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
   2109 
   2110   /* Record the fields for the semantic handler.  */
   2111   FLD (f_indir_pc__dword) = f_indir_pc__dword;
   2112   FLD (f_operand2) = f_operand2;
   2113   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movecdr", "f_indir_pc__dword 0x%x", 'x', f_indir_pc__dword, "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
   2114 
   2115 #if WITH_PROFILE_MODEL_P
   2116   /* Record the fields for profiling.  */
   2117   if (PROFILE_MODEL_P (current_cpu))
   2118     {
   2119       FLD (out_Rd) = f_operand2;
   2120     }
   2121 #endif
   2122 #undef FLD
   2123     return idesc;
   2124   }
   2125 
   2126  extract_sfmt_movscbr:
   2127   {
   2128     const IDESC *idesc = &crisv32f_insn_data[itype];
   2129     CGEN_INSN_WORD insn ATTRIBUTE_UNUSED = base_insn;
   2130 #define FLD(f) abuf->fields.sfmt_bound_cb.f
   2131     UINT f_operand2;
   2132     INT f_indir_pc__byte;
   2133     /* Contents of trailing part of insn.  */
   2134     UINT word_1;
   2135 
   2136   word_1 = GETIMEMUSI (current_cpu, pc + 2);
   2137     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
   2138     f_indir_pc__byte = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
   2139 
   2140   /* Record the fields for the semantic handler.  */
   2141   FLD (f_indir_pc__byte) = f_indir_pc__byte;
   2142   FLD (f_operand2) = f_operand2;
   2143   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movscbr", "f_indir_pc__byte 0x%x", 'x', f_indir_pc__byte, "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
   2144 
   2145 #if WITH_PROFILE_MODEL_P
   2146   /* Record the fields for profiling.  */
   2147   if (PROFILE_MODEL_P (current_cpu))
   2148     {
   2149       FLD (out_Rd) = f_operand2;
   2150     }
   2151 #endif
   2152 #undef FLD
   2153     return idesc;
   2154   }
   2155 
   2156  extract_sfmt_movscwr:
   2157   {
   2158     const IDESC *idesc = &crisv32f_insn_data[itype];
   2159     CGEN_INSN_WORD insn ATTRIBUTE_UNUSED = base_insn;
   2160 #define FLD(f) abuf->fields.sfmt_bound_cw.f
   2161     UINT f_operand2;
   2162     INT f_indir_pc__word;
   2163     /* Contents of trailing part of insn.  */
   2164     UINT word_1;
   2165 
   2166   word_1 = GETIMEMUSI (current_cpu, pc + 2);
   2167     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
   2168     f_indir_pc__word = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
   2169 
   2170   /* Record the fields for the semantic handler.  */
   2171   FLD (f_indir_pc__word) = f_indir_pc__word;
   2172   FLD (f_operand2) = f_operand2;
   2173   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movscwr", "f_indir_pc__word 0x%x", 'x', f_indir_pc__word, "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
   2174 
   2175 #if WITH_PROFILE_MODEL_P
   2176   /* Record the fields for profiling.  */
   2177   if (PROFILE_MODEL_P (current_cpu))
   2178     {
   2179       FLD (out_Rd) = f_operand2;
   2180     }
   2181 #endif
   2182 #undef FLD
   2183     return idesc;
   2184   }
   2185 
   2186  extract_sfmt_movucbr:
   2187   {
   2188     const IDESC *idesc = &crisv32f_insn_data[itype];
   2189     CGEN_INSN_WORD insn ATTRIBUTE_UNUSED = base_insn;
   2190 #define FLD(f) abuf->fields.sfmt_bound_cb.f
   2191     UINT f_operand2;
   2192     INT f_indir_pc__byte;
   2193     /* Contents of trailing part of insn.  */
   2194     UINT word_1;
   2195 
   2196   word_1 = GETIMEMUSI (current_cpu, pc + 2);
   2197     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
   2198     f_indir_pc__byte = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
   2199 
   2200   /* Record the fields for the semantic handler.  */
   2201   FLD (f_indir_pc__byte) = f_indir_pc__byte;
   2202   FLD (f_operand2) = f_operand2;
   2203   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movucbr", "f_indir_pc__byte 0x%x", 'x', f_indir_pc__byte, "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
   2204 
   2205 #if WITH_PROFILE_MODEL_P
   2206   /* Record the fields for profiling.  */
   2207   if (PROFILE_MODEL_P (current_cpu))
   2208     {
   2209       FLD (out_Rd) = f_operand2;
   2210     }
   2211 #endif
   2212 #undef FLD
   2213     return idesc;
   2214   }
   2215 
   2216  extract_sfmt_movucwr:
   2217   {
   2218     const IDESC *idesc = &crisv32f_insn_data[itype];
   2219     CGEN_INSN_WORD insn ATTRIBUTE_UNUSED = base_insn;
   2220 #define FLD(f) abuf->fields.sfmt_bound_cw.f
   2221     UINT f_operand2;
   2222     INT f_indir_pc__word;
   2223     /* Contents of trailing part of insn.  */
   2224     UINT word_1;
   2225 
   2226   word_1 = GETIMEMUSI (current_cpu, pc + 2);
   2227     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
   2228     f_indir_pc__word = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
   2229 
   2230   /* Record the fields for the semantic handler.  */
   2231   FLD (f_indir_pc__word) = f_indir_pc__word;
   2232   FLD (f_operand2) = f_operand2;
   2233   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movucwr", "f_indir_pc__word 0x%x", 'x', f_indir_pc__word, "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
   2234 
   2235 #if WITH_PROFILE_MODEL_P
   2236   /* Record the fields for profiling.  */
   2237   if (PROFILE_MODEL_P (current_cpu))
   2238     {
   2239       FLD (out_Rd) = f_operand2;
   2240     }
   2241 #endif
   2242 #undef FLD
   2243     return idesc;
   2244   }
   2245 
   2246  extract_sfmt_addq:
   2247   {
   2248     const IDESC *idesc = &crisv32f_insn_data[itype];
   2249     CGEN_INSN_WORD insn ATTRIBUTE_UNUSED = base_insn;
   2250 #define FLD(f) abuf->fields.sfmt_addq.f
   2251     UINT f_operand2;
   2252     UINT f_u6;
   2253 
   2254     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
   2255     f_u6 = EXTRACT_LSB0_UINT (insn, 16, 5, 6);
   2256 
   2257   /* Record the fields for the semantic handler.  */
   2258   FLD (f_operand2) = f_operand2;
   2259   FLD (f_u6) = f_u6;
   2260   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addq", "f_operand2 0x%x", 'x', f_operand2, "f_u6 0x%x", 'x', f_u6, (char *) 0));
   2261 
   2262 #if WITH_PROFILE_MODEL_P
   2263   /* Record the fields for profiling.  */
   2264   if (PROFILE_MODEL_P (current_cpu))
   2265     {
   2266       FLD (in_Rd) = f_operand2;
   2267       FLD (out_h_gr_SI_index_of__INT_Rd) = FLD (f_operand2);
   2268     }
   2269 #endif
   2270 #undef FLD
   2271     return idesc;
   2272   }
   2273 
   2274  extract_sfmt_cmp_r_b_r:
   2275   {
   2276     const IDESC *idesc = &crisv32f_insn_data[itype];
   2277     CGEN_INSN_WORD insn ATTRIBUTE_UNUSED = base_insn;
   2278 #define FLD(f) abuf->fields.sfmt_muls_b.f
   2279     UINT f_operand2;
   2280     UINT f_operand1;
   2281 
   2282     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
   2283     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
   2284 
   2285   /* Record the fields for the semantic handler.  */
   2286   FLD (f_operand2) = f_operand2;
   2287   FLD (f_operand1) = f_operand1;
   2288   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_cmp_r_b_r", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, (char *) 0));
   2289 
   2290 #if WITH_PROFILE_MODEL_P
   2291   /* Record the fields for profiling.  */
   2292   if (PROFILE_MODEL_P (current_cpu))
   2293     {
   2294       FLD (in_Rd) = f_operand2;
   2295       FLD (in_Rs) = f_operand1;
   2296     }
   2297 #endif
   2298 #undef FLD
   2299     return idesc;
   2300   }
   2301 
   2302  extract_sfmt_cmp_m_b_m:
   2303   {
   2304     const IDESC *idesc = &crisv32f_insn_data[itype];
   2305     CGEN_INSN_WORD insn ATTRIBUTE_UNUSED = base_insn;
   2306 #define FLD(f) abuf->fields.sfmt_addc_m.f
   2307     UINT f_operand2;
   2308     UINT f_memmode;
   2309     UINT f_operand1;
   2310 
   2311     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
   2312     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
   2313     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
   2314 
   2315   /* Record the fields for the semantic handler.  */
   2316   FLD (f_operand2) = f_operand2;
   2317   FLD (f_operand1) = f_operand1;
   2318   FLD (f_memmode) = f_memmode;
   2319   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_cmp_m_b_m", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
   2320 
   2321 #if WITH_PROFILE_MODEL_P
   2322   /* Record the fields for profiling.  */
   2323   if (PROFILE_MODEL_P (current_cpu))
   2324     {
   2325       FLD (in_Rd) = f_operand2;
   2326       FLD (in_Rs) = f_operand1;
   2327       FLD (out_Rs) = f_operand1;
   2328     }
   2329 #endif
   2330 #undef FLD
   2331     return idesc;
   2332   }
   2333 
   2334  extract_sfmt_cmp_m_w_m:
   2335   {
   2336     const IDESC *idesc = &crisv32f_insn_data[itype];
   2337     CGEN_INSN_WORD insn ATTRIBUTE_UNUSED = base_insn;
   2338 #define FLD(f) abuf->fields.sfmt_addc_m.f
   2339     UINT f_operand2;
   2340     UINT f_memmode;
   2341     UINT f_operand1;
   2342 
   2343     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
   2344     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
   2345     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
   2346 
   2347   /* Record the fields for the semantic handler.  */
   2348   FLD (f_operand2) = f_operand2;
   2349   FLD (f_operand1) = f_operand1;
   2350   FLD (f_memmode) = f_memmode;
   2351   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_cmp_m_w_m", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
   2352 
   2353 #if WITH_PROFILE_MODEL_P
   2354   /* Record the fields for profiling.  */
   2355   if (PROFILE_MODEL_P (current_cpu))
   2356     {
   2357       FLD (in_Rd) = f_operand2;
   2358       FLD (in_Rs) = f_operand1;
   2359       FLD (out_Rs) = f_operand1;
   2360     }
   2361 #endif
   2362 #undef FLD
   2363     return idesc;
   2364   }
   2365 
   2366  extract_sfmt_cmp_m_d_m:
   2367   {
   2368     const IDESC *idesc = &crisv32f_insn_data[itype];
   2369     CGEN_INSN_WORD insn ATTRIBUTE_UNUSED = base_insn;
   2370 #define FLD(f) abuf->fields.sfmt_addc_m.f
   2371     UINT f_operand2;
   2372     UINT f_memmode;
   2373     UINT f_operand1;
   2374 
   2375     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
   2376     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
   2377     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
   2378 
   2379   /* Record the fields for the semantic handler.  */
   2380   FLD (f_operand2) = f_operand2;
   2381   FLD (f_operand1) = f_operand1;
   2382   FLD (f_memmode) = f_memmode;
   2383   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_cmp_m_d_m", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
   2384 
   2385 #if WITH_PROFILE_MODEL_P
   2386   /* Record the fields for profiling.  */
   2387   if (PROFILE_MODEL_P (current_cpu))
   2388     {
   2389       FLD (in_Rd) = f_operand2;
   2390       FLD (in_Rs) = f_operand1;
   2391       FLD (out_Rs) = f_operand1;
   2392     }
   2393 #endif
   2394 #undef FLD
   2395     return idesc;
   2396   }
   2397 
   2398  extract_sfmt_cmpcbr:
   2399   {
   2400     const IDESC *idesc = &crisv32f_insn_data[itype];
   2401     CGEN_INSN_WORD insn ATTRIBUTE_UNUSED = base_insn;
   2402 #define FLD(f) abuf->fields.sfmt_bound_cb.f
   2403     INT f_indir_pc__byte;
   2404     UINT f_operand2;
   2405     /* Contents of trailing part of insn.  */
   2406     UINT word_1;
   2407 
   2408   word_1 = GETIMEMUSI (current_cpu, pc + 2);
   2409     f_indir_pc__byte = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
   2410     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
   2411 
   2412   /* Record the fields for the semantic handler.  */
   2413   FLD (f_operand2) = f_operand2;
   2414   FLD (f_indir_pc__byte) = f_indir_pc__byte;
   2415   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_cmpcbr", "f_operand2 0x%x", 'x', f_operand2, "f_indir_pc__byte 0x%x", 'x', f_indir_pc__byte, (char *) 0));
   2416 
   2417 #if WITH_PROFILE_MODEL_P
   2418   /* Record the fields for profiling.  */
   2419   if (PROFILE_MODEL_P (current_cpu))
   2420     {
   2421       FLD (in_Rd) = f_operand2;
   2422     }
   2423 #endif
   2424 #undef FLD
   2425     return idesc;
   2426   }
   2427 
   2428  extract_sfmt_cmpcwr:
   2429   {
   2430     const IDESC *idesc = &crisv32f_insn_data[itype];
   2431     CGEN_INSN_WORD insn ATTRIBUTE_UNUSED = base_insn;
   2432 #define FLD(f) abuf->fields.sfmt_bound_cw.f
   2433     INT f_indir_pc__word;
   2434     UINT f_operand2;
   2435     /* Contents of trailing part of insn.  */
   2436     UINT word_1;
   2437 
   2438   word_1 = GETIMEMUSI (current_cpu, pc + 2);
   2439     f_indir_pc__word = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
   2440     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
   2441 
   2442   /* Record the fields for the semantic handler.  */
   2443   FLD (f_operand2) = f_operand2;
   2444   FLD (f_indir_pc__word) = f_indir_pc__word;
   2445   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_cmpcwr", "f_operand2 0x%x", 'x', f_operand2, "f_indir_pc__word 0x%x", 'x', f_indir_pc__word, (char *) 0));
   2446 
   2447 #if WITH_PROFILE_MODEL_P
   2448   /* Record the fields for profiling.  */
   2449   if (PROFILE_MODEL_P (current_cpu))
   2450     {
   2451       FLD (in_Rd) = f_operand2;
   2452     }
   2453 #endif
   2454 #undef FLD
   2455     return idesc;
   2456   }
   2457 
   2458  extract_sfmt_cmpcdr:
   2459   {
   2460     const IDESC *idesc = &crisv32f_insn_data[itype];
   2461     CGEN_INSN_WORD insn ATTRIBUTE_UNUSED = base_insn;
   2462 #define FLD(f) abuf->fields.sfmt_bound_cd.f
   2463     INT f_indir_pc__dword;
   2464     UINT f_operand2;
   2465     /* Contents of trailing part of insn.  */
   2466     UINT word_1;
   2467 
   2468   word_1 = GETIMEMUSI (current_cpu, pc + 2);
   2469     f_indir_pc__dword = (0|(EXTRACT_LSB0_UINT (word_1, 32, 31, 32) << 0));
   2470     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
   2471 
   2472   /* Record the fields for the semantic handler.  */
   2473   FLD (f_operand2) = f_operand2;
   2474   FLD (f_indir_pc__dword) = f_indir_pc__dword;
   2475   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_cmpcdr", "f_operand2 0x%x", 'x', f_operand2, "f_indir_pc__dword 0x%x", 'x', f_indir_pc__dword, (char *) 0));
   2476 
   2477 #if WITH_PROFILE_MODEL_P
   2478   /* Record the fields for profiling.  */
   2479   if (PROFILE_MODEL_P (current_cpu))
   2480     {
   2481       FLD (in_Rd) = f_operand2;
   2482     }
   2483 #endif
   2484 #undef FLD
   2485     return idesc;
   2486   }
   2487 
   2488  extract_sfmt_cmpq:
   2489   {
   2490     const IDESC *idesc = &crisv32f_insn_data[itype];
   2491     CGEN_INSN_WORD insn ATTRIBUTE_UNUSED = base_insn;
   2492 #define FLD(f) abuf->fields.sfmt_andq.f
   2493     UINT f_operand2;
   2494     INT f_s6;
   2495 
   2496     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
   2497     f_s6 = EXTRACT_LSB0_SINT (insn, 16, 5, 6);
   2498 
   2499   /* Record the fields for the semantic handler.  */
   2500   FLD (f_operand2) = f_operand2;
   2501   FLD (f_s6) = f_s6;
   2502   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_cmpq", "f_operand2 0x%x", 'x', f_operand2, "f_s6 0x%x", 'x', f_s6, (char *) 0));
   2503 
   2504 #if WITH_PROFILE_MODEL_P
   2505   /* Record the fields for profiling.  */
   2506   if (PROFILE_MODEL_P (current_cpu))
   2507     {
   2508       FLD (in_Rd) = f_operand2;
   2509     }
   2510 #endif
   2511 #undef FLD
   2512     return idesc;
   2513   }
   2514 
   2515  extract_sfmt_cmpucbr:
   2516   {
   2517     const IDESC *idesc = &crisv32f_insn_data[itype];
   2518     CGEN_INSN_WORD insn ATTRIBUTE_UNUSED = base_insn;
   2519 #define FLD(f) abuf->fields.sfmt_bound_cb.f
   2520     INT f_indir_pc__byte;
   2521     UINT f_operand2;
   2522     /* Contents of trailing part of insn.  */
   2523     UINT word_1;
   2524 
   2525   word_1 = GETIMEMUSI (current_cpu, pc + 2);
   2526     f_indir_pc__byte = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
   2527     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
   2528 
   2529   /* Record the fields for the semantic handler.  */
   2530   FLD (f_operand2) = f_operand2;
   2531   FLD (f_indir_pc__byte) = f_indir_pc__byte;
   2532   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_cmpucbr", "f_operand2 0x%x", 'x', f_operand2, "f_indir_pc__byte 0x%x", 'x', f_indir_pc__byte, (char *) 0));
   2533 
   2534 #if WITH_PROFILE_MODEL_P
   2535   /* Record the fields for profiling.  */
   2536   if (PROFILE_MODEL_P (current_cpu))
   2537     {
   2538       FLD (in_Rd) = f_operand2;
   2539     }
   2540 #endif
   2541 #undef FLD
   2542     return idesc;
   2543   }
   2544 
   2545  extract_sfmt_cmpucwr:
   2546   {
   2547     const IDESC *idesc = &crisv32f_insn_data[itype];
   2548     CGEN_INSN_WORD insn ATTRIBUTE_UNUSED = base_insn;
   2549 #define FLD(f) abuf->fields.sfmt_bound_cw.f
   2550     INT f_indir_pc__word;
   2551     UINT f_operand2;
   2552     /* Contents of trailing part of insn.  */
   2553     UINT word_1;
   2554 
   2555   word_1 = GETIMEMUSI (current_cpu, pc + 2);
   2556     f_indir_pc__word = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
   2557     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
   2558 
   2559   /* Record the fields for the semantic handler.  */
   2560   FLD (f_operand2) = f_operand2;
   2561   FLD (f_indir_pc__word) = f_indir_pc__word;
   2562   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_cmpucwr", "f_operand2 0x%x", 'x', f_operand2, "f_indir_pc__word 0x%x", 'x', f_indir_pc__word, (char *) 0));
   2563 
   2564 #if WITH_PROFILE_MODEL_P
   2565   /* Record the fields for profiling.  */
   2566   if (PROFILE_MODEL_P (current_cpu))
   2567     {
   2568       FLD (in_Rd) = f_operand2;
   2569     }
   2570 #endif
   2571 #undef FLD
   2572     return idesc;
   2573   }
   2574 
   2575  extract_sfmt_move_m_b_m:
   2576   {
   2577     const IDESC *idesc = &crisv32f_insn_data[itype];
   2578     CGEN_INSN_WORD insn ATTRIBUTE_UNUSED = base_insn;
   2579 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
   2580     UINT f_operand2;
   2581     UINT f_memmode;
   2582     UINT f_operand1;
   2583 
   2584     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
   2585     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
   2586     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
   2587 
   2588   /* Record the fields for the semantic handler.  */
   2589   FLD (f_operand1) = f_operand1;
   2590   FLD (f_operand2) = f_operand2;
   2591   FLD (f_memmode) = f_memmode;
   2592   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_move_m_b_m", "f_operand1 0x%x", 'x', f_operand1, "f_operand2 0x%x", 'x', f_operand2, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
   2593 
   2594 #if WITH_PROFILE_MODEL_P
   2595   /* Record the fields for profiling.  */
   2596   if (PROFILE_MODEL_P (current_cpu))
   2597     {
   2598       FLD (in_Rs) = f_operand1;
   2599       FLD (out_Rs) = f_operand1;
   2600       FLD (out_h_gr_SI_if__SI_andif__DFLT_prefix_set_not__UINT_inc_index_of__INT_Rs_index_of__INT_Rd) = ((ANDIF (GET_H_INSN_PREFIXED_P (), (! (FLD (f_memmode))))) ? (FLD (f_operand1)) : (FLD (f_operand2)));
   2601     }
   2602 #endif
   2603 #undef FLD
   2604     return idesc;
   2605   }
   2606 
   2607  extract_sfmt_move_m_w_m:
   2608   {
   2609     const IDESC *idesc = &crisv32f_insn_data[itype];
   2610     CGEN_INSN_WORD insn ATTRIBUTE_UNUSED = base_insn;
   2611 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
   2612     UINT f_operand2;
   2613     UINT f_memmode;
   2614     UINT f_operand1;
   2615 
   2616     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
   2617     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
   2618     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
   2619 
   2620   /* Record the fields for the semantic handler.  */
   2621   FLD (f_operand1) = f_operand1;
   2622   FLD (f_operand2) = f_operand2;
   2623   FLD (f_memmode) = f_memmode;
   2624   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_move_m_w_m", "f_operand1 0x%x", 'x', f_operand1, "f_operand2 0x%x", 'x', f_operand2, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
   2625 
   2626 #if WITH_PROFILE_MODEL_P
   2627   /* Record the fields for profiling.  */
   2628   if (PROFILE_MODEL_P (current_cpu))
   2629     {
   2630       FLD (in_Rs) = f_operand1;
   2631       FLD (out_Rs) = f_operand1;
   2632       FLD (out_h_gr_SI_if__SI_andif__DFLT_prefix_set_not__UINT_inc_index_of__INT_Rs_index_of__INT_Rd) = ((ANDIF (GET_H_INSN_PREFIXED_P (), (! (FLD (f_memmode))))) ? (FLD (f_operand1)) : (FLD (f_operand2)));
   2633     }
   2634 #endif
   2635 #undef FLD
   2636     return idesc;
   2637   }
   2638 
   2639  extract_sfmt_move_m_d_m:
   2640   {
   2641     const IDESC *idesc = &crisv32f_insn_data[itype];
   2642     CGEN_INSN_WORD insn ATTRIBUTE_UNUSED = base_insn;
   2643 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
   2644     UINT f_operand2;
   2645     UINT f_memmode;
   2646     UINT f_operand1;
   2647 
   2648     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
   2649     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
   2650     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
   2651 
   2652   /* Record the fields for the semantic handler.  */
   2653   FLD (f_operand1) = f_operand1;
   2654   FLD (f_operand2) = f_operand2;
   2655   FLD (f_memmode) = f_memmode;
   2656   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_move_m_d_m", "f_operand1 0x%x", 'x', f_operand1, "f_operand2 0x%x", 'x', f_operand2, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
   2657 
   2658 #if WITH_PROFILE_MODEL_P
   2659   /* Record the fields for profiling.  */
   2660   if (PROFILE_MODEL_P (current_cpu))
   2661     {
   2662       FLD (in_Rs) = f_operand1;
   2663       FLD (out_Rs) = f_operand1;
   2664       FLD (out_h_gr_SI_if__SI_andif__DFLT_prefix_set_not__UINT_inc_index_of__INT_Rs_index_of__INT_Rd) = ((ANDIF (GET_H_INSN_PREFIXED_P (), (! (FLD (f_memmode))))) ? (FLD (f_operand1)) : (FLD (f_operand2)));
   2665     }
   2666 #endif
   2667 #undef FLD
   2668     return idesc;
   2669   }
   2670 
   2671  extract_sfmt_movs_m_b_m:
   2672   {
   2673     const IDESC *idesc = &crisv32f_insn_data[itype];
   2674     CGEN_INSN_WORD insn ATTRIBUTE_UNUSED = base_insn;
   2675 #define FLD(f) abuf->fields.sfmt_movs_m_b_m.f
   2676     UINT f_operand2;
   2677     UINT f_memmode;
   2678     UINT f_operand1;
   2679 
   2680     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
   2681     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
   2682     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
   2683 
   2684   /* Record the fields for the semantic handler.  */
   2685   FLD (f_operand1) = f_operand1;
   2686   FLD (f_memmode) = f_memmode;
   2687   FLD (f_operand2) = f_operand2;
   2688   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movs_m_b_m", "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
   2689 
   2690 #if WITH_PROFILE_MODEL_P
   2691   /* Record the fields for profiling.  */
   2692   if (PROFILE_MODEL_P (current_cpu))
   2693     {
   2694       FLD (in_Rs) = f_operand1;
   2695       FLD (out_Rd) = f_operand2;
   2696       FLD (out_Rs) = f_operand1;
   2697     }
   2698 #endif
   2699 #undef FLD
   2700     return idesc;
   2701   }
   2702 
   2703  extract_sfmt_movs_m_w_m:
   2704   {
   2705     const IDESC *idesc = &crisv32f_insn_data[itype];
   2706     CGEN_INSN_WORD insn ATTRIBUTE_UNUSED = base_insn;
   2707 #define FLD(f) abuf->fields.sfmt_movs_m_b_m.f
   2708     UINT f_operand2;
   2709     UINT f_memmode;
   2710     UINT f_operand1;
   2711 
   2712     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
   2713     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
   2714     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
   2715 
   2716   /* Record the fields for the semantic handler.  */
   2717   FLD (f_operand1) = f_operand1;
   2718   FLD (f_memmode) = f_memmode;
   2719   FLD (f_operand2) = f_operand2;
   2720   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movs_m_w_m", "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
   2721 
   2722 #if WITH_PROFILE_MODEL_P
   2723   /* Record the fields for profiling.  */
   2724   if (PROFILE_MODEL_P (current_cpu))
   2725     {
   2726       FLD (in_Rs) = f_operand1;
   2727       FLD (out_Rd) = f_operand2;
   2728       FLD (out_Rs) = f_operand1;
   2729     }
   2730 #endif
   2731 #undef FLD
   2732     return idesc;
   2733   }
   2734 
   2735  extract_sfmt_move_r_sprv32:
   2736   {
   2737     const IDESC *idesc = &crisv32f_insn_data[itype];
   2738     CGEN_INSN_WORD insn ATTRIBUTE_UNUSED = base_insn;
   2739 #define FLD(f) abuf->fields.sfmt_move_m_sprv32.f
   2740     UINT f_operand2;
   2741     UINT f_operand1;
   2742 
   2743     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
   2744     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
   2745 
   2746   /* Record the fields for the semantic handler.  */
   2747   FLD (f_operand1) = f_operand1;
   2748   FLD (f_operand2) = f_operand2;
   2749   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_move_r_sprv32", "f_operand1 0x%x", 'x', f_operand1, "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
   2750 
   2751 #if WITH_PROFILE_MODEL_P
   2752   /* Record the fields for profiling.  */
   2753   if (PROFILE_MODEL_P (current_cpu))
   2754     {
   2755       FLD (in_Rs) = f_operand1;
   2756       FLD (out_Pd) = f_operand2;
   2757     }
   2758 #endif
   2759 #undef FLD
   2760     return idesc;
   2761   }
   2762 
   2763  extract_sfmt_move_spr_rv32:
   2764   {
   2765     const IDESC *idesc = &crisv32f_insn_data[itype];
   2766     CGEN_INSN_WORD insn ATTRIBUTE_UNUSED = base_insn;
   2767 #define FLD(f) abuf->fields.sfmt_mcp.f
   2768     UINT f_operand2;
   2769     UINT f_operand1;
   2770 
   2771     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
   2772     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
   2773 
   2774   /* Record the fields for the semantic handler.  */
   2775   FLD (f_operand2) = f_operand2;
   2776   FLD (f_operand1) = f_operand1;
   2777   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_move_spr_rv32", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, (char *) 0));
   2778 
   2779 #if WITH_PROFILE_MODEL_P
   2780   /* Record the fields for profiling.  */
   2781   if (PROFILE_MODEL_P (current_cpu))
   2782     {
   2783       FLD (in_Ps) = f_operand2;
   2784       FLD (out_h_gr_SI_index_of__INT_Rs) = FLD (f_operand1);
   2785     }
   2786 #endif
   2787 #undef FLD
   2788     return idesc;
   2789   }
   2790 
   2791  extract_sfmt_move_m_sprv32:
   2792   {
   2793     const IDESC *idesc = &crisv32f_insn_data[itype];
   2794     CGEN_INSN_WORD insn ATTRIBUTE_UNUSED = base_insn;
   2795 #define FLD(f) abuf->fields.sfmt_move_m_sprv32.f
   2796     UINT f_operand2;
   2797     UINT f_memmode;
   2798     UINT f_operand1;
   2799 
   2800     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
   2801     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
   2802     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
   2803 
   2804   /* Record the fields for the semantic handler.  */
   2805   FLD (f_operand1) = f_operand1;
   2806   FLD (f_operand2) = f_operand2;
   2807   FLD (f_memmode) = f_memmode;
   2808   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_move_m_sprv32", "f_operand1 0x%x", 'x', f_operand1, "f_operand2 0x%x", 'x', f_operand2, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
   2809 
   2810 #if WITH_PROFILE_MODEL_P
   2811   /* Record the fields for profiling.  */
   2812   if (PROFILE_MODEL_P (current_cpu))
   2813     {
   2814       FLD (in_Rs) = f_operand1;
   2815       FLD (out_Pd) = f_operand2;
   2816       FLD (out_Rs) = f_operand1;
   2817     }
   2818 #endif
   2819 #undef FLD
   2820     return idesc;
   2821   }
   2822 
   2823  extract_sfmt_move_c_sprv32_p2:
   2824   {
   2825     const IDESC *idesc = &crisv32f_insn_data[itype];
   2826     CGEN_INSN_WORD insn ATTRIBUTE_UNUSED = base_insn;
   2827 #define FLD(f) abuf->fields.sfmt_move_c_sprv32_p2.f
   2828     INT f_indir_pc__dword;
   2829     UINT f_operand2;
   2830     /* Contents of trailing part of insn.  */
   2831     UINT word_1;
   2832 
   2833   word_1 = GETIMEMUSI (current_cpu, pc + 2);
   2834     f_indir_pc__dword = (0|(EXTRACT_LSB0_UINT (word_1, 32, 31, 32) << 0));
   2835     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
   2836 
   2837   /* Record the fields for the semantic handler.  */
   2838   FLD (f_indir_pc__dword) = f_indir_pc__dword;
   2839   FLD (f_operand2) = f_operand2;
   2840   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_move_c_sprv32_p2", "f_indir_pc__dword 0x%x", 'x', f_indir_pc__dword, "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
   2841 
   2842 #if WITH_PROFILE_MODEL_P
   2843   /* Record the fields for profiling.  */
   2844   if (PROFILE_MODEL_P (current_cpu))
   2845     {
   2846       FLD (out_Pd) = f_operand2;
   2847     }
   2848 #endif
   2849 #undef FLD
   2850     return idesc;
   2851   }
   2852 
   2853  extract_sfmt_move_spr_mv32:
   2854   {
   2855     const IDESC *idesc = &crisv32f_insn_data[itype];
   2856     CGEN_INSN_WORD insn ATTRIBUTE_UNUSED = base_insn;
   2857 #define FLD(f) abuf->fields.sfmt_move_spr_mv32.f
   2858     UINT f_operand2;
   2859     UINT f_memmode;
   2860     UINT f_operand1;
   2861 
   2862     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
   2863     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
   2864     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
   2865 
   2866   /* Record the fields for the semantic handler.  */
   2867   FLD (f_operand2) = f_operand2;
   2868   FLD (f_operand1) = f_operand1;
   2869   FLD (f_memmode) = f_memmode;
   2870   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_move_spr_mv32", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
   2871 
   2872 #if WITH_PROFILE_MODEL_P
   2873   /* Record the fields for profiling.  */
   2874   if (PROFILE_MODEL_P (current_cpu))
   2875     {
   2876       FLD (in_Ps) = f_operand2;
   2877       FLD (in_Rs) = f_operand1;
   2878       FLD (out_Rs) = f_operand1;
   2879     }
   2880 #endif
   2881 #undef FLD
   2882     return idesc;
   2883   }
   2884 
   2885  extract_sfmt_move_ss_r:
   2886   {
   2887     const IDESC *idesc = &crisv32f_insn_data[itype];
   2888     CGEN_INSN_WORD insn ATTRIBUTE_UNUSED = base_insn;
   2889 #define FLD(f) abuf->fields.sfmt_move_spr_mv32.f
   2890     UINT f_operand2;
   2891     UINT f_operand1;
   2892 
   2893     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
   2894     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
   2895 
   2896   /* Record the fields for the semantic handler.  */
   2897   FLD (f_operand2) = f_operand2;
   2898   FLD (f_operand1) = f_operand1;
   2899   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_move_ss_r", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, (char *) 0));
   2900 
   2901 #if WITH_PROFILE_MODEL_P
   2902   /* Record the fields for profiling.  */
   2903   if (PROFILE_MODEL_P (current_cpu))
   2904     {
   2905       FLD (out_Rs) = f_operand1;
   2906     }
   2907 #endif
   2908 #undef FLD
   2909     return idesc;
   2910   }
   2911 
   2912  extract_sfmt_move_r_ss:
   2913   {
   2914     const IDESC *idesc = &crisv32f_insn_data[itype];
   2915     CGEN_INSN_WORD insn ATTRIBUTE_UNUSED = base_insn;
   2916 #define FLD(f) abuf->fields.sfmt_mcp.f
   2917     UINT f_operand2;
   2918     UINT f_operand1;
   2919 
   2920     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
   2921     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
   2922 
   2923   /* Record the fields for the semantic handler.  */
   2924   FLD (f_operand1) = f_operand1;
   2925   FLD (f_operand2) = f_operand2;
   2926   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_move_r_ss", "f_operand1 0x%x", 'x', f_operand1, "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
   2927 
   2928 #if WITH_PROFILE_MODEL_P
   2929   /* Record the fields for profiling.  */
   2930   if (PROFILE_MODEL_P (current_cpu))
   2931     {
   2932       FLD (in_Rs) = f_operand1;
   2933     }
   2934 #endif
   2935 #undef FLD
   2936     return idesc;
   2937   }
   2938 
   2939  extract_sfmt_movem_r_m_v32:
   2940   {
   2941     const IDESC *idesc = &crisv32f_insn_data[itype];
   2942     CGEN_INSN_WORD insn ATTRIBUTE_UNUSED = base_insn;
   2943 #define FLD(f) abuf->fields.sfmt_movem_r_m_v32.f
   2944     UINT f_operand2;
   2945     UINT f_memmode;
   2946     UINT f_operand1;
   2947 
   2948     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
   2949     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
   2950     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
   2951 
   2952   /* Record the fields for the semantic handler.  */
   2953   FLD (f_operand2) = f_operand2;
   2954   FLD (f_operand1) = f_operand1;
   2955   FLD (f_memmode) = f_memmode;
   2956   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movem_r_m_v32", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
   2957 
   2958 #if WITH_PROFILE_MODEL_P
   2959   /* Record the fields for profiling.  */
   2960   if (PROFILE_MODEL_P (current_cpu))
   2961     {
   2962       FLD (in_Rd) = f_operand2;
   2963       FLD (in_Rs) = f_operand1;
   2964       FLD (in_h_gr_SI_0) = 0;
   2965       FLD (in_h_gr_SI_1) = 1;
   2966       FLD (in_h_gr_SI_10) = 10;
   2967       FLD (in_h_gr_SI_11) = 11;
   2968       FLD (in_h_gr_SI_12) = 12;
   2969       FLD (in_h_gr_SI_13) = 13;
   2970       FLD (in_h_gr_SI_14) = 14;
   2971       FLD (in_h_gr_SI_15) = 15;
   2972       FLD (in_h_gr_SI_2) = 2;
   2973       FLD (in_h_gr_SI_3) = 3;
   2974       FLD (in_h_gr_SI_4) = 4;
   2975       FLD (in_h_gr_SI_5) = 5;
   2976       FLD (in_h_gr_SI_6) = 6;
   2977       FLD (in_h_gr_SI_7) = 7;
   2978       FLD (in_h_gr_SI_8) = 8;
   2979       FLD (in_h_gr_SI_9) = 9;
   2980       FLD (out_Rs) = f_operand1;
   2981     }
   2982 #endif
   2983 #undef FLD
   2984     return idesc;
   2985   }
   2986 
   2987  extract_sfmt_movem_m_r_v32:
   2988   {
   2989     const IDESC *idesc = &crisv32f_insn_data[itype];
   2990     CGEN_INSN_WORD insn ATTRIBUTE_UNUSED = base_insn;
   2991 #define FLD(f) abuf->fields.sfmt_movem_m_r_v32.f
   2992     UINT f_operand2;
   2993     UINT f_memmode;
   2994     UINT f_operand1;
   2995 
   2996     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
   2997     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
   2998     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
   2999 
   3000   /* Record the fields for the semantic handler.  */
   3001   FLD (f_operand2) = f_operand2;
   3002   FLD (f_operand1) = f_operand1;
   3003   FLD (f_memmode) = f_memmode;
   3004   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movem_m_r_v32", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
   3005 
   3006 #if WITH_PROFILE_MODEL_P
   3007   /* Record the fields for profiling.  */
   3008   if (PROFILE_MODEL_P (current_cpu))
   3009     {
   3010       FLD (in_Rd) = f_operand2;
   3011       FLD (in_Rs) = f_operand1;
   3012       FLD (out_Rs) = f_operand1;
   3013       FLD (out_h_gr_SI_0) = 0;
   3014       FLD (out_h_gr_SI_1) = 1;
   3015       FLD (out_h_gr_SI_10) = 10;
   3016       FLD (out_h_gr_SI_11) = 11;
   3017       FLD (out_h_gr_SI_12) = 12;
   3018       FLD (out_h_gr_SI_13) = 13;
   3019       FLD (out_h_gr_SI_14) = 14;
   3020       FLD (out_h_gr_SI_15) = 15;
   3021       FLD (out_h_gr_SI_2) = 2;
   3022       FLD (out_h_gr_SI_3) = 3;
   3023       FLD (out_h_gr_SI_4) = 4;
   3024       FLD (out_h_gr_SI_5) = 5;
   3025       FLD (out_h_gr_SI_6) = 6;
   3026       FLD (out_h_gr_SI_7) = 7;
   3027       FLD (out_h_gr_SI_8) = 8;
   3028       FLD (out_h_gr_SI_9) = 9;
   3029     }
   3030 #endif
   3031 #undef FLD
   3032     return idesc;
   3033   }
   3034 
   3035  extract_sfmt_add_b_r:
   3036   {
   3037     const IDESC *idesc = &crisv32f_insn_data[itype];
   3038     CGEN_INSN_WORD insn ATTRIBUTE_UNUSED = base_insn;
   3039 #define FLD(f) abuf->fields.sfmt_addc_m.f
   3040     UINT f_operand2;
   3041     UINT f_operand1;
   3042 
   3043     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
   3044     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
   3045 
   3046   /* Record the fields for the semantic handler.  */
   3047   FLD (f_operand2) = f_operand2;
   3048   FLD (f_operand1) = f_operand1;
   3049   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_add_b_r", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, (char *) 0));
   3050 
   3051 #if WITH_PROFILE_MODEL_P
   3052   /* Record the fields for profiling.  */
   3053   if (PROFILE_MODEL_P (current_cpu))
   3054     {
   3055       FLD (in_Rd) = f_operand2;
   3056       FLD (in_Rs) = f_operand1;
   3057       FLD (out_h_gr_SI_index_of__INT_Rd) = FLD (f_operand2);
   3058     }
   3059 #endif
   3060 #undef FLD
   3061     return idesc;
   3062   }
   3063 
   3064  extract_sfmt_add_d_r:
   3065   {
   3066     const IDESC *idesc = &crisv32f_insn_data[itype];
   3067     CGEN_INSN_WORD insn ATTRIBUTE_UNUSED = base_insn;
   3068 #define FLD(f) abuf->fields.sfmt_addc_m.f
   3069     UINT f_operand2;
   3070     UINT f_operand1;
   3071 
   3072     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
   3073     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
   3074 
   3075   /* Record the fields for the semantic handler.  */
   3076   FLD (f_operand2) = f_operand2;
   3077   FLD (f_operand1) = f_operand1;
   3078   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_add_d_r", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, (char *) 0));
   3079 
   3080 #if WITH_PROFILE_MODEL_P
   3081   /* Record the fields for profiling.  */
   3082   if (PROFILE_MODEL_P (current_cpu))
   3083     {
   3084       FLD (in_Rd) = f_operand2;
   3085       FLD (in_Rs) = f_operand1;
   3086       FLD (out_h_gr_SI_index_of__INT_Rd) = FLD (f_operand2);
   3087     }
   3088 #endif
   3089 #undef FLD
   3090     return idesc;
   3091   }
   3092 
   3093  extract_sfmt_add_m_b_m:
   3094   {
   3095     const IDESC *idesc = &crisv32f_insn_data[itype];
   3096     CGEN_INSN_WORD insn ATTRIBUTE_UNUSED = base_insn;
   3097 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
   3098     UINT f_operand2;
   3099     UINT f_memmode;
   3100     UINT f_operand1;
   3101 
   3102     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
   3103     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
   3104     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
   3105 
   3106   /* Record the fields for the semantic handler.  */
   3107   FLD (f_operand2) = f_operand2;
   3108   FLD (f_operand1) = f_operand1;
   3109   FLD (f_memmode) = f_memmode;
   3110   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_add_m_b_m", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
   3111 
   3112 #if WITH_PROFILE_MODEL_P
   3113   /* Record the fields for profiling.  */
   3114   if (PROFILE_MODEL_P (current_cpu))
   3115     {
   3116       FLD (in_Rd) = f_operand2;
   3117       FLD (in_Rs) = f_operand1;
   3118       FLD (out_Rs) = f_operand1;
   3119       FLD (out_h_gr_SI_if__SI_andif__DFLT_prefix_set_not__UINT_inc_index_of__INT_Rs_index_of__INT_Rd) = ((ANDIF (GET_H_INSN_PREFIXED_P (), (! (FLD (f_memmode))))) ? (FLD (f_operand1)) : (FLD (f_operand2)));
   3120     }
   3121 #endif
   3122 #undef FLD
   3123     return idesc;
   3124   }
   3125 
   3126  extract_sfmt_add_m_w_m:
   3127   {
   3128     const IDESC *idesc = &crisv32f_insn_data[itype];
   3129     CGEN_INSN_WORD insn ATTRIBUTE_UNUSED = base_insn;
   3130 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
   3131     UINT f_operand2;
   3132     UINT f_memmode;
   3133     UINT f_operand1;
   3134 
   3135     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
   3136     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
   3137     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
   3138 
   3139   /* Record the fields for the semantic handler.  */
   3140   FLD (f_operand2) = f_operand2;
   3141   FLD (f_operand1) = f_operand1;
   3142   FLD (f_memmode) = f_memmode;
   3143   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_add_m_w_m", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
   3144 
   3145 #if WITH_PROFILE_MODEL_P
   3146   /* Record the fields for profiling.  */
   3147   if (PROFILE_MODEL_P (current_cpu))
   3148     {
   3149       FLD (in_Rd) = f_operand2;
   3150       FLD (in_Rs) = f_operand1;
   3151       FLD (out_Rs) = f_operand1;
   3152       FLD (out_h_gr_SI_if__SI_andif__DFLT_prefix_set_not__UINT_inc_index_of__INT_Rs_index_of__INT_Rd) = ((ANDIF (GET_H_INSN_PREFIXED_P (), (! (FLD (f_memmode))))) ? (FLD (f_operand1)) : (FLD (f_operand2)));
   3153     }
   3154 #endif
   3155 #undef FLD
   3156     return idesc;
   3157   }
   3158 
   3159  extract_sfmt_add_m_d_m:
   3160   {
   3161     const IDESC *idesc = &crisv32f_insn_data[itype];
   3162     CGEN_INSN_WORD insn ATTRIBUTE_UNUSED = base_insn;
   3163 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
   3164     UINT f_operand2;
   3165     UINT f_memmode;
   3166     UINT f_operand1;
   3167 
   3168     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
   3169     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
   3170     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
   3171 
   3172   /* Record the fields for the semantic handler.  */
   3173   FLD (f_operand2) = f_operand2;
   3174   FLD (f_operand1) = f_operand1;
   3175   FLD (f_memmode) = f_memmode;
   3176   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_add_m_d_m", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
   3177 
   3178 #if WITH_PROFILE_MODEL_P
   3179   /* Record the fields for profiling.  */
   3180   if (PROFILE_MODEL_P (current_cpu))
   3181     {
   3182       FLD (in_Rd) = f_operand2;
   3183       FLD (in_Rs) = f_operand1;
   3184       FLD (out_Rs) = f_operand1;
   3185       FLD (out_h_gr_SI_if__SI_andif__DFLT_prefix_set_not__UINT_inc_index_of__INT_Rs_index_of__INT_Rd) = ((ANDIF (GET_H_INSN_PREFIXED_P (), (! (FLD (f_memmode))))) ? (FLD (f_operand1)) : (FLD (f_operand2)));
   3186     }
   3187 #endif
   3188 #undef FLD
   3189     return idesc;
   3190   }
   3191 
   3192  extract_sfmt_addcbr:
   3193   {
   3194     const IDESC *idesc = &crisv32f_insn_data[itype];
   3195     CGEN_INSN_WORD insn ATTRIBUTE_UNUSED = base_insn;
   3196 #define FLD(f) abuf->fields.sfmt_addcbr.f
   3197     INT f_indir_pc__byte;
   3198     UINT f_operand2;
   3199     /* Contents of trailing part of insn.  */
   3200     UINT word_1;
   3201 
   3202   word_1 = GETIMEMUSI (current_cpu, pc + 2);
   3203     f_indir_pc__byte = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
   3204     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
   3205 
   3206   /* Record the fields for the semantic handler.  */
   3207   FLD (f_operand2) = f_operand2;
   3208   FLD (f_indir_pc__byte) = f_indir_pc__byte;
   3209   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addcbr", "f_operand2 0x%x", 'x', f_operand2, "f_indir_pc__byte 0x%x", 'x', f_indir_pc__byte, (char *) 0));
   3210 
   3211 #if WITH_PROFILE_MODEL_P
   3212   /* Record the fields for profiling.  */
   3213   if (PROFILE_MODEL_P (current_cpu))
   3214     {
   3215       FLD (in_Rd) = f_operand2;
   3216       FLD (out_h_gr_SI_index_of__INT_Rd) = FLD (f_operand2);
   3217     }
   3218 #endif
   3219 #undef FLD
   3220     return idesc;
   3221   }
   3222 
   3223  extract_sfmt_addcwr:
   3224   {
   3225     const IDESC *idesc = &crisv32f_insn_data[itype];
   3226     CGEN_INSN_WORD insn ATTRIBUTE_UNUSED = base_insn;
   3227 #define FLD(f) abuf->fields.sfmt_addcwr.f
   3228     INT f_indir_pc__word;
   3229     UINT f_operand2;
   3230     /* Contents of trailing part of insn.  */
   3231     UINT word_1;
   3232 
   3233   word_1 = GETIMEMUSI (current_cpu, pc + 2);
   3234     f_indir_pc__word = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
   3235     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
   3236 
   3237   /* Record the fields for the semantic handler.  */
   3238   FLD (f_operand2) = f_operand2;
   3239   FLD (f_indir_pc__word) = f_indir_pc__word;
   3240   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addcwr", "f_operand2 0x%x", 'x', f_operand2, "f_indir_pc__word 0x%x", 'x', f_indir_pc__word, (char *) 0));
   3241 
   3242 #if WITH_PROFILE_MODEL_P
   3243   /* Record the fields for profiling.  */
   3244   if (PROFILE_MODEL_P (current_cpu))
   3245     {
   3246       FLD (in_Rd) = f_operand2;
   3247       FLD (out_h_gr_SI_index_of__INT_Rd) = FLD (f_operand2);
   3248     }
   3249 #endif
   3250 #undef FLD
   3251     return idesc;
   3252   }
   3253 
   3254  extract_sfmt_addcdr:
   3255   {
   3256     const IDESC *idesc = &crisv32f_insn_data[itype];
   3257     CGEN_INSN_WORD insn ATTRIBUTE_UNUSED = base_insn;
   3258 #define FLD(f) abuf->fields.sfmt_addcdr.f
   3259     INT f_indir_pc__dword;
   3260     UINT f_operand2;
   3261     /* Contents of trailing part of insn.  */
   3262     UINT word_1;
   3263 
   3264   word_1 = GETIMEMUSI (current_cpu, pc + 2);
   3265     f_indir_pc__dword = (0|(EXTRACT_LSB0_UINT (word_1, 32, 31, 32) << 0));
   3266     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
   3267 
   3268   /* Record the fields for the semantic handler.  */
   3269   FLD (f_operand2) = f_operand2;
   3270   FLD (f_indir_pc__dword) = f_indir_pc__dword;
   3271   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addcdr", "f_operand2 0x%x", 'x', f_operand2, "f_indir_pc__dword 0x%x", 'x', f_indir_pc__dword, (char *) 0));
   3272 
   3273 #if WITH_PROFILE_MODEL_P
   3274   /* Record the fields for profiling.  */
   3275   if (PROFILE_MODEL_P (current_cpu))
   3276     {
   3277       FLD (in_Rd) = f_operand2;
   3278       FLD (out_h_gr_SI_index_of__INT_Rd) = FLD (f_operand2);
   3279     }
   3280 #endif
   3281 #undef FLD
   3282     return idesc;
   3283   }
   3284 
   3285  extract_sfmt_adds_m_b_m:
   3286   {
   3287     const IDESC *idesc = &crisv32f_insn_data[itype];
   3288     CGEN_INSN_WORD insn ATTRIBUTE_UNUSED = base_insn;
   3289 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
   3290     UINT f_operand2;
   3291     UINT f_memmode;
   3292     UINT f_operand1;
   3293 
   3294     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
   3295     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
   3296     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
   3297 
   3298   /* Record the fields for the semantic handler.  */
   3299   FLD (f_operand2) = f_operand2;
   3300   FLD (f_operand1) = f_operand1;
   3301   FLD (f_memmode) = f_memmode;
   3302   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_adds_m_b_m", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
   3303 
   3304 #if WITH_PROFILE_MODEL_P
   3305   /* Record the fields for profiling.  */
   3306   if (PROFILE_MODEL_P (current_cpu))
   3307     {
   3308       FLD (in_Rd) = f_operand2;
   3309       FLD (in_Rs) = f_operand1;
   3310       FLD (out_Rs) = f_operand1;
   3311       FLD (out_h_gr_SI_if__SI_andif__DFLT_prefix_set_not__UINT_inc_index_of__INT_Rs_index_of__INT_Rd) = ((ANDIF (GET_H_INSN_PREFIXED_P (), (! (FLD (f_memmode))))) ? (FLD (f_operand1)) : (FLD (f_operand2)));
   3312     }
   3313 #endif
   3314 #undef FLD
   3315     return idesc;
   3316   }
   3317 
   3318  extract_sfmt_adds_m_w_m:
   3319   {
   3320     const IDESC *idesc = &crisv32f_insn_data[itype];
   3321     CGEN_INSN_WORD insn ATTRIBUTE_UNUSED = base_insn;
   3322 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
   3323     UINT f_operand2;
   3324     UINT f_memmode;
   3325     UINT f_operand1;
   3326 
   3327     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
   3328     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
   3329     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
   3330 
   3331   /* Record the fields for the semantic handler.  */
   3332   FLD (f_operand2) = f_operand2;
   3333   FLD (f_operand1) = f_operand1;
   3334   FLD (f_memmode) = f_memmode;
   3335   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_adds_m_w_m", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
   3336 
   3337 #if WITH_PROFILE_MODEL_P
   3338   /* Record the fields for profiling.  */
   3339   if (PROFILE_MODEL_P (current_cpu))
   3340     {
   3341       FLD (in_Rd) = f_operand2;
   3342       FLD (in_Rs) = f_operand1;
   3343       FLD (out_Rs) = f_operand1;
   3344       FLD (out_h_gr_SI_if__SI_andif__DFLT_prefix_set_not__UINT_inc_index_of__INT_Rs_index_of__INT_Rd) = ((ANDIF (GET_H_INSN_PREFIXED_P (), (! (FLD (f_memmode))))) ? (FLD (f_operand1)) : (FLD (f_operand2)));
   3345     }
   3346 #endif
   3347 #undef FLD
   3348     return idesc;
   3349   }
   3350 
   3351  extract_sfmt_addscbr:
   3352   {
   3353     const IDESC *idesc = &crisv32f_insn_data[itype];
   3354     CGEN_INSN_WORD insn ATTRIBUTE_UNUSED = base_insn;
   3355 #define FLD(f) abuf->fields.sfmt_addcbr.f
   3356     INT f_indir_pc__byte;
   3357     UINT f_operand2;
   3358     /* Contents of trailing part of insn.  */
   3359     UINT word_1;
   3360 
   3361   word_1 = GETIMEMUSI (current_cpu, pc + 2);
   3362     f_indir_pc__byte = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
   3363     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
   3364 
   3365   /* Record the fields for the semantic handler.  */
   3366   FLD (f_operand2) = f_operand2;
   3367   FLD (f_indir_pc__byte) = f_indir_pc__byte;
   3368   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addscbr", "f_operand2 0x%x", 'x', f_operand2, "f_indir_pc__byte 0x%x", 'x', f_indir_pc__byte, (char *) 0));
   3369 
   3370 #if WITH_PROFILE_MODEL_P
   3371   /* Record the fields for profiling.  */
   3372   if (PROFILE_MODEL_P (current_cpu))
   3373     {
   3374       FLD (in_Rd) = f_operand2;
   3375       FLD (out_h_gr_SI_index_of__INT_Rd) = FLD (f_operand2);
   3376     }
   3377 #endif
   3378 #undef FLD
   3379     return idesc;
   3380   }
   3381 
   3382  extract_sfmt_addscwr:
   3383   {
   3384     const IDESC *idesc = &crisv32f_insn_data[itype];
   3385     CGEN_INSN_WORD insn ATTRIBUTE_UNUSED = base_insn;
   3386 #define FLD(f) abuf->fields.sfmt_addcwr.f
   3387     INT f_indir_pc__word;
   3388     UINT f_operand2;
   3389     /* Contents of trailing part of insn.  */
   3390     UINT word_1;
   3391 
   3392   word_1 = GETIMEMUSI (current_cpu, pc + 2);
   3393     f_indir_pc__word = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
   3394     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
   3395 
   3396   /* Record the fields for the semantic handler.  */
   3397   FLD (f_operand2) = f_operand2;
   3398   FLD (f_indir_pc__word) = f_indir_pc__word;
   3399   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addscwr", "f_operand2 0x%x", 'x', f_operand2, "f_indir_pc__word 0x%x", 'x', f_indir_pc__word, (char *) 0));
   3400 
   3401 #if WITH_PROFILE_MODEL_P
   3402   /* Record the fields for profiling.  */
   3403   if (PROFILE_MODEL_P (current_cpu))
   3404     {
   3405       FLD (in_Rd) = f_operand2;
   3406       FLD (out_h_gr_SI_index_of__INT_Rd) = FLD (f_operand2);
   3407     }
   3408 #endif
   3409 #undef FLD
   3410     return idesc;
   3411   }
   3412 
   3413  extract_sfmt_addc_m:
   3414   {
   3415     const IDESC *idesc = &crisv32f_insn_data[itype];
   3416     CGEN_INSN_WORD insn ATTRIBUTE_UNUSED = base_insn;
   3417 #define FLD(f) abuf->fields.sfmt_addc_m.f
   3418     UINT f_operand2;
   3419     UINT f_memmode;
   3420     UINT f_operand1;
   3421 
   3422     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
   3423     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
   3424     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
   3425 
   3426   /* Record the fields for the semantic handler.  */
   3427   FLD (f_operand2) = f_operand2;
   3428   FLD (f_operand1) = f_operand1;
   3429   FLD (f_memmode) = f_memmode;
   3430   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addc_m", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
   3431 
   3432 #if WITH_PROFILE_MODEL_P
   3433   /* Record the fields for profiling.  */
   3434   if (PROFILE_MODEL_P (current_cpu))
   3435     {
   3436       FLD (in_Rd) = f_operand2;
   3437       FLD (in_Rs) = f_operand1;
   3438       FLD (out_Rs) = f_operand1;
   3439       FLD (out_h_gr_SI_index_of__INT_Rd) = FLD (f_operand2);
   3440     }
   3441 #endif
   3442 #undef FLD
   3443     return idesc;
   3444   }
   3445 
   3446  extract_sfmt_lapc_d:
   3447   {
   3448     const IDESC *idesc = &crisv32f_insn_data[itype];
   3449     CGEN_INSN_WORD insn ATTRIBUTE_UNUSED = base_insn;
   3450 #define FLD(f) abuf->fields.sfmt_lapc_d.f
   3451     SI f_indir_pc__dword_pcrel;
   3452     UINT f_operand2;
   3453     /* Contents of trailing part of insn.  */
   3454     UINT word_1;
   3455 
   3456   word_1 = GETIMEMUSI (current_cpu, pc + 2);
   3457     f_indir_pc__dword_pcrel = ((pc) + ((0|(EXTRACT_LSB0_UINT (word_1, 32, 31, 32) << 0))));
   3458     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
   3459 
   3460   /* Record the fields for the semantic handler.  */
   3461   FLD (f_operand2) = f_operand2;
   3462   FLD (i_const32_pcrel) = f_indir_pc__dword_pcrel;
   3463   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_lapc_d", "f_operand2 0x%x", 'x', f_operand2, "const32_pcrel 0x%x", 'x', f_indir_pc__dword_pcrel, (char *) 0));
   3464 
   3465 #if WITH_PROFILE_MODEL_P
   3466   /* Record the fields for profiling.  */
   3467   if (PROFILE_MODEL_P (current_cpu))
   3468     {
   3469       FLD (out_Rd) = f_operand2;
   3470     }
   3471 #endif
   3472 #undef FLD
   3473     return idesc;
   3474   }
   3475 
   3476  extract_sfmt_lapcq:
   3477   {
   3478     const IDESC *idesc = &crisv32f_insn_data[itype];
   3479     CGEN_INSN_WORD insn ATTRIBUTE_UNUSED = base_insn;
   3480 #define FLD(f) abuf->fields.sfmt_lapcq.f
   3481     UINT f_operand2;
   3482     SI f_qo;
   3483 
   3484     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
   3485     f_qo = ((pc) + (((EXTRACT_LSB0_UINT (insn, 16, 3, 4)) << (1))));
   3486 
   3487   /* Record the fields for the semantic handler.  */
   3488   FLD (f_operand2) = f_operand2;
   3489   FLD (i_qo) = f_qo;
   3490   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_lapcq", "f_operand2 0x%x", 'x', f_operand2, "qo 0x%x", 'x', f_qo, (char *) 0));
   3491 
   3492 #if WITH_PROFILE_MODEL_P
   3493   /* Record the fields for profiling.  */
   3494   if (PROFILE_MODEL_P (current_cpu))
   3495     {
   3496       FLD (out_Rd) = f_operand2;
   3497     }
   3498 #endif
   3499 #undef FLD
   3500     return idesc;
   3501   }
   3502 
   3503  extract_sfmt_addi_b_r:
   3504   {
   3505     const IDESC *idesc = &crisv32f_insn_data[itype];
   3506     CGEN_INSN_WORD insn ATTRIBUTE_UNUSED = base_insn;
   3507 #define FLD(f) abuf->fields.sfmt_addc_m.f
   3508     UINT f_operand2;
   3509     UINT f_operand1;
   3510 
   3511     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
   3512     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
   3513 
   3514   /* Record the fields for the semantic handler.  */
   3515   FLD (f_operand2) = f_operand2;
   3516   FLD (f_operand1) = f_operand1;
   3517   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addi_b_r", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, (char *) 0));
   3518 
   3519 #if WITH_PROFILE_MODEL_P
   3520   /* Record the fields for profiling.  */
   3521   if (PROFILE_MODEL_P (current_cpu))
   3522     {
   3523       FLD (in_Rd) = f_operand2;
   3524       FLD (in_Rs) = f_operand1;
   3525       FLD (out_Rs) = f_operand1;
   3526     }
   3527 #endif
   3528 #undef FLD
   3529     return idesc;
   3530   }
   3531 
   3532  extract_sfmt_neg_b_r:
   3533   {
   3534     const IDESC *idesc = &crisv32f_insn_data[itype];
   3535     CGEN_INSN_WORD insn ATTRIBUTE_UNUSED = base_insn;
   3536 #define FLD(f) abuf->fields.sfmt_addc_m.f
   3537     UINT f_operand2;
   3538     UINT f_operand1;
   3539 
   3540     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
   3541     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
   3542 
   3543   /* Record the fields for the semantic handler.  */
   3544   FLD (f_operand1) = f_operand1;
   3545   FLD (f_operand2) = f_operand2;
   3546   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_neg_b_r", "f_operand1 0x%x", 'x', f_operand1, "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
   3547 
   3548 #if WITH_PROFILE_MODEL_P
   3549   /* Record the fields for profiling.  */
   3550   if (PROFILE_MODEL_P (current_cpu))
   3551     {
   3552       FLD (in_Rs) = f_operand1;
   3553       FLD (out_h_gr_SI_index_of__INT_Rd) = FLD (f_operand2);
   3554     }
   3555 #endif
   3556 #undef FLD
   3557     return idesc;
   3558   }
   3559 
   3560  extract_sfmt_neg_d_r:
   3561   {
   3562     const IDESC *idesc = &crisv32f_insn_data[itype];
   3563     CGEN_INSN_WORD insn ATTRIBUTE_UNUSED = base_insn;
   3564 #define FLD(f) abuf->fields.sfmt_addc_m.f
   3565     UINT f_operand2;
   3566     UINT f_operand1;
   3567 
   3568     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
   3569     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
   3570 
   3571   /* Record the fields for the semantic handler.  */
   3572   FLD (f_operand1) = f_operand1;
   3573   FLD (f_operand2) = f_operand2;
   3574   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_neg_d_r", "f_operand1 0x%x", 'x', f_operand1, "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
   3575 
   3576 #if WITH_PROFILE_MODEL_P
   3577   /* Record the fields for profiling.  */
   3578   if (PROFILE_MODEL_P (current_cpu))
   3579     {
   3580       FLD (in_Rs) = f_operand1;
   3581       FLD (out_h_gr_SI_index_of__INT_Rd) = FLD (f_operand2);
   3582     }
   3583 #endif
   3584 #undef FLD
   3585     return idesc;
   3586   }
   3587 
   3588  extract_sfmt_test_m_b_m:
   3589   {
   3590     const IDESC *idesc = &crisv32f_insn_data[itype];
   3591     CGEN_INSN_WORD insn ATTRIBUTE_UNUSED = base_insn;
   3592 #define FLD(f) abuf->fields.sfmt_move_spr_mv32.f
   3593     UINT f_memmode;
   3594     UINT f_operand1;
   3595 
   3596     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
   3597     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
   3598 
   3599   /* Record the fields for the semantic handler.  */
   3600   FLD (f_operand1) = f_operand1;
   3601   FLD (f_memmode) = f_memmode;
   3602   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_test_m_b_m", "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
   3603 
   3604 #if WITH_PROFILE_MODEL_P
   3605   /* Record the fields for profiling.  */
   3606   if (PROFILE_MODEL_P (current_cpu))
   3607     {
   3608       FLD (in_Rs) = f_operand1;
   3609       FLD (out_Rs) = f_operand1;
   3610     }
   3611 #endif
   3612 #undef FLD
   3613     return idesc;
   3614   }
   3615 
   3616  extract_sfmt_test_m_w_m:
   3617   {
   3618     const IDESC *idesc = &crisv32f_insn_data[itype];
   3619     CGEN_INSN_WORD insn ATTRIBUTE_UNUSED = base_insn;
   3620 #define FLD(f) abuf->fields.sfmt_move_spr_mv32.f
   3621     UINT f_memmode;
   3622     UINT f_operand1;
   3623 
   3624     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
   3625     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
   3626 
   3627   /* Record the fields for the semantic handler.  */
   3628   FLD (f_operand1) = f_operand1;
   3629   FLD (f_memmode) = f_memmode;
   3630   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_test_m_w_m", "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
   3631 
   3632 #if WITH_PROFILE_MODEL_P
   3633   /* Record the fields for profiling.  */
   3634   if (PROFILE_MODEL_P (current_cpu))
   3635     {
   3636       FLD (in_Rs) = f_operand1;
   3637       FLD (out_Rs) = f_operand1;
   3638     }
   3639 #endif
   3640 #undef FLD
   3641     return idesc;
   3642   }
   3643 
   3644  extract_sfmt_test_m_d_m:
   3645   {
   3646     const IDESC *idesc = &crisv32f_insn_data[itype];
   3647     CGEN_INSN_WORD insn ATTRIBUTE_UNUSED = base_insn;
   3648 #define FLD(f) abuf->fields.sfmt_move_spr_mv32.f
   3649     UINT f_memmode;
   3650     UINT f_operand1;
   3651 
   3652     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
   3653     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
   3654 
   3655   /* Record the fields for the semantic handler.  */
   3656   FLD (f_operand1) = f_operand1;
   3657   FLD (f_memmode) = f_memmode;
   3658   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_test_m_d_m", "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
   3659 
   3660 #if WITH_PROFILE_MODEL_P
   3661   /* Record the fields for profiling.  */
   3662   if (PROFILE_MODEL_P (current_cpu))
   3663     {
   3664       FLD (in_Rs) = f_operand1;
   3665       FLD (out_Rs) = f_operand1;
   3666     }
   3667 #endif
   3668 #undef FLD
   3669     return idesc;
   3670   }
   3671 
   3672  extract_sfmt_move_r_m_b_m:
   3673   {
   3674     const IDESC *idesc = &crisv32f_insn_data[itype];
   3675     CGEN_INSN_WORD insn ATTRIBUTE_UNUSED = base_insn;
   3676 #define FLD(f) abuf->fields.sfmt_addc_m.f
   3677     UINT f_operand2;
   3678     UINT f_memmode;
   3679     UINT f_operand1;
   3680 
   3681     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
   3682     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
   3683     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
   3684 
   3685   /* Record the fields for the semantic handler.  */
   3686   FLD (f_operand2) = f_operand2;
   3687   FLD (f_operand1) = f_operand1;
   3688   FLD (f_memmode) = f_memmode;
   3689   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_move_r_m_b_m", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
   3690 
   3691 #if WITH_PROFILE_MODEL_P
   3692   /* Record the fields for profiling.  */
   3693   if (PROFILE_MODEL_P (current_cpu))
   3694     {
   3695       FLD (in_Rd) = f_operand2;
   3696       FLD (in_Rs) = f_operand1;
   3697       FLD (out_Rs) = f_operand1;
   3698     }
   3699 #endif
   3700 #undef FLD
   3701     return idesc;
   3702   }
   3703 
   3704  extract_sfmt_move_r_m_w_m:
   3705   {
   3706     const IDESC *idesc = &crisv32f_insn_data[itype];
   3707     CGEN_INSN_WORD insn ATTRIBUTE_UNUSED = base_insn;
   3708 #define FLD(f) abuf->fields.sfmt_addc_m.f
   3709     UINT f_operand2;
   3710     UINT f_memmode;
   3711     UINT f_operand1;
   3712 
   3713     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
   3714     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
   3715     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
   3716 
   3717   /* Record the fields for the semantic handler.  */
   3718   FLD (f_operand2) = f_operand2;
   3719   FLD (f_operand1) = f_operand1;
   3720   FLD (f_memmode) = f_memmode;
   3721   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_move_r_m_w_m", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
   3722 
   3723 #if WITH_PROFILE_MODEL_P
   3724   /* Record the fields for profiling.  */
   3725   if (PROFILE_MODEL_P (current_cpu))
   3726     {
   3727       FLD (in_Rd) = f_operand2;
   3728       FLD (in_Rs) = f_operand1;
   3729       FLD (out_Rs) = f_operand1;
   3730     }
   3731 #endif
   3732 #undef FLD
   3733     return idesc;
   3734   }
   3735 
   3736  extract_sfmt_move_r_m_d_m:
   3737   {
   3738     const IDESC *idesc = &crisv32f_insn_data[itype];
   3739     CGEN_INSN_WORD insn ATTRIBUTE_UNUSED = base_insn;
   3740 #define FLD(f) abuf->fields.sfmt_addc_m.f
   3741     UINT f_operand2;
   3742     UINT f_memmode;
   3743     UINT f_operand1;
   3744 
   3745     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
   3746     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
   3747     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
   3748 
   3749   /* Record the fields for the semantic handler.  */
   3750   FLD (f_operand2) = f_operand2;
   3751   FLD (f_operand1) = f_operand1;
   3752   FLD (f_memmode) = f_memmode;
   3753   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_move_r_m_d_m", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
   3754 
   3755 #if WITH_PROFILE_MODEL_P
   3756   /* Record the fields for profiling.  */
   3757   if (PROFILE_MODEL_P (current_cpu))
   3758     {
   3759       FLD (in_Rd) = f_operand2;
   3760       FLD (in_Rs) = f_operand1;
   3761       FLD (out_Rs) = f_operand1;
   3762     }
   3763 #endif
   3764 #undef FLD
   3765     return idesc;
   3766   }
   3767 
   3768  extract_sfmt_muls_b:
   3769   {
   3770     const IDESC *idesc = &crisv32f_insn_data[itype];
   3771     CGEN_INSN_WORD insn ATTRIBUTE_UNUSED = base_insn;
   3772 #define FLD(f) abuf->fields.sfmt_muls_b.f
   3773     UINT f_operand2;
   3774     UINT f_operand1;
   3775 
   3776     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
   3777     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
   3778 
   3779   /* Record the fields for the semantic handler.  */
   3780   FLD (f_operand2) = f_operand2;
   3781   FLD (f_operand1) = f_operand1;
   3782   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_muls_b", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, (char *) 0));
   3783 
   3784 #if WITH_PROFILE_MODEL_P
   3785   /* Record the fields for profiling.  */
   3786   if (PROFILE_MODEL_P (current_cpu))
   3787     {
   3788       FLD (in_Rd) = f_operand2;
   3789       FLD (in_Rs) = f_operand1;
   3790       FLD (out_Rd) = f_operand2;
   3791       FLD (out_h_sr_SI_7) = 7;
   3792     }
   3793 #endif
   3794 #undef FLD
   3795     return idesc;
   3796   }
   3797 
   3798  extract_sfmt_mcp:
   3799   {
   3800     const IDESC *idesc = &crisv32f_insn_data[itype];
   3801     CGEN_INSN_WORD insn ATTRIBUTE_UNUSED = base_insn;
   3802 #define FLD(f) abuf->fields.sfmt_mcp.f
   3803     UINT f_operand2;
   3804     UINT f_operand1;
   3805 
   3806     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
   3807     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
   3808 
   3809   /* Record the fields for the semantic handler.  */
   3810   FLD (f_operand2) = f_operand2;
   3811   FLD (f_operand1) = f_operand1;
   3812   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_mcp", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, (char *) 0));
   3813 
   3814 #if WITH_PROFILE_MODEL_P
   3815   /* Record the fields for profiling.  */
   3816   if (PROFILE_MODEL_P (current_cpu))
   3817     {
   3818       FLD (in_Ps) = f_operand2;
   3819       FLD (in_Rs) = f_operand1;
   3820       FLD (out_h_gr_SI_index_of__INT_Rs) = FLD (f_operand1);
   3821     }
   3822 #endif
   3823 #undef FLD
   3824     return idesc;
   3825   }
   3826 
   3827  extract_sfmt_dstep:
   3828   {
   3829     const IDESC *idesc = &crisv32f_insn_data[itype];
   3830     CGEN_INSN_WORD insn ATTRIBUTE_UNUSED = base_insn;
   3831 #define FLD(f) abuf->fields.sfmt_muls_b.f
   3832     UINT f_operand2;
   3833     UINT f_operand1;
   3834 
   3835     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
   3836     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
   3837 
   3838   /* Record the fields for the semantic handler.  */
   3839   FLD (f_operand2) = f_operand2;
   3840   FLD (f_operand1) = f_operand1;
   3841   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_dstep", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, (char *) 0));
   3842 
   3843 #if WITH_PROFILE_MODEL_P
   3844   /* Record the fields for profiling.  */
   3845   if (PROFILE_MODEL_P (current_cpu))
   3846     {
   3847       FLD (in_Rd) = f_operand2;
   3848       FLD (in_Rs) = f_operand1;
   3849       FLD (out_Rd) = f_operand2;
   3850     }
   3851 #endif
   3852 #undef FLD
   3853     return idesc;
   3854   }
   3855 
   3856  extract_sfmt_and_b_r:
   3857   {
   3858     const IDESC *idesc = &crisv32f_insn_data[itype];
   3859     CGEN_INSN_WORD insn ATTRIBUTE_UNUSED = base_insn;
   3860 #define FLD(f) abuf->fields.sfmt_addc_m.f
   3861     UINT f_operand2;
   3862     UINT f_operand1;
   3863 
   3864     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
   3865     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
   3866 
   3867   /* Record the fields for the semantic handler.  */
   3868   FLD (f_operand2) = f_operand2;
   3869   FLD (f_operand1) = f_operand1;
   3870   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_and_b_r", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, (char *) 0));
   3871 
   3872 #if WITH_PROFILE_MODEL_P
   3873   /* Record the fields for profiling.  */
   3874   if (PROFILE_MODEL_P (current_cpu))
   3875     {
   3876       FLD (in_Rd) = f_operand2;
   3877       FLD (in_Rs) = f_operand1;
   3878       FLD (out_h_gr_SI_index_of__INT_Rd) = FLD (f_operand2);
   3879     }
   3880 #endif
   3881 #undef FLD
   3882     return idesc;
   3883   }
   3884 
   3885  extract_sfmt_and_d_r:
   3886   {
   3887     const IDESC *idesc = &crisv32f_insn_data[itype];
   3888     CGEN_INSN_WORD insn ATTRIBUTE_UNUSED = base_insn;
   3889 #define FLD(f) abuf->fields.sfmt_addc_m.f
   3890     UINT f_operand2;
   3891     UINT f_operand1;
   3892 
   3893     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
   3894     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
   3895 
   3896   /* Record the fields for the semantic handler.  */
   3897   FLD (f_operand2) = f_operand2;
   3898   FLD (f_operand1) = f_operand1;
   3899   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_and_d_r", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, (char *) 0));
   3900 
   3901 #if WITH_PROFILE_MODEL_P
   3902   /* Record the fields for profiling.  */
   3903   if (PROFILE_MODEL_P (current_cpu))
   3904     {
   3905       FLD (in_Rd) = f_operand2;
   3906       FLD (in_Rs) = f_operand1;
   3907       FLD (out_h_gr_SI_index_of__INT_Rd) = FLD (f_operand2);
   3908     }
   3909 #endif
   3910 #undef FLD
   3911     return idesc;
   3912   }
   3913 
   3914  extract_sfmt_and_m_b_m:
   3915   {
   3916     const IDESC *idesc = &crisv32f_insn_data[itype];
   3917     CGEN_INSN_WORD insn ATTRIBUTE_UNUSED = base_insn;
   3918 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
   3919     UINT f_operand2;
   3920     UINT f_memmode;
   3921     UINT f_operand1;
   3922 
   3923     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
   3924     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
   3925     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
   3926 
   3927   /* Record the fields for the semantic handler.  */
   3928   FLD (f_operand2) = f_operand2;
   3929   FLD (f_operand1) = f_operand1;
   3930   FLD (f_memmode) = f_memmode;
   3931   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_and_m_b_m", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
   3932 
   3933 #if WITH_PROFILE_MODEL_P
   3934   /* Record the fields for profiling.  */
   3935   if (PROFILE_MODEL_P (current_cpu))
   3936     {
   3937       FLD (in_Rd) = f_operand2;
   3938       FLD (in_Rs) = f_operand1;
   3939       FLD (out_Rs) = f_operand1;
   3940       FLD (out_h_gr_SI_if__SI_andif__DFLT_prefix_set_not__UINT_inc_index_of__INT_Rs_index_of__INT_Rd) = ((ANDIF (GET_H_INSN_PREFIXED_P (), (! (FLD (f_memmode))))) ? (FLD (f_operand1)) : (FLD (f_operand2)));
   3941     }
   3942 #endif
   3943 #undef FLD
   3944     return idesc;
   3945   }
   3946 
   3947  extract_sfmt_and_m_w_m:
   3948   {
   3949     const IDESC *idesc = &crisv32f_insn_data[itype];
   3950     CGEN_INSN_WORD insn ATTRIBUTE_UNUSED = base_insn;
   3951 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
   3952     UINT f_operand2;
   3953     UINT f_memmode;
   3954     UINT f_operand1;
   3955 
   3956     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
   3957     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
   3958     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
   3959 
   3960   /* Record the fields for the semantic handler.  */
   3961   FLD (f_operand2) = f_operand2;
   3962   FLD (f_operand1) = f_operand1;
   3963   FLD (f_memmode) = f_memmode;
   3964   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_and_m_w_m", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
   3965 
   3966 #if WITH_PROFILE_MODEL_P
   3967   /* Record the fields for profiling.  */
   3968   if (PROFILE_MODEL_P (current_cpu))
   3969     {
   3970       FLD (in_Rd) = f_operand2;
   3971       FLD (in_Rs) = f_operand1;
   3972       FLD (out_Rs) = f_operand1;
   3973       FLD (out_h_gr_SI_if__SI_andif__DFLT_prefix_set_not__UINT_inc_index_of__INT_Rs_index_of__INT_Rd) = ((ANDIF (GET_H_INSN_PREFIXED_P (), (! (FLD (f_memmode))))) ? (FLD (f_operand1)) : (FLD (f_operand2)));
   3974     }
   3975 #endif
   3976 #undef FLD
   3977     return idesc;
   3978   }
   3979 
   3980  extract_sfmt_and_m_d_m:
   3981   {
   3982     const IDESC *idesc = &crisv32f_insn_data[itype];
   3983     CGEN_INSN_WORD insn ATTRIBUTE_UNUSED = base_insn;
   3984 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f
   3985     UINT f_operand2;
   3986     UINT f_memmode;
   3987     UINT f_operand1;
   3988 
   3989     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
   3990     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
   3991     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
   3992 
   3993   /* Record the fields for the semantic handler.  */
   3994   FLD (f_operand2) = f_operand2;
   3995   FLD (f_operand1) = f_operand1;
   3996   FLD (f_memmode) = f_memmode;
   3997   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_and_m_d_m", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
   3998 
   3999 #if WITH_PROFILE_MODEL_P
   4000   /* Record the fields for profiling.  */
   4001   if (PROFILE_MODEL_P (current_cpu))
   4002     {
   4003       FLD (in_Rd) = f_operand2;
   4004       FLD (in_Rs) = f_operand1;
   4005       FLD (out_Rs) = f_operand1;
   4006       FLD (out_h_gr_SI_if__SI_andif__DFLT_prefix_set_not__UINT_inc_index_of__INT_Rs_index_of__INT_Rd) = ((ANDIF (GET_H_INSN_PREFIXED_P (), (! (FLD (f_memmode))))) ? (FLD (f_operand1)) : (FLD (f_operand2)));
   4007     }
   4008 #endif
   4009 #undef FLD
   4010     return idesc;
   4011   }
   4012 
   4013  extract_sfmt_andcbr:
   4014   {
   4015     const IDESC *idesc = &crisv32f_insn_data[itype];
   4016     CGEN_INSN_WORD insn ATTRIBUTE_UNUSED = base_insn;
   4017 #define FLD(f) abuf->fields.sfmt_addcbr.f
   4018     INT f_indir_pc__byte;
   4019     UINT f_operand2;
   4020     /* Contents of trailing part of insn.  */
   4021     UINT word_1;
   4022 
   4023   word_1 = GETIMEMUSI (current_cpu, pc + 2);
   4024     f_indir_pc__byte = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
   4025     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
   4026 
   4027   /* Record the fields for the semantic handler.  */
   4028   FLD (f_operand2) = f_operand2;
   4029   FLD (f_indir_pc__byte) = f_indir_pc__byte;
   4030   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_andcbr", "f_operand2 0x%x", 'x', f_operand2, "f_indir_pc__byte 0x%x", 'x', f_indir_pc__byte, (char *) 0));
   4031 
   4032 #if WITH_PROFILE_MODEL_P
   4033   /* Record the fields for profiling.  */
   4034   if (PROFILE_MODEL_P (current_cpu))
   4035     {
   4036       FLD (in_Rd) = f_operand2;
   4037       FLD (out_h_gr_SI_index_of__INT_Rd) = FLD (f_operand2);
   4038     }
   4039 #endif
   4040 #undef FLD
   4041     return idesc;
   4042   }
   4043 
   4044  extract_sfmt_andcwr:
   4045   {
   4046     const IDESC *idesc = &crisv32f_insn_data[itype];
   4047     CGEN_INSN_WORD insn ATTRIBUTE_UNUSED = base_insn;
   4048 #define FLD(f) abuf->fields.sfmt_addcwr.f
   4049     INT f_indir_pc__word;
   4050     UINT f_operand2;
   4051     /* Contents of trailing part of insn.  */
   4052     UINT word_1;
   4053 
   4054   word_1 = GETIMEMUSI (current_cpu, pc + 2);
   4055     f_indir_pc__word = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
   4056     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
   4057 
   4058   /* Record the fields for the semantic handler.  */
   4059   FLD (f_operand2) = f_operand2;
   4060   FLD (f_indir_pc__word) = f_indir_pc__word;
   4061   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_andcwr", "f_operand2 0x%x", 'x', f_operand2, "f_indir_pc__word 0x%x", 'x', f_indir_pc__word, (char *) 0));
   4062 
   4063 #if WITH_PROFILE_MODEL_P
   4064   /* Record the fields for profiling.  */
   4065   if (PROFILE_MODEL_P (current_cpu))
   4066     {
   4067       FLD (in_Rd) = f_operand2;
   4068       FLD (out_h_gr_SI_index_of__INT_Rd) = FLD (f_operand2);
   4069     }
   4070 #endif
   4071 #undef FLD
   4072     return idesc;
   4073   }
   4074 
   4075  extract_sfmt_andcdr:
   4076   {
   4077     const IDESC *idesc = &crisv32f_insn_data[itype];
   4078     CGEN_INSN_WORD insn ATTRIBUTE_UNUSED = base_insn;
   4079 #define FLD(f) abuf->fields.sfmt_addcdr.f
   4080     INT f_indir_pc__dword;
   4081     UINT f_operand2;
   4082     /* Contents of trailing part of insn.  */
   4083     UINT word_1;
   4084 
   4085   word_1 = GETIMEMUSI (current_cpu, pc + 2);
   4086     f_indir_pc__dword = (0|(EXTRACT_LSB0_UINT (word_1, 32, 31, 32) << 0));
   4087     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
   4088 
   4089   /* Record the fields for the semantic handler.  */
   4090   FLD (f_operand2) = f_operand2;
   4091   FLD (f_indir_pc__dword) = f_indir_pc__dword;
   4092   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_andcdr", "f_operand2 0x%x", 'x', f_operand2, "f_indir_pc__dword 0x%x", 'x', f_indir_pc__dword, (char *) 0));
   4093 
   4094 #if WITH_PROFILE_MODEL_P
   4095   /* Record the fields for profiling.  */
   4096   if (PROFILE_MODEL_P (current_cpu))
   4097     {
   4098       FLD (in_Rd) = f_operand2;
   4099       FLD (out_h_gr_SI_index_of__INT_Rd) = FLD (f_operand2);
   4100     }
   4101 #endif
   4102 #undef FLD
   4103     return idesc;
   4104   }
   4105 
   4106  extract_sfmt_andq:
   4107   {
   4108     const IDESC *idesc = &crisv32f_insn_data[itype];
   4109     CGEN_INSN_WORD insn ATTRIBUTE_UNUSED = base_insn;
   4110 #define FLD(f) abuf->fields.sfmt_andq.f
   4111     UINT f_operand2;
   4112     INT f_s6;
   4113 
   4114     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
   4115     f_s6 = EXTRACT_LSB0_SINT (insn, 16, 5, 6);
   4116 
   4117   /* Record the fields for the semantic handler.  */
   4118   FLD (f_operand2) = f_operand2;
   4119   FLD (f_s6) = f_s6;
   4120   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_andq", "f_operand2 0x%x", 'x', f_operand2, "f_s6 0x%x", 'x', f_s6, (char *) 0));
   4121 
   4122 #if WITH_PROFILE_MODEL_P
   4123   /* Record the fields for profiling.  */
   4124   if (PROFILE_MODEL_P (current_cpu))
   4125     {
   4126       FLD (in_Rd) = f_operand2;
   4127       FLD (out_h_gr_SI_index_of__INT_Rd) = FLD (f_operand2);
   4128     }
   4129 #endif
   4130 #undef FLD
   4131     return idesc;
   4132   }
   4133 
   4134  extract_sfmt_swap:
   4135   {
   4136     const IDESC *idesc = &crisv32f_insn_data[itype];
   4137     CGEN_INSN_WORD insn ATTRIBUTE_UNUSED = base_insn;
   4138 #define FLD(f) abuf->fields.sfmt_move_spr_mv32.f
   4139     UINT f_operand2;
   4140     UINT f_operand1;
   4141 
   4142     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
   4143     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
   4144 
   4145   /* Record the fields for the semantic handler.  */
   4146   FLD (f_operand1) = f_operand1;
   4147   FLD (f_operand2) = f_operand2;
   4148   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_swap", "f_operand1 0x%x", 'x', f_operand1, "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
   4149 
   4150 #if WITH_PROFILE_MODEL_P
   4151   /* Record the fields for profiling.  */
   4152   if (PROFILE_MODEL_P (current_cpu))
   4153     {
   4154       FLD (in_Rs) = f_operand1;
   4155       FLD (out_Rs) = f_operand1;
   4156     }
   4157 #endif
   4158 #undef FLD
   4159     return idesc;
   4160   }
   4161 
   4162  extract_sfmt_asrq:
   4163   {
   4164     const IDESC *idesc = &crisv32f_insn_data[itype];
   4165     CGEN_INSN_WORD insn ATTRIBUTE_UNUSED = base_insn;
   4166 #define FLD(f) abuf->fields.sfmt_asrq.f
   4167     UINT f_operand2;
   4168     UINT f_u5;
   4169 
   4170     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
   4171     f_u5 = EXTRACT_LSB0_UINT (insn, 16, 4, 5);
   4172 
   4173   /* Record the fields for the semantic handler.  */
   4174   FLD (f_operand2) = f_operand2;
   4175   FLD (f_u5) = f_u5;
   4176   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_asrq", "f_operand2 0x%x", 'x', f_operand2, "f_u5 0x%x", 'x', f_u5, (char *) 0));
   4177 
   4178 #if WITH_PROFILE_MODEL_P
   4179   /* Record the fields for profiling.  */
   4180   if (PROFILE_MODEL_P (current_cpu))
   4181     {
   4182       FLD (in_Rd) = f_operand2;
   4183       FLD (out_Rd) = f_operand2;
   4184     }
   4185 #endif
   4186 #undef FLD
   4187     return idesc;
   4188   }
   4189 
   4190  extract_sfmt_lsrr_b_r:
   4191   {
   4192     const IDESC *idesc = &crisv32f_insn_data[itype];
   4193     CGEN_INSN_WORD insn ATTRIBUTE_UNUSED = base_insn;
   4194 #define FLD(f) abuf->fields.sfmt_addc_m.f
   4195     UINT f_operand2;
   4196     UINT f_operand1;
   4197 
   4198     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
   4199     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
   4200 
   4201   /* Record the fields for the semantic handler.  */
   4202   FLD (f_operand2) = f_operand2;
   4203   FLD (f_operand1) = f_operand1;
   4204   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_lsrr_b_r", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, (char *) 0));
   4205 
   4206 #if WITH_PROFILE_MODEL_P
   4207   /* Record the fields for profiling.  */
   4208   if (PROFILE_MODEL_P (current_cpu))
   4209     {
   4210       FLD (in_Rd) = f_operand2;
   4211       FLD (in_Rs) = f_operand1;
   4212       FLD (out_h_gr_SI_index_of__INT_Rd) = FLD (f_operand2);
   4213     }
   4214 #endif
   4215 #undef FLD
   4216     return idesc;
   4217   }
   4218 
   4219  extract_sfmt_lsrr_d_r:
   4220   {
   4221     const IDESC *idesc = &crisv32f_insn_data[itype];
   4222     CGEN_INSN_WORD insn ATTRIBUTE_UNUSED = base_insn;
   4223 #define FLD(f) abuf->fields.sfmt_addc_m.f
   4224     UINT f_operand2;
   4225     UINT f_operand1;
   4226 
   4227     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
   4228     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
   4229 
   4230   /* Record the fields for the semantic handler.  */
   4231   FLD (f_operand2) = f_operand2;
   4232   FLD (f_operand1) = f_operand1;
   4233   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_lsrr_d_r", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, (char *) 0));
   4234 
   4235 #if WITH_PROFILE_MODEL_P
   4236   /* Record the fields for profiling.  */
   4237   if (PROFILE_MODEL_P (current_cpu))
   4238     {
   4239       FLD (in_Rd) = f_operand2;
   4240       FLD (in_Rs) = f_operand1;
   4241       FLD (out_h_gr_SI_index_of__INT_Rd) = FLD (f_operand2);
   4242     }
   4243 #endif
   4244 #undef FLD
   4245     return idesc;
   4246   }
   4247 
   4248  extract_sfmt_btst:
   4249   {
   4250     const IDESC *idesc = &crisv32f_insn_data[itype];
   4251     CGEN_INSN_WORD insn ATTRIBUTE_UNUSED = base_insn;
   4252 #define FLD(f) abuf->fields.sfmt_muls_b.f
   4253     UINT f_operand2;
   4254     UINT f_operand1;
   4255 
   4256     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
   4257     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
   4258 
   4259   /* Record the fields for the semantic handler.  */
   4260   FLD (f_operand2) = f_operand2;
   4261   FLD (f_operand1) = f_operand1;
   4262   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_btst", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, (char *) 0));
   4263 
   4264 #if WITH_PROFILE_MODEL_P
   4265   /* Record the fields for profiling.  */
   4266   if (PROFILE_MODEL_P (current_cpu))
   4267     {
   4268       FLD (in_Rd) = f_operand2;
   4269       FLD (in_Rs) = f_operand1;
   4270     }
   4271 #endif
   4272 #undef FLD
   4273     return idesc;
   4274   }
   4275 
   4276  extract_sfmt_btstq:
   4277   {
   4278     const IDESC *idesc = &crisv32f_insn_data[itype];
   4279     CGEN_INSN_WORD insn ATTRIBUTE_UNUSED = base_insn;
   4280 #define FLD(f) abuf->fields.sfmt_asrq.f
   4281     UINT f_operand2;
   4282     UINT f_u5;
   4283 
   4284     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
   4285     f_u5 = EXTRACT_LSB0_UINT (insn, 16, 4, 5);
   4286 
   4287   /* Record the fields for the semantic handler.  */
   4288   FLD (f_operand2) = f_operand2;
   4289   FLD (f_u5) = f_u5;
   4290   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_btstq", "f_operand2 0x%x", 'x', f_operand2, "f_u5 0x%x", 'x', f_u5, (char *) 0));
   4291 
   4292 #if WITH_PROFILE_MODEL_P
   4293   /* Record the fields for profiling.  */
   4294   if (PROFILE_MODEL_P (current_cpu))
   4295     {
   4296       FLD (in_Rd) = f_operand2;
   4297     }
   4298 #endif
   4299 #undef FLD
   4300     return idesc;
   4301   }
   4302 
   4303  extract_sfmt_setf:
   4304   {
   4305     const IDESC *idesc = &crisv32f_insn_data[itype];
   4306     CGEN_INSN_WORD insn ATTRIBUTE_UNUSED = base_insn;
   4307 #define FLD(f) abuf->fields.sfmt_setf.f
   4308     UINT f_operand2;
   4309     UINT f_operand1;
   4310     UINT f_dstsrc;
   4311 
   4312     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
   4313     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
   4314   f_dstsrc = ((((f_operand1) | (((f_operand2) << (4))))) & (255));
   4315 
   4316   /* Record the fields for the semantic handler.  */
   4317   FLD (f_dstsrc) = f_dstsrc;
   4318   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_setf", "f_dstsrc 0x%x", 'x', f_dstsrc, (char *) 0));
   4319 
   4320 #undef FLD
   4321     return idesc;
   4322   }
   4323 
   4324  extract_sfmt_rfe:
   4325   {
   4326     const IDESC *idesc = &crisv32f_insn_data[itype];
   4327 #define FLD(f) abuf->fields.sfmt_rfe.f
   4328 
   4329 
   4330   /* Record the fields for the semantic handler.  */
   4331   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_rfe", (char *) 0));
   4332 
   4333 #if WITH_PROFILE_MODEL_P
   4334   /* Record the fields for profiling.  */
   4335   if (PROFILE_MODEL_P (current_cpu))
   4336     {
   4337       FLD (in_h_sr_SI_13) = 13;
   4338       FLD (out_h_sr_SI_13) = 13;
   4339     }
   4340 #endif
   4341 #undef FLD
   4342     return idesc;
   4343   }
   4344 
   4345  extract_sfmt_sfe:
   4346   {
   4347     const IDESC *idesc = &crisv32f_insn_data[itype];
   4348 #define FLD(f) abuf->fields.sfmt_rfe.f
   4349 
   4350 
   4351   /* Record the fields for the semantic handler.  */
   4352   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_sfe", (char *) 0));
   4353 
   4354 #if WITH_PROFILE_MODEL_P
   4355   /* Record the fields for profiling.  */
   4356   if (PROFILE_MODEL_P (current_cpu))
   4357     {
   4358       FLD (in_h_sr_SI_13) = 13;
   4359       FLD (out_h_sr_SI_13) = 13;
   4360     }
   4361 #endif
   4362 #undef FLD
   4363     return idesc;
   4364   }
   4365 
   4366  extract_sfmt_rfg:
   4367   {
   4368     const IDESC *idesc = &crisv32f_insn_data[itype];
   4369 #define FLD(f) abuf->fields.sfmt_empty.f
   4370 
   4371 
   4372   /* Record the fields for the semantic handler.  */
   4373   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_rfg", (char *) 0));
   4374 
   4375 #if WITH_PROFILE_MODEL_P
   4376   /* Record the fields for profiling.  */
   4377   if (PROFILE_MODEL_P (current_cpu))
   4378     {
   4379     }
   4380 #endif
   4381 #undef FLD
   4382     return idesc;
   4383   }
   4384 
   4385  extract_sfmt_rfn:
   4386   {
   4387     const IDESC *idesc = &crisv32f_insn_data[itype];
   4388 #define FLD(f) abuf->fields.sfmt_rfe.f
   4389 
   4390 
   4391   /* Record the fields for the semantic handler.  */
   4392   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_rfn", (char *) 0));
   4393 
   4394 #if WITH_PROFILE_MODEL_P
   4395   /* Record the fields for profiling.  */
   4396   if (PROFILE_MODEL_P (current_cpu))
   4397     {
   4398       FLD (in_h_sr_SI_13) = 13;
   4399       FLD (out_h_sr_SI_13) = 13;
   4400     }
   4401 #endif
   4402 #undef FLD
   4403     return idesc;
   4404   }
   4405 
   4406  extract_sfmt_halt:
   4407   {
   4408     const IDESC *idesc = &crisv32f_insn_data[itype];
   4409 #define FLD(f) abuf->fields.sfmt_empty.f
   4410 
   4411 
   4412   /* Record the fields for the semantic handler.  */
   4413   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_halt", (char *) 0));
   4414 
   4415 #if WITH_PROFILE_MODEL_P
   4416   /* Record the fields for profiling.  */
   4417   if (PROFILE_MODEL_P (current_cpu))
   4418     {
   4419     }
   4420 #endif
   4421 #undef FLD
   4422     return idesc;
   4423   }
   4424 
   4425  extract_sfmt_bcc_b:
   4426   {
   4427     const IDESC *idesc = &crisv32f_insn_data[itype];
   4428     CGEN_INSN_WORD insn ATTRIBUTE_UNUSED = base_insn;
   4429 #define FLD(f) abuf->fields.sfmt_bcc_b.f
   4430     UINT f_operand2;
   4431     UINT f_disp9_lo;
   4432     INT f_disp9_hi;
   4433     INT f_disp9;
   4434 
   4435     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
   4436     f_disp9_lo = EXTRACT_LSB0_UINT (insn, 16, 7, 7);
   4437     f_disp9_hi = EXTRACT_LSB0_SINT (insn, 16, 0, 1);
   4438 {
   4439   SI tmp_abslo;
   4440   SI tmp_absval;
   4441   tmp_abslo = ((f_disp9_lo) << (1));
   4442   tmp_absval = ((((((f_disp9_hi) != (0))) ? ((~ (255))) : (0))) | (tmp_abslo));
   4443   f_disp9 = ((((pc) + (tmp_absval))) + (((GET_H_V32_V32 ()) ? (0) : (2))));
   4444 }
   4445 
   4446   /* Record the fields for the semantic handler.  */
   4447   FLD (f_operand2) = f_operand2;
   4448   FLD (i_o_pcrel) = f_disp9;
   4449   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_bcc_b", "f_operand2 0x%x", 'x', f_operand2, "o_pcrel 0x%x", 'x', f_disp9, (char *) 0));
   4450 
   4451 #if WITH_PROFILE_MODEL_P
   4452   /* Record the fields for profiling.  */
   4453   if (PROFILE_MODEL_P (current_cpu))
   4454     {
   4455     }
   4456 #endif
   4457 #undef FLD
   4458     return idesc;
   4459   }
   4460 
   4461  extract_sfmt_ba_b:
   4462   {
   4463     const IDESC *idesc = &crisv32f_insn_data[itype];
   4464     CGEN_INSN_WORD insn ATTRIBUTE_UNUSED = base_insn;
   4465 #define FLD(f) abuf->fields.sfmt_bcc_b.f
   4466     UINT f_disp9_lo;
   4467     INT f_disp9_hi;
   4468     INT f_disp9;
   4469 
   4470     f_disp9_lo = EXTRACT_LSB0_UINT (insn, 16, 7, 7);
   4471     f_disp9_hi = EXTRACT_LSB0_SINT (insn, 16, 0, 1);
   4472 {
   4473   SI tmp_abslo;
   4474   SI tmp_absval;
   4475   tmp_abslo = ((f_disp9_lo) << (1));
   4476   tmp_absval = ((((((f_disp9_hi) != (0))) ? ((~ (255))) : (0))) | (tmp_abslo));
   4477   f_disp9 = ((((pc) + (tmp_absval))) + (((GET_H_V32_V32 ()) ? (0) : (2))));
   4478 }
   4479 
   4480   /* Record the fields for the semantic handler.  */
   4481   FLD (i_o_pcrel) = f_disp9;
   4482   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ba_b", "o_pcrel 0x%x", 'x', f_disp9, (char *) 0));
   4483 
   4484 #if WITH_PROFILE_MODEL_P
   4485   /* Record the fields for profiling.  */
   4486   if (PROFILE_MODEL_P (current_cpu))
   4487     {
   4488     }
   4489 #endif
   4490 #undef FLD
   4491     return idesc;
   4492   }
   4493 
   4494  extract_sfmt_bcc_w:
   4495   {
   4496     const IDESC *idesc = &crisv32f_insn_data[itype];
   4497     CGEN_INSN_WORD insn ATTRIBUTE_UNUSED = base_insn;
   4498 #define FLD(f) abuf->fields.sfmt_bcc_w.f
   4499     SI f_indir_pc__word_pcrel;
   4500     UINT f_operand2;
   4501     /* Contents of trailing part of insn.  */
   4502     UINT word_1;
   4503 
   4504   word_1 = GETIMEMUSI (current_cpu, pc + 2);
   4505     f_indir_pc__word_pcrel = ((EXTHISI (((HI) (UINT) ((0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0)))))) + (((pc) + (((GET_H_V32_V32 ()) ? (0) : (4))))));
   4506     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
   4507 
   4508   /* Record the fields for the semantic handler.  */
   4509   FLD (f_operand2) = f_operand2;
   4510   FLD (i_o_word_pcrel) = f_indir_pc__word_pcrel;
   4511   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_bcc_w", "f_operand2 0x%x", 'x', f_operand2, "o_word_pcrel 0x%x", 'x', f_indir_pc__word_pcrel, (char *) 0));
   4512 
   4513 #if WITH_PROFILE_MODEL_P
   4514   /* Record the fields for profiling.  */
   4515   if (PROFILE_MODEL_P (current_cpu))
   4516     {
   4517     }
   4518 #endif
   4519 #undef FLD
   4520     return idesc;
   4521   }
   4522 
   4523  extract_sfmt_ba_w:
   4524   {
   4525     const IDESC *idesc = &crisv32f_insn_data[itype];
   4526     CGEN_INSN_WORD insn ATTRIBUTE_UNUSED = base_insn;
   4527 #define FLD(f) abuf->fields.sfmt_bcc_w.f
   4528     SI f_indir_pc__word_pcrel;
   4529     /* Contents of trailing part of insn.  */
   4530     UINT word_1;
   4531 
   4532   word_1 = GETIMEMUSI (current_cpu, pc + 2);
   4533     f_indir_pc__word_pcrel = ((EXTHISI (((HI) (UINT) ((0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0)))))) + (((pc) + (((GET_H_V32_V32 ()) ? (0) : (4))))));
   4534 
   4535   /* Record the fields for the semantic handler.  */
   4536   FLD (i_o_word_pcrel) = f_indir_pc__word_pcrel;
   4537   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ba_w", "o_word_pcrel 0x%x", 'x', f_indir_pc__word_pcrel, (char *) 0));
   4538 
   4539 #if WITH_PROFILE_MODEL_P
   4540   /* Record the fields for profiling.  */
   4541   if (PROFILE_MODEL_P (current_cpu))
   4542     {
   4543     }
   4544 #endif
   4545 #undef FLD
   4546     return idesc;
   4547   }
   4548 
   4549  extract_sfmt_jas_r:
   4550   {
   4551     const IDESC *idesc = &crisv32f_insn_data[itype];
   4552     CGEN_INSN_WORD insn ATTRIBUTE_UNUSED = base_insn;
   4553 #define FLD(f) abuf->fields.sfmt_move_m_sprv32.f
   4554     UINT f_operand2;
   4555     UINT f_operand1;
   4556 
   4557     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
   4558     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
   4559 
   4560   /* Record the fields for the semantic handler.  */
   4561   FLD (f_operand1) = f_operand1;
   4562   FLD (f_operand2) = f_operand2;
   4563   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_jas_r", "f_operand1 0x%x", 'x', f_operand1, "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
   4564 
   4565 #if WITH_PROFILE_MODEL_P
   4566   /* Record the fields for profiling.  */
   4567   if (PROFILE_MODEL_P (current_cpu))
   4568     {
   4569       FLD (in_Rs) = f_operand1;
   4570       FLD (out_Pd) = f_operand2;
   4571     }
   4572 #endif
   4573 #undef FLD
   4574     return idesc;
   4575   }
   4576 
   4577  extract_sfmt_jas_c:
   4578   {
   4579     const IDESC *idesc = &crisv32f_insn_data[itype];
   4580     CGEN_INSN_WORD insn ATTRIBUTE_UNUSED = base_insn;
   4581 #define FLD(f) abuf->fields.sfmt_move_c_sprv32_p2.f
   4582     INT f_indir_pc__dword;
   4583     UINT f_operand2;
   4584     /* Contents of trailing part of insn.  */
   4585     UINT word_1;
   4586 
   4587   word_1 = GETIMEMUSI (current_cpu, pc + 2);
   4588     f_indir_pc__dword = (0|(EXTRACT_LSB0_UINT (word_1, 32, 31, 32) << 0));
   4589     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
   4590 
   4591   /* Record the fields for the semantic handler.  */
   4592   FLD (f_indir_pc__dword) = f_indir_pc__dword;
   4593   FLD (f_operand2) = f_operand2;
   4594   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_jas_c", "f_indir_pc__dword 0x%x", 'x', f_indir_pc__dword, "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
   4595 
   4596 #if WITH_PROFILE_MODEL_P
   4597   /* Record the fields for profiling.  */
   4598   if (PROFILE_MODEL_P (current_cpu))
   4599     {
   4600       FLD (out_Pd) = f_operand2;
   4601     }
   4602 #endif
   4603 #undef FLD
   4604     return idesc;
   4605   }
   4606 
   4607  extract_sfmt_jump_p:
   4608   {
   4609     const IDESC *idesc = &crisv32f_insn_data[itype];
   4610     CGEN_INSN_WORD insn ATTRIBUTE_UNUSED = base_insn;
   4611 #define FLD(f) abuf->fields.sfmt_mcp.f
   4612     UINT f_operand2;
   4613 
   4614     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
   4615 
   4616   /* Record the fields for the semantic handler.  */
   4617   FLD (f_operand2) = f_operand2;
   4618   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_jump_p", "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
   4619 
   4620 #if WITH_PROFILE_MODEL_P
   4621   /* Record the fields for profiling.  */
   4622   if (PROFILE_MODEL_P (current_cpu))
   4623     {
   4624       FLD (in_Ps) = f_operand2;
   4625     }
   4626 #endif
   4627 #undef FLD
   4628     return idesc;
   4629   }
   4630 
   4631  extract_sfmt_bas_c:
   4632   {
   4633     const IDESC *idesc = &crisv32f_insn_data[itype];
   4634     CGEN_INSN_WORD insn ATTRIBUTE_UNUSED = base_insn;
   4635 #define FLD(f) abuf->fields.sfmt_bas_c.f
   4636     SI f_indir_pc__dword_pcrel;
   4637     UINT f_operand2;
   4638     /* Contents of trailing part of insn.  */
   4639     UINT word_1;
   4640 
   4641   word_1 = GETIMEMUSI (current_cpu, pc + 2);
   4642     f_indir_pc__dword_pcrel = ((pc) + ((0|(EXTRACT_LSB0_UINT (word_1, 32, 31, 32) << 0))));
   4643     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
   4644 
   4645   /* Record the fields for the semantic handler.  */
   4646   FLD (f_operand2) = f_operand2;
   4647   FLD (i_const32_pcrel) = f_indir_pc__dword_pcrel;
   4648   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_bas_c", "f_operand2 0x%x", 'x', f_operand2, "const32_pcrel 0x%x", 'x', f_indir_pc__dword_pcrel, (char *) 0));
   4649 
   4650 #if WITH_PROFILE_MODEL_P
   4651   /* Record the fields for profiling.  */
   4652   if (PROFILE_MODEL_P (current_cpu))
   4653     {
   4654       FLD (out_Pd) = f_operand2;
   4655     }
   4656 #endif
   4657 #undef FLD
   4658     return idesc;
   4659   }
   4660 
   4661  extract_sfmt_jasc_r:
   4662   {
   4663     const IDESC *idesc = &crisv32f_insn_data[itype];
   4664     CGEN_INSN_WORD insn ATTRIBUTE_UNUSED = base_insn;
   4665 #define FLD(f) abuf->fields.sfmt_move_m_sprv32.f
   4666     UINT f_operand2;
   4667     UINT f_operand1;
   4668 
   4669     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
   4670     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
   4671 
   4672   /* Record the fields for the semantic handler.  */
   4673   FLD (f_operand1) = f_operand1;
   4674   FLD (f_operand2) = f_operand2;
   4675   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_jasc_r", "f_operand1 0x%x", 'x', f_operand1, "f_operand2 0x%x", 'x', f_operand2, (char *) 0));
   4676 
   4677 #if WITH_PROFILE_MODEL_P
   4678   /* Record the fields for profiling.  */
   4679   if (PROFILE_MODEL_P (current_cpu))
   4680     {
   4681       FLD (in_Rs) = f_operand1;
   4682       FLD (out_Pd) = f_operand2;
   4683     }
   4684 #endif
   4685 #undef FLD
   4686     return idesc;
   4687   }
   4688 
   4689  extract_sfmt_break:
   4690   {
   4691     const IDESC *idesc = &crisv32f_insn_data[itype];
   4692     CGEN_INSN_WORD insn ATTRIBUTE_UNUSED = base_insn;
   4693 #define FLD(f) abuf->fields.sfmt_break.f
   4694     UINT f_u4;
   4695 
   4696     f_u4 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
   4697 
   4698   /* Record the fields for the semantic handler.  */
   4699   FLD (f_u4) = f_u4;
   4700   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_break", "f_u4 0x%x", 'x', f_u4, (char *) 0));
   4701 
   4702 #if WITH_PROFILE_MODEL_P
   4703   /* Record the fields for profiling.  */
   4704   if (PROFILE_MODEL_P (current_cpu))
   4705     {
   4706     }
   4707 #endif
   4708 #undef FLD
   4709     return idesc;
   4710   }
   4711 
   4712  extract_sfmt_bound_cb:
   4713   {
   4714     const IDESC *idesc = &crisv32f_insn_data[itype];
   4715     CGEN_INSN_WORD insn ATTRIBUTE_UNUSED = base_insn;
   4716 #define FLD(f) abuf->fields.sfmt_bound_cb.f
   4717     INT f_indir_pc__byte;
   4718     UINT f_operand2;
   4719     /* Contents of trailing part of insn.  */
   4720     UINT word_1;
   4721 
   4722   word_1 = GETIMEMUSI (current_cpu, pc + 2);
   4723     f_indir_pc__byte = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
   4724     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
   4725 
   4726   /* Record the fields for the semantic handler.  */
   4727   FLD (f_operand2) = f_operand2;
   4728   FLD (f_indir_pc__byte) = f_indir_pc__byte;
   4729   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_bound_cb", "f_operand2 0x%x", 'x', f_operand2, "f_indir_pc__byte 0x%x", 'x', f_indir_pc__byte, (char *) 0));
   4730 
   4731 #if WITH_PROFILE_MODEL_P
   4732   /* Record the fields for profiling.  */
   4733   if (PROFILE_MODEL_P (current_cpu))
   4734     {
   4735       FLD (in_Rd) = f_operand2;
   4736       FLD (out_Rd) = f_operand2;
   4737     }
   4738 #endif
   4739 #undef FLD
   4740     return idesc;
   4741   }
   4742 
   4743  extract_sfmt_bound_cw:
   4744   {
   4745     const IDESC *idesc = &crisv32f_insn_data[itype];
   4746     CGEN_INSN_WORD insn ATTRIBUTE_UNUSED = base_insn;
   4747 #define FLD(f) abuf->fields.sfmt_bound_cw.f
   4748     INT f_indir_pc__word;
   4749     UINT f_operand2;
   4750     /* Contents of trailing part of insn.  */
   4751     UINT word_1;
   4752 
   4753   word_1 = GETIMEMUSI (current_cpu, pc + 2);
   4754     f_indir_pc__word = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
   4755     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
   4756 
   4757   /* Record the fields for the semantic handler.  */
   4758   FLD (f_operand2) = f_operand2;
   4759   FLD (f_indir_pc__word) = f_indir_pc__word;
   4760   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_bound_cw", "f_operand2 0x%x", 'x', f_operand2, "f_indir_pc__word 0x%x", 'x', f_indir_pc__word, (char *) 0));
   4761 
   4762 #if WITH_PROFILE_MODEL_P
   4763   /* Record the fields for profiling.  */
   4764   if (PROFILE_MODEL_P (current_cpu))
   4765     {
   4766       FLD (in_Rd) = f_operand2;
   4767       FLD (out_Rd) = f_operand2;
   4768     }
   4769 #endif
   4770 #undef FLD
   4771     return idesc;
   4772   }
   4773 
   4774  extract_sfmt_bound_cd:
   4775   {
   4776     const IDESC *idesc = &crisv32f_insn_data[itype];
   4777     CGEN_INSN_WORD insn ATTRIBUTE_UNUSED = base_insn;
   4778 #define FLD(f) abuf->fields.sfmt_bound_cd.f
   4779     INT f_indir_pc__dword;
   4780     UINT f_operand2;
   4781     /* Contents of trailing part of insn.  */
   4782     UINT word_1;
   4783 
   4784   word_1 = GETIMEMUSI (current_cpu, pc + 2);
   4785     f_indir_pc__dword = (0|(EXTRACT_LSB0_UINT (word_1, 32, 31, 32) << 0));
   4786     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
   4787 
   4788   /* Record the fields for the semantic handler.  */
   4789   FLD (f_operand2) = f_operand2;
   4790   FLD (f_indir_pc__dword) = f_indir_pc__dword;
   4791   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_bound_cd", "f_operand2 0x%x", 'x', f_operand2, "f_indir_pc__dword 0x%x", 'x', f_indir_pc__dword, (char *) 0));
   4792 
   4793 #if WITH_PROFILE_MODEL_P
   4794   /* Record the fields for profiling.  */
   4795   if (PROFILE_MODEL_P (current_cpu))
   4796     {
   4797       FLD (in_Rd) = f_operand2;
   4798       FLD (out_Rd) = f_operand2;
   4799     }
   4800 #endif
   4801 #undef FLD
   4802     return idesc;
   4803   }
   4804 
   4805  extract_sfmt_scc:
   4806   {
   4807     const IDESC *idesc = &crisv32f_insn_data[itype];
   4808     CGEN_INSN_WORD insn ATTRIBUTE_UNUSED = base_insn;
   4809 #define FLD(f) abuf->fields.sfmt_move_spr_mv32.f
   4810     UINT f_operand2;
   4811     UINT f_operand1;
   4812 
   4813     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
   4814     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
   4815 
   4816   /* Record the fields for the semantic handler.  */
   4817   FLD (f_operand2) = f_operand2;
   4818   FLD (f_operand1) = f_operand1;
   4819   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_scc", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, (char *) 0));
   4820 
   4821 #if WITH_PROFILE_MODEL_P
   4822   /* Record the fields for profiling.  */
   4823   if (PROFILE_MODEL_P (current_cpu))
   4824     {
   4825       FLD (out_Rs) = f_operand1;
   4826     }
   4827 #endif
   4828 #undef FLD
   4829     return idesc;
   4830   }
   4831 
   4832  extract_sfmt_addoq:
   4833   {
   4834     const IDESC *idesc = &crisv32f_insn_data[itype];
   4835     CGEN_INSN_WORD insn ATTRIBUTE_UNUSED = base_insn;
   4836 #define FLD(f) abuf->fields.sfmt_addoq.f
   4837     UINT f_operand2;
   4838     INT f_s8;
   4839 
   4840     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
   4841     f_s8 = EXTRACT_LSB0_SINT (insn, 16, 7, 8);
   4842 
   4843   /* Record the fields for the semantic handler.  */
   4844   FLD (f_operand2) = f_operand2;
   4845   FLD (f_s8) = f_s8;
   4846   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addoq", "f_operand2 0x%x", 'x', f_operand2, "f_s8 0x%x", 'x', f_s8, (char *) 0));
   4847 
   4848 #if WITH_PROFILE_MODEL_P
   4849   /* Record the fields for profiling.  */
   4850   if (PROFILE_MODEL_P (current_cpu))
   4851     {
   4852       FLD (in_Rd) = f_operand2;
   4853     }
   4854 #endif
   4855 #undef FLD
   4856     return idesc;
   4857   }
   4858 
   4859  extract_sfmt_addo_m_b_m:
   4860   {
   4861     const IDESC *idesc = &crisv32f_insn_data[itype];
   4862     CGEN_INSN_WORD insn ATTRIBUTE_UNUSED = base_insn;
   4863 #define FLD(f) abuf->fields.sfmt_addc_m.f
   4864     UINT f_operand2;
   4865     UINT f_memmode;
   4866     UINT f_operand1;
   4867 
   4868     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
   4869     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
   4870     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
   4871 
   4872   /* Record the fields for the semantic handler.  */
   4873   FLD (f_operand2) = f_operand2;
   4874   FLD (f_operand1) = f_operand1;
   4875   FLD (f_memmode) = f_memmode;
   4876   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addo_m_b_m", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
   4877 
   4878 #if WITH_PROFILE_MODEL_P
   4879   /* Record the fields for profiling.  */
   4880   if (PROFILE_MODEL_P (current_cpu))
   4881     {
   4882       FLD (in_Rd) = f_operand2;
   4883       FLD (in_Rs) = f_operand1;
   4884       FLD (out_Rs) = f_operand1;
   4885     }
   4886 #endif
   4887 #undef FLD
   4888     return idesc;
   4889   }
   4890 
   4891  extract_sfmt_addo_m_w_m:
   4892   {
   4893     const IDESC *idesc = &crisv32f_insn_data[itype];
   4894     CGEN_INSN_WORD insn ATTRIBUTE_UNUSED = base_insn;
   4895 #define FLD(f) abuf->fields.sfmt_addc_m.f
   4896     UINT f_operand2;
   4897     UINT f_memmode;
   4898     UINT f_operand1;
   4899 
   4900     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
   4901     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
   4902     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
   4903 
   4904   /* Record the fields for the semantic handler.  */
   4905   FLD (f_operand2) = f_operand2;
   4906   FLD (f_operand1) = f_operand1;
   4907   FLD (f_memmode) = f_memmode;
   4908   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addo_m_w_m", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
   4909 
   4910 #if WITH_PROFILE_MODEL_P
   4911   /* Record the fields for profiling.  */
   4912   if (PROFILE_MODEL_P (current_cpu))
   4913     {
   4914       FLD (in_Rd) = f_operand2;
   4915       FLD (in_Rs) = f_operand1;
   4916       FLD (out_Rs) = f_operand1;
   4917     }
   4918 #endif
   4919 #undef FLD
   4920     return idesc;
   4921   }
   4922 
   4923  extract_sfmt_addo_m_d_m:
   4924   {
   4925     const IDESC *idesc = &crisv32f_insn_data[itype];
   4926     CGEN_INSN_WORD insn ATTRIBUTE_UNUSED = base_insn;
   4927 #define FLD(f) abuf->fields.sfmt_addc_m.f
   4928     UINT f_operand2;
   4929     UINT f_memmode;
   4930     UINT f_operand1;
   4931 
   4932     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
   4933     f_memmode = EXTRACT_LSB0_UINT (insn, 16, 10, 1);
   4934     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
   4935 
   4936   /* Record the fields for the semantic handler.  */
   4937   FLD (f_operand2) = f_operand2;
   4938   FLD (f_operand1) = f_operand1;
   4939   FLD (f_memmode) = f_memmode;
   4940   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addo_m_d_m", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, "f_memmode 0x%x", 'x', f_memmode, (char *) 0));
   4941 
   4942 #if WITH_PROFILE_MODEL_P
   4943   /* Record the fields for profiling.  */
   4944   if (PROFILE_MODEL_P (current_cpu))
   4945     {
   4946       FLD (in_Rd) = f_operand2;
   4947       FLD (in_Rs) = f_operand1;
   4948       FLD (out_Rs) = f_operand1;
   4949     }
   4950 #endif
   4951 #undef FLD
   4952     return idesc;
   4953   }
   4954 
   4955  extract_sfmt_addo_cb:
   4956   {
   4957     const IDESC *idesc = &crisv32f_insn_data[itype];
   4958     CGEN_INSN_WORD insn ATTRIBUTE_UNUSED = base_insn;
   4959 #define FLD(f) abuf->fields.sfmt_bound_cb.f
   4960     INT f_indir_pc__byte;
   4961     UINT f_operand2;
   4962     /* Contents of trailing part of insn.  */
   4963     UINT word_1;
   4964 
   4965   word_1 = GETIMEMUSI (current_cpu, pc + 2);
   4966     f_indir_pc__byte = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
   4967     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
   4968 
   4969   /* Record the fields for the semantic handler.  */
   4970   FLD (f_operand2) = f_operand2;
   4971   FLD (f_indir_pc__byte) = f_indir_pc__byte;
   4972   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addo_cb", "f_operand2 0x%x", 'x', f_operand2, "f_indir_pc__byte 0x%x", 'x', f_indir_pc__byte, (char *) 0));
   4973 
   4974 #if WITH_PROFILE_MODEL_P
   4975   /* Record the fields for profiling.  */
   4976   if (PROFILE_MODEL_P (current_cpu))
   4977     {
   4978       FLD (in_Rd) = f_operand2;
   4979     }
   4980 #endif
   4981 #undef FLD
   4982     return idesc;
   4983   }
   4984 
   4985  extract_sfmt_addo_cw:
   4986   {
   4987     const IDESC *idesc = &crisv32f_insn_data[itype];
   4988     CGEN_INSN_WORD insn ATTRIBUTE_UNUSED = base_insn;
   4989 #define FLD(f) abuf->fields.sfmt_bound_cw.f
   4990     INT f_indir_pc__word;
   4991     UINT f_operand2;
   4992     /* Contents of trailing part of insn.  */
   4993     UINT word_1;
   4994 
   4995   word_1 = GETIMEMUSI (current_cpu, pc + 2);
   4996     f_indir_pc__word = (0|(EXTRACT_LSB0_UINT (word_1, 32, 15, 16) << 0));
   4997     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
   4998 
   4999   /* Record the fields for the semantic handler.  */
   5000   FLD (f_operand2) = f_operand2;
   5001   FLD (f_indir_pc__word) = f_indir_pc__word;
   5002   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addo_cw", "f_operand2 0x%x", 'x', f_operand2, "f_indir_pc__word 0x%x", 'x', f_indir_pc__word, (char *) 0));
   5003 
   5004 #if WITH_PROFILE_MODEL_P
   5005   /* Record the fields for profiling.  */
   5006   if (PROFILE_MODEL_P (current_cpu))
   5007     {
   5008       FLD (in_Rd) = f_operand2;
   5009     }
   5010 #endif
   5011 #undef FLD
   5012     return idesc;
   5013   }
   5014 
   5015  extract_sfmt_addo_cd:
   5016   {
   5017     const IDESC *idesc = &crisv32f_insn_data[itype];
   5018     CGEN_INSN_WORD insn ATTRIBUTE_UNUSED = base_insn;
   5019 #define FLD(f) abuf->fields.sfmt_bound_cd.f
   5020     INT f_indir_pc__dword;
   5021     UINT f_operand2;
   5022     /* Contents of trailing part of insn.  */
   5023     UINT word_1;
   5024 
   5025   word_1 = GETIMEMUSI (current_cpu, pc + 2);
   5026     f_indir_pc__dword = (0|(EXTRACT_LSB0_UINT (word_1, 32, 31, 32) << 0));
   5027     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
   5028 
   5029   /* Record the fields for the semantic handler.  */
   5030   FLD (f_operand2) = f_operand2;
   5031   FLD (f_indir_pc__dword) = f_indir_pc__dword;
   5032   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addo_cd", "f_operand2 0x%x", 'x', f_operand2, "f_indir_pc__dword 0x%x", 'x', f_indir_pc__dword, (char *) 0));
   5033 
   5034 #if WITH_PROFILE_MODEL_P
   5035   /* Record the fields for profiling.  */
   5036   if (PROFILE_MODEL_P (current_cpu))
   5037     {
   5038       FLD (in_Rd) = f_operand2;
   5039     }
   5040 #endif
   5041 #undef FLD
   5042     return idesc;
   5043   }
   5044 
   5045  extract_sfmt_addi_acr_b_r:
   5046   {
   5047     const IDESC *idesc = &crisv32f_insn_data[itype];
   5048     CGEN_INSN_WORD insn ATTRIBUTE_UNUSED = base_insn;
   5049 #define FLD(f) abuf->fields.sfmt_muls_b.f
   5050     UINT f_operand2;
   5051     UINT f_operand1;
   5052 
   5053     f_operand2 = EXTRACT_LSB0_UINT (insn, 16, 15, 4);
   5054     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
   5055 
   5056   /* Record the fields for the semantic handler.  */
   5057   FLD (f_operand2) = f_operand2;
   5058   FLD (f_operand1) = f_operand1;
   5059   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addi_acr_b_r", "f_operand2 0x%x", 'x', f_operand2, "f_operand1 0x%x", 'x', f_operand1, (char *) 0));
   5060 
   5061 #if WITH_PROFILE_MODEL_P
   5062   /* Record the fields for profiling.  */
   5063   if (PROFILE_MODEL_P (current_cpu))
   5064     {
   5065       FLD (in_Rd) = f_operand2;
   5066       FLD (in_Rs) = f_operand1;
   5067     }
   5068 #endif
   5069 #undef FLD
   5070     return idesc;
   5071   }
   5072 
   5073  extract_sfmt_fidxi:
   5074   {
   5075     const IDESC *idesc = &crisv32f_insn_data[itype];
   5076     CGEN_INSN_WORD insn ATTRIBUTE_UNUSED = base_insn;
   5077 #define FLD(f) abuf->fields.sfmt_mcp.f
   5078     UINT f_operand1;
   5079 
   5080     f_operand1 = EXTRACT_LSB0_UINT (insn, 16, 3, 4);
   5081 
   5082   /* Record the fields for the semantic handler.  */
   5083   FLD (f_operand1) = f_operand1;
   5084   CGEN_TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_fidxi", "f_operand1 0x%x", 'x', f_operand1, (char *) 0));
   5085 
   5086 #if WITH_PROFILE_MODEL_P
   5087   /* Record the fields for profiling.  */
   5088   if (PROFILE_MODEL_P (current_cpu))
   5089     {
   5090       FLD (in_Rs) = f_operand1;
   5091     }
   5092 #endif
   5093 #undef FLD
   5094     return idesc;
   5095   }
   5096 
   5097 }
   5098