Home | History | Annotate | Line # | Download | only in opcodes
      1   1.8  christos /* DO NOT EDIT!  -*- buffer-read-only: t -*- vi:set ro:  */
      2   1.1  christos /* Semantic operand instances for lm32.
      3   1.1  christos 
      4   1.1  christos THIS FILE IS MACHINE GENERATED WITH CGEN.
      5   1.1  christos 
      6  1.11  christos Copyright (C) 1996-2024 Free Software Foundation, Inc.
      7   1.1  christos 
      8   1.1  christos This file is part of the GNU Binutils and/or GDB, the GNU debugger.
      9   1.1  christos 
     10   1.1  christos    This file is free software; you can redistribute it and/or modify
     11   1.1  christos    it under the terms of the GNU General Public License as published by
     12   1.1  christos    the Free Software Foundation; either version 3, or (at your option)
     13   1.1  christos    any later version.
     14   1.1  christos 
     15   1.1  christos    It is distributed in the hope that it will be useful, but WITHOUT
     16   1.1  christos    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
     17   1.1  christos    or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
     18   1.1  christos    License for more details.
     19   1.1  christos 
     20   1.1  christos    You should have received a copy of the GNU General Public License along
     21   1.1  christos    with this program; if not, write to the Free Software Foundation, Inc.,
     22   1.1  christos    51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
     23   1.1  christos 
     24   1.1  christos */
     25   1.1  christos 
     26   1.1  christos #include "sysdep.h"
     27   1.1  christos #include "ansidecl.h"
     28   1.1  christos #include "bfd.h"
     29   1.1  christos #include "symcat.h"
     30   1.1  christos #include "lm32-desc.h"
     31   1.1  christos #include "lm32-opc.h"
     32   1.1  christos 
     33   1.1  christos /* Operand references.  */
     34   1.1  christos 
     35   1.1  christos #define OP_ENT(op) LM32_OPERAND_##op
     36   1.1  christos #define INPUT CGEN_OPINST_INPUT
     37   1.1  christos #define OUTPUT CGEN_OPINST_OUTPUT
     38   1.1  christos #define END CGEN_OPINST_END
     39   1.1  christos #define COND_REF CGEN_OPINST_COND_REF
     40   1.1  christos 
     41   1.1  christos static const CGEN_OPINST sfmt_empty_ops[] ATTRIBUTE_UNUSED = {
     42   1.1  christos   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
     43   1.1  christos };
     44   1.1  christos 
     45   1.1  christos static const CGEN_OPINST sfmt_add_ops[] ATTRIBUTE_UNUSED = {
     46   1.1  christos   { INPUT, "r0", HW_H_GR, CGEN_MODE_SI, OP_ENT (R0), 0, 0 },
     47   1.1  christos   { INPUT, "r1", HW_H_GR, CGEN_MODE_SI, OP_ENT (R1), 0, 0 },
     48   1.1  christos   { OUTPUT, "r2", HW_H_GR, CGEN_MODE_SI, OP_ENT (R2), 0, 0 },
     49   1.1  christos   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
     50   1.1  christos };
     51   1.1  christos 
     52   1.1  christos static const CGEN_OPINST sfmt_addi_ops[] ATTRIBUTE_UNUSED = {
     53   1.1  christos   { INPUT, "imm", HW_H_SINT, CGEN_MODE_INT, OP_ENT (IMM), 0, 0 },
     54   1.1  christos   { INPUT, "r0", HW_H_GR, CGEN_MODE_SI, OP_ENT (R0), 0, 0 },
     55   1.1  christos   { OUTPUT, "r1", HW_H_GR, CGEN_MODE_SI, OP_ENT (R1), 0, 0 },
     56   1.1  christos   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
     57   1.1  christos };
     58   1.1  christos 
     59   1.1  christos static const CGEN_OPINST sfmt_andi_ops[] ATTRIBUTE_UNUSED = {
     60   1.1  christos   { INPUT, "r0", HW_H_GR, CGEN_MODE_SI, OP_ENT (R0), 0, 0 },
     61   1.1  christos   { INPUT, "uimm", HW_H_UINT, CGEN_MODE_UINT, OP_ENT (UIMM), 0, 0 },
     62   1.1  christos   { OUTPUT, "r1", HW_H_GR, CGEN_MODE_SI, OP_ENT (R1), 0, 0 },
     63   1.1  christos   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
     64   1.1  christos };
     65   1.1  christos 
     66   1.1  christos static const CGEN_OPINST sfmt_andhii_ops[] ATTRIBUTE_UNUSED = {
     67   1.1  christos   { INPUT, "hi16", HW_H_UINT, CGEN_MODE_UINT, OP_ENT (HI16), 0, 0 },
     68   1.1  christos   { INPUT, "r0", HW_H_GR, CGEN_MODE_SI, OP_ENT (R0), 0, 0 },
     69   1.1  christos   { OUTPUT, "r1", HW_H_GR, CGEN_MODE_SI, OP_ENT (R1), 0, 0 },
     70   1.1  christos   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
     71   1.1  christos };
     72   1.1  christos 
     73   1.1  christos static const CGEN_OPINST sfmt_b_ops[] ATTRIBUTE_UNUSED = {
     74   1.1  christos   { INPUT, "f_r0", HW_H_UINT, CGEN_MODE_UINT, 0, 0, 0 },
     75   1.1  christos   { INPUT, "r0", HW_H_GR, CGEN_MODE_SI, OP_ENT (R0), 0, 0 },
     76   1.1  christos   { OUTPUT, "pc", HW_H_PC, CGEN_MODE_USI, 0, 0, 0 },
     77   1.1  christos   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
     78   1.1  christos };
     79   1.1  christos 
     80   1.1  christos static const CGEN_OPINST sfmt_bi_ops[] ATTRIBUTE_UNUSED = {
     81   1.1  christos   { INPUT, "call", HW_H_IADDR, CGEN_MODE_USI, OP_ENT (CALL), 0, 0 },
     82   1.1  christos   { OUTPUT, "pc", HW_H_PC, CGEN_MODE_USI, 0, 0, 0 },
     83   1.1  christos   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
     84   1.1  christos };
     85   1.1  christos 
     86   1.1  christos static const CGEN_OPINST sfmt_be_ops[] ATTRIBUTE_UNUSED = {
     87   1.1  christos   { INPUT, "branch", HW_H_IADDR, CGEN_MODE_USI, OP_ENT (BRANCH), 0, COND_REF },
     88   1.1  christos   { INPUT, "r0", HW_H_GR, CGEN_MODE_SI, OP_ENT (R0), 0, 0 },
     89   1.1  christos   { INPUT, "r1", HW_H_GR, CGEN_MODE_SI, OP_ENT (R1), 0, 0 },
     90   1.1  christos   { OUTPUT, "pc", HW_H_PC, CGEN_MODE_USI, 0, 0, COND_REF },
     91   1.1  christos   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
     92   1.1  christos };
     93   1.1  christos 
     94   1.1  christos static const CGEN_OPINST sfmt_call_ops[] ATTRIBUTE_UNUSED = {
     95   1.1  christos   { INPUT, "pc", HW_H_PC, CGEN_MODE_USI, 0, 0, 0 },
     96   1.1  christos   { INPUT, "r0", HW_H_GR, CGEN_MODE_SI, OP_ENT (R0), 0, 0 },
     97   1.1  christos   { OUTPUT, "h_gr_SI_29", HW_H_GR, CGEN_MODE_SI, 0, 29, 0 },
     98   1.1  christos   { OUTPUT, "pc", HW_H_PC, CGEN_MODE_USI, 0, 0, 0 },
     99   1.1  christos   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
    100   1.1  christos };
    101   1.1  christos 
    102   1.1  christos static const CGEN_OPINST sfmt_calli_ops[] ATTRIBUTE_UNUSED = {
    103   1.1  christos   { INPUT, "call", HW_H_IADDR, CGEN_MODE_USI, OP_ENT (CALL), 0, 0 },
    104   1.1  christos   { INPUT, "pc", HW_H_PC, CGEN_MODE_USI, 0, 0, 0 },
    105   1.1  christos   { OUTPUT, "h_gr_SI_29", HW_H_GR, CGEN_MODE_SI, 0, 29, 0 },
    106   1.1  christos   { OUTPUT, "pc", HW_H_PC, CGEN_MODE_USI, 0, 0, 0 },
    107   1.1  christos   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
    108   1.1  christos };
    109   1.1  christos 
    110   1.1  christos static const CGEN_OPINST sfmt_divu_ops[] ATTRIBUTE_UNUSED = {
    111   1.1  christos   { INPUT, "f_r0", HW_H_UINT, CGEN_MODE_UINT, 0, 0, 0 },
    112   1.1  christos   { INPUT, "f_r1", HW_H_UINT, CGEN_MODE_UINT, 0, 0, 0 },
    113   1.1  christos   { INPUT, "f_r2", HW_H_UINT, CGEN_MODE_UINT, 0, 0, 0 },
    114   1.1  christos   { INPUT, "pc", HW_H_PC, CGEN_MODE_USI, 0, 0, 0 },
    115   1.1  christos   { OUTPUT, "pc", HW_H_PC, CGEN_MODE_USI, 0, 0, 0 },
    116   1.1  christos   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
    117   1.1  christos };
    118   1.1  christos 
    119   1.1  christos static const CGEN_OPINST sfmt_lb_ops[] ATTRIBUTE_UNUSED = {
    120   1.1  christos   { INPUT, "h_memory_QI_add__SI_r0_ext__SI_trunc__HI_imm", HW_H_MEMORY, CGEN_MODE_QI, 0, 0, 0 },
    121   1.1  christos   { INPUT, "imm", HW_H_SINT, CGEN_MODE_INT, OP_ENT (IMM), 0, 0 },
    122   1.1  christos   { INPUT, "r0", HW_H_GR, CGEN_MODE_SI, OP_ENT (R0), 0, 0 },
    123   1.1  christos   { OUTPUT, "r1", HW_H_GR, CGEN_MODE_SI, OP_ENT (R1), 0, 0 },
    124   1.1  christos   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
    125   1.1  christos };
    126   1.1  christos 
    127   1.1  christos static const CGEN_OPINST sfmt_lh_ops[] ATTRIBUTE_UNUSED = {
    128   1.1  christos   { INPUT, "h_memory_HI_add__SI_r0_ext__SI_trunc__HI_imm", HW_H_MEMORY, CGEN_MODE_HI, 0, 0, 0 },
    129   1.1  christos   { INPUT, "imm", HW_H_SINT, CGEN_MODE_INT, OP_ENT (IMM), 0, 0 },
    130   1.1  christos   { INPUT, "r0", HW_H_GR, CGEN_MODE_SI, OP_ENT (R0), 0, 0 },
    131   1.1  christos   { OUTPUT, "r1", HW_H_GR, CGEN_MODE_SI, OP_ENT (R1), 0, 0 },
    132   1.1  christos   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
    133   1.1  christos };
    134   1.1  christos 
    135   1.1  christos static const CGEN_OPINST sfmt_lw_ops[] ATTRIBUTE_UNUSED = {
    136   1.1  christos   { INPUT, "h_memory_SI_add__SI_r0_ext__SI_trunc__HI_imm", HW_H_MEMORY, CGEN_MODE_SI, 0, 0, 0 },
    137   1.1  christos   { INPUT, "imm", HW_H_SINT, CGEN_MODE_INT, OP_ENT (IMM), 0, 0 },
    138   1.1  christos   { INPUT, "r0", HW_H_GR, CGEN_MODE_SI, OP_ENT (R0), 0, 0 },
    139   1.1  christos   { OUTPUT, "r1", HW_H_GR, CGEN_MODE_SI, OP_ENT (R1), 0, 0 },
    140   1.1  christos   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
    141   1.1  christos };
    142   1.1  christos 
    143   1.1  christos static const CGEN_OPINST sfmt_ori_ops[] ATTRIBUTE_UNUSED = {
    144   1.1  christos   { INPUT, "lo16", HW_H_UINT, CGEN_MODE_UINT, OP_ENT (LO16), 0, 0 },
    145   1.1  christos   { INPUT, "r0", HW_H_GR, CGEN_MODE_SI, OP_ENT (R0), 0, 0 },
    146   1.1  christos   { OUTPUT, "r1", HW_H_GR, CGEN_MODE_SI, OP_ENT (R1), 0, 0 },
    147   1.1  christos   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
    148   1.1  christos };
    149   1.1  christos 
    150   1.1  christos static const CGEN_OPINST sfmt_rcsr_ops[] ATTRIBUTE_UNUSED = {
    151   1.1  christos   { INPUT, "csr", HW_H_CSR, CGEN_MODE_SI, OP_ENT (CSR), 0, 0 },
    152   1.1  christos   { OUTPUT, "r2", HW_H_GR, CGEN_MODE_SI, OP_ENT (R2), 0, 0 },
    153   1.1  christos   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
    154   1.1  christos };
    155   1.1  christos 
    156   1.1  christos static const CGEN_OPINST sfmt_sb_ops[] ATTRIBUTE_UNUSED = {
    157   1.1  christos   { INPUT, "imm", HW_H_SINT, CGEN_MODE_INT, OP_ENT (IMM), 0, 0 },
    158   1.1  christos   { INPUT, "r0", HW_H_GR, CGEN_MODE_SI, OP_ENT (R0), 0, 0 },
    159   1.1  christos   { INPUT, "r1", HW_H_GR, CGEN_MODE_SI, OP_ENT (R1), 0, 0 },
    160   1.1  christos   { OUTPUT, "h_memory_QI_add__SI_r0_ext__SI_trunc__HI_imm", HW_H_MEMORY, CGEN_MODE_QI, 0, 0, 0 },
    161   1.1  christos   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
    162   1.1  christos };
    163   1.1  christos 
    164   1.1  christos static const CGEN_OPINST sfmt_sextb_ops[] ATTRIBUTE_UNUSED = {
    165   1.1  christos   { INPUT, "r0", HW_H_GR, CGEN_MODE_SI, OP_ENT (R0), 0, 0 },
    166   1.1  christos   { OUTPUT, "r2", HW_H_GR, CGEN_MODE_SI, OP_ENT (R2), 0, 0 },
    167   1.1  christos   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
    168   1.1  christos };
    169   1.1  christos 
    170   1.1  christos static const CGEN_OPINST sfmt_sh_ops[] ATTRIBUTE_UNUSED = {
    171   1.1  christos   { INPUT, "imm", HW_H_SINT, CGEN_MODE_INT, OP_ENT (IMM), 0, 0 },
    172   1.1  christos   { INPUT, "r0", HW_H_GR, CGEN_MODE_SI, OP_ENT (R0), 0, 0 },
    173   1.1  christos   { INPUT, "r1", HW_H_GR, CGEN_MODE_SI, OP_ENT (R1), 0, 0 },
    174   1.1  christos   { OUTPUT, "h_memory_HI_add__SI_r0_ext__SI_trunc__HI_imm", HW_H_MEMORY, CGEN_MODE_HI, 0, 0, 0 },
    175   1.1  christos   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
    176   1.1  christos };
    177   1.1  christos 
    178   1.1  christos static const CGEN_OPINST sfmt_sw_ops[] ATTRIBUTE_UNUSED = {
    179   1.1  christos   { INPUT, "imm", HW_H_SINT, CGEN_MODE_INT, OP_ENT (IMM), 0, 0 },
    180   1.1  christos   { INPUT, "r0", HW_H_GR, CGEN_MODE_SI, OP_ENT (R0), 0, 0 },
    181   1.1  christos   { INPUT, "r1", HW_H_GR, CGEN_MODE_SI, OP_ENT (R1), 0, 0 },
    182   1.1  christos   { OUTPUT, "h_memory_SI_add__SI_r0_ext__SI_trunc__HI_imm", HW_H_MEMORY, CGEN_MODE_SI, 0, 0, 0 },
    183   1.1  christos   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
    184   1.1  christos };
    185   1.1  christos 
    186   1.1  christos static const CGEN_OPINST sfmt_user_ops[] ATTRIBUTE_UNUSED = {
    187   1.1  christos   { INPUT, "r0", HW_H_GR, CGEN_MODE_SI, OP_ENT (R0), 0, 0 },
    188   1.1  christos   { INPUT, "r1", HW_H_GR, CGEN_MODE_SI, OP_ENT (R1), 0, 0 },
    189   1.1  christos   { INPUT, "user", HW_H_UINT, CGEN_MODE_UINT, OP_ENT (USER), 0, 0 },
    190   1.1  christos   { OUTPUT, "r2", HW_H_GR, CGEN_MODE_SI, OP_ENT (R2), 0, 0 },
    191   1.1  christos   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
    192   1.1  christos };
    193   1.1  christos 
    194   1.1  christos static const CGEN_OPINST sfmt_wcsr_ops[] ATTRIBUTE_UNUSED = {
    195   1.1  christos   { INPUT, "f_csr", HW_H_UINT, CGEN_MODE_UINT, 0, 0, 0 },
    196   1.1  christos   { INPUT, "r1", HW_H_GR, CGEN_MODE_SI, OP_ENT (R1), 0, 0 },
    197   1.1  christos   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
    198   1.1  christos };
    199   1.1  christos 
    200   1.1  christos static const CGEN_OPINST sfmt_break_ops[] ATTRIBUTE_UNUSED = {
    201   1.1  christos   { INPUT, "pc", HW_H_PC, CGEN_MODE_USI, 0, 0, 0 },
    202   1.1  christos   { OUTPUT, "pc", HW_H_PC, CGEN_MODE_USI, 0, 0, 0 },
    203   1.1  christos   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
    204   1.1  christos };
    205   1.1  christos 
    206   1.1  christos static const CGEN_OPINST sfmt_bret_ops[] ATTRIBUTE_UNUSED = {
    207   1.1  christos   { INPUT, "r0", HW_H_GR, CGEN_MODE_SI, OP_ENT (R0), 0, 0 },
    208   1.1  christos   { OUTPUT, "pc", HW_H_PC, CGEN_MODE_USI, 0, 0, 0 },
    209   1.1  christos   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
    210   1.1  christos };
    211   1.1  christos 
    212   1.1  christos static const CGEN_OPINST sfmt_mvi_ops[] ATTRIBUTE_UNUSED = {
    213   1.1  christos   { INPUT, "imm", HW_H_SINT, CGEN_MODE_INT, OP_ENT (IMM), 0, 0 },
    214   1.1  christos   { INPUT, "r0", HW_H_GR, CGEN_MODE_SI, OP_ENT (R0), 0, 0 },
    215   1.1  christos   { OUTPUT, "r1", HW_H_GR, CGEN_MODE_SI, OP_ENT (R1), 0, 0 },
    216   1.1  christos   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
    217   1.1  christos };
    218   1.1  christos 
    219   1.1  christos static const CGEN_OPINST sfmt_mvui_ops[] ATTRIBUTE_UNUSED = {
    220   1.1  christos   { INPUT, "lo16", HW_H_UINT, CGEN_MODE_UINT, OP_ENT (LO16), 0, 0 },
    221   1.1  christos   { OUTPUT, "r1", HW_H_GR, CGEN_MODE_SI, OP_ENT (R1), 0, 0 },
    222   1.1  christos   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
    223   1.1  christos };
    224   1.1  christos 
    225   1.1  christos static const CGEN_OPINST sfmt_mvhi_ops[] ATTRIBUTE_UNUSED = {
    226   1.1  christos   { INPUT, "hi16", HW_H_UINT, CGEN_MODE_UINT, OP_ENT (HI16), 0, 0 },
    227   1.1  christos   { INPUT, "r0", HW_H_GR, CGEN_MODE_SI, OP_ENT (R0), 0, 0 },
    228   1.1  christos   { OUTPUT, "r1", HW_H_GR, CGEN_MODE_SI, OP_ENT (R1), 0, 0 },
    229   1.1  christos   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
    230   1.1  christos };
    231   1.1  christos 
    232   1.1  christos static const CGEN_OPINST sfmt_mva_ops[] ATTRIBUTE_UNUSED = {
    233   1.1  christos   { INPUT, "gp16", HW_H_SINT, CGEN_MODE_INT, OP_ENT (GP16), 0, 0 },
    234   1.1  christos   { INPUT, "r0", HW_H_GR, CGEN_MODE_SI, OP_ENT (R0), 0, 0 },
    235   1.1  christos   { OUTPUT, "r1", HW_H_GR, CGEN_MODE_SI, OP_ENT (R1), 0, 0 },
    236   1.1  christos   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
    237   1.1  christos };
    238   1.1  christos 
    239   1.1  christos static const CGEN_OPINST sfmt_nop_ops[] ATTRIBUTE_UNUSED = {
    240   1.1  christos   { INPUT, "r0", HW_H_GR, CGEN_MODE_SI, OP_ENT (R0), 0, 0 },
    241   1.1  christos   { OUTPUT, "r0", HW_H_GR, CGEN_MODE_SI, OP_ENT (R0), 0, 0 },
    242   1.1  christos   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
    243   1.1  christos };
    244   1.1  christos 
    245   1.1  christos static const CGEN_OPINST sfmt_lbgprel_ops[] ATTRIBUTE_UNUSED = {
    246   1.1  christos   { INPUT, "gp16", HW_H_SINT, CGEN_MODE_INT, OP_ENT (GP16), 0, 0 },
    247   1.1  christos   { INPUT, "h_memory_QI_add__SI_r0_ext__SI_trunc__HI_gp16", HW_H_MEMORY, CGEN_MODE_QI, 0, 0, 0 },
    248   1.1  christos   { INPUT, "r0", HW_H_GR, CGEN_MODE_SI, OP_ENT (R0), 0, 0 },
    249   1.1  christos   { OUTPUT, "r1", HW_H_GR, CGEN_MODE_SI, OP_ENT (R1), 0, 0 },
    250   1.1  christos   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
    251   1.1  christos };
    252   1.1  christos 
    253   1.1  christos static const CGEN_OPINST sfmt_lhgprel_ops[] ATTRIBUTE_UNUSED = {
    254   1.1  christos   { INPUT, "gp16", HW_H_SINT, CGEN_MODE_INT, OP_ENT (GP16), 0, 0 },
    255   1.1  christos   { INPUT, "h_memory_HI_add__SI_r0_ext__SI_trunc__HI_gp16", HW_H_MEMORY, CGEN_MODE_HI, 0, 0, 0 },
    256   1.1  christos   { INPUT, "r0", HW_H_GR, CGEN_MODE_SI, OP_ENT (R0), 0, 0 },
    257   1.1  christos   { OUTPUT, "r1", HW_H_GR, CGEN_MODE_SI, OP_ENT (R1), 0, 0 },
    258   1.1  christos   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
    259   1.1  christos };
    260   1.1  christos 
    261   1.1  christos static const CGEN_OPINST sfmt_lwgprel_ops[] ATTRIBUTE_UNUSED = {
    262   1.1  christos   { INPUT, "gp16", HW_H_SINT, CGEN_MODE_INT, OP_ENT (GP16), 0, 0 },
    263   1.1  christos   { INPUT, "h_memory_SI_add__SI_r0_ext__SI_trunc__HI_gp16", HW_H_MEMORY, CGEN_MODE_SI, 0, 0, 0 },
    264   1.1  christos   { INPUT, "r0", HW_H_GR, CGEN_MODE_SI, OP_ENT (R0), 0, 0 },
    265   1.1  christos   { OUTPUT, "r1", HW_H_GR, CGEN_MODE_SI, OP_ENT (R1), 0, 0 },
    266   1.1  christos   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
    267   1.1  christos };
    268   1.1  christos 
    269   1.1  christos static const CGEN_OPINST sfmt_sbgprel_ops[] ATTRIBUTE_UNUSED = {
    270   1.1  christos   { INPUT, "gp16", HW_H_SINT, CGEN_MODE_INT, OP_ENT (GP16), 0, 0 },
    271   1.1  christos   { INPUT, "r0", HW_H_GR, CGEN_MODE_SI, OP_ENT (R0), 0, 0 },
    272   1.1  christos   { INPUT, "r1", HW_H_GR, CGEN_MODE_SI, OP_ENT (R1), 0, 0 },
    273   1.1  christos   { OUTPUT, "h_memory_QI_add__SI_r0_ext__SI_trunc__HI_gp16", HW_H_MEMORY, CGEN_MODE_QI, 0, 0, 0 },
    274   1.1  christos   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
    275   1.1  christos };
    276   1.1  christos 
    277   1.1  christos static const CGEN_OPINST sfmt_shgprel_ops[] ATTRIBUTE_UNUSED = {
    278   1.1  christos   { INPUT, "gp16", HW_H_SINT, CGEN_MODE_INT, OP_ENT (GP16), 0, 0 },
    279   1.1  christos   { INPUT, "r0", HW_H_GR, CGEN_MODE_SI, OP_ENT (R0), 0, 0 },
    280   1.1  christos   { INPUT, "r1", HW_H_GR, CGEN_MODE_SI, OP_ENT (R1), 0, 0 },
    281   1.1  christos   { OUTPUT, "h_memory_HI_add__SI_r0_ext__SI_trunc__HI_gp16", HW_H_MEMORY, CGEN_MODE_HI, 0, 0, 0 },
    282   1.1  christos   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
    283   1.1  christos };
    284   1.1  christos 
    285   1.1  christos static const CGEN_OPINST sfmt_swgprel_ops[] ATTRIBUTE_UNUSED = {
    286   1.1  christos   { INPUT, "gp16", HW_H_SINT, CGEN_MODE_INT, OP_ENT (GP16), 0, 0 },
    287   1.1  christos   { INPUT, "r0", HW_H_GR, CGEN_MODE_SI, OP_ENT (R0), 0, 0 },
    288   1.1  christos   { INPUT, "r1", HW_H_GR, CGEN_MODE_SI, OP_ENT (R1), 0, 0 },
    289   1.1  christos   { OUTPUT, "h_memory_SI_add__SI_r0_ext__SI_trunc__HI_gp16", HW_H_MEMORY, CGEN_MODE_SI, 0, 0, 0 },
    290   1.1  christos   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
    291   1.1  christos };
    292   1.1  christos 
    293   1.1  christos static const CGEN_OPINST sfmt_lwgotrel_ops[] ATTRIBUTE_UNUSED = {
    294   1.1  christos   { INPUT, "got16", HW_H_SINT, CGEN_MODE_INT, OP_ENT (GOT16), 0, 0 },
    295   1.1  christos   { INPUT, "h_memory_SI_add__SI_r0_ext__SI_trunc__HI_got16", HW_H_MEMORY, CGEN_MODE_SI, 0, 0, 0 },
    296   1.1  christos   { INPUT, "r0", HW_H_GR, CGEN_MODE_SI, OP_ENT (R0), 0, 0 },
    297   1.1  christos   { OUTPUT, "r1", HW_H_GR, CGEN_MODE_SI, OP_ENT (R1), 0, 0 },
    298   1.1  christos   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
    299   1.1  christos };
    300   1.1  christos 
    301   1.1  christos static const CGEN_OPINST sfmt_orhigotoffi_ops[] ATTRIBUTE_UNUSED = {
    302   1.1  christos   { INPUT, "gotoffhi16", HW_H_SINT, CGEN_MODE_INT, OP_ENT (GOTOFFHI16), 0, 0 },
    303   1.1  christos   { INPUT, "r0", HW_H_GR, CGEN_MODE_SI, OP_ENT (R0), 0, 0 },
    304   1.1  christos   { OUTPUT, "r1", HW_H_GR, CGEN_MODE_SI, OP_ENT (R1), 0, 0 },
    305   1.1  christos   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
    306   1.1  christos };
    307   1.1  christos 
    308   1.1  christos static const CGEN_OPINST sfmt_addgotoff_ops[] ATTRIBUTE_UNUSED = {
    309   1.1  christos   { INPUT, "gotofflo16", HW_H_SINT, CGEN_MODE_INT, OP_ENT (GOTOFFLO16), 0, 0 },
    310   1.1  christos   { INPUT, "r0", HW_H_GR, CGEN_MODE_SI, OP_ENT (R0), 0, 0 },
    311   1.1  christos   { OUTPUT, "r1", HW_H_GR, CGEN_MODE_SI, OP_ENT (R1), 0, 0 },
    312   1.1  christos   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
    313   1.1  christos };
    314   1.1  christos 
    315   1.1  christos static const CGEN_OPINST sfmt_swgotoff_ops[] ATTRIBUTE_UNUSED = {
    316   1.1  christos   { INPUT, "gotofflo16", HW_H_SINT, CGEN_MODE_INT, OP_ENT (GOTOFFLO16), 0, 0 },
    317   1.1  christos   { INPUT, "r0", HW_H_GR, CGEN_MODE_SI, OP_ENT (R0), 0, 0 },
    318   1.1  christos   { INPUT, "r1", HW_H_GR, CGEN_MODE_SI, OP_ENT (R1), 0, 0 },
    319   1.1  christos   { OUTPUT, "h_memory_SI_add__SI_r0_ext__SI_trunc__HI_gotofflo16", HW_H_MEMORY, CGEN_MODE_SI, 0, 0, 0 },
    320   1.1  christos   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
    321   1.1  christos };
    322   1.1  christos 
    323   1.1  christos static const CGEN_OPINST sfmt_lwgotoff_ops[] ATTRIBUTE_UNUSED = {
    324   1.1  christos   { INPUT, "gotofflo16", HW_H_SINT, CGEN_MODE_INT, OP_ENT (GOTOFFLO16), 0, 0 },
    325   1.1  christos   { INPUT, "h_memory_SI_add__SI_r0_ext__SI_trunc__HI_gotofflo16", HW_H_MEMORY, CGEN_MODE_SI, 0, 0, 0 },
    326   1.1  christos   { INPUT, "r0", HW_H_GR, CGEN_MODE_SI, OP_ENT (R0), 0, 0 },
    327   1.1  christos   { OUTPUT, "r1", HW_H_GR, CGEN_MODE_SI, OP_ENT (R1), 0, 0 },
    328   1.1  christos   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
    329   1.1  christos };
    330   1.1  christos 
    331   1.1  christos static const CGEN_OPINST sfmt_shgotoff_ops[] ATTRIBUTE_UNUSED = {
    332   1.1  christos   { INPUT, "gotofflo16", HW_H_SINT, CGEN_MODE_INT, OP_ENT (GOTOFFLO16), 0, 0 },
    333   1.1  christos   { INPUT, "r0", HW_H_GR, CGEN_MODE_SI, OP_ENT (R0), 0, 0 },
    334   1.1  christos   { INPUT, "r1", HW_H_GR, CGEN_MODE_SI, OP_ENT (R1), 0, 0 },
    335   1.1  christos   { OUTPUT, "h_memory_HI_add__SI_r0_ext__SI_trunc__HI_gotofflo16", HW_H_MEMORY, CGEN_MODE_HI, 0, 0, 0 },
    336   1.1  christos   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
    337   1.1  christos };
    338   1.1  christos 
    339   1.1  christos static const CGEN_OPINST sfmt_lhgotoff_ops[] ATTRIBUTE_UNUSED = {
    340   1.1  christos   { INPUT, "gotofflo16", HW_H_SINT, CGEN_MODE_INT, OP_ENT (GOTOFFLO16), 0, 0 },
    341   1.1  christos   { INPUT, "h_memory_HI_add__SI_r0_ext__SI_trunc__HI_gotofflo16", HW_H_MEMORY, CGEN_MODE_HI, 0, 0, 0 },
    342   1.1  christos   { INPUT, "r0", HW_H_GR, CGEN_MODE_SI, OP_ENT (R0), 0, 0 },
    343   1.1  christos   { OUTPUT, "r1", HW_H_GR, CGEN_MODE_SI, OP_ENT (R1), 0, 0 },
    344   1.1  christos   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
    345   1.1  christos };
    346   1.1  christos 
    347   1.1  christos static const CGEN_OPINST sfmt_sbgotoff_ops[] ATTRIBUTE_UNUSED = {
    348   1.1  christos   { INPUT, "gotofflo16", HW_H_SINT, CGEN_MODE_INT, OP_ENT (GOTOFFLO16), 0, 0 },
    349   1.1  christos   { INPUT, "r0", HW_H_GR, CGEN_MODE_SI, OP_ENT (R0), 0, 0 },
    350   1.1  christos   { INPUT, "r1", HW_H_GR, CGEN_MODE_SI, OP_ENT (R1), 0, 0 },
    351   1.1  christos   { OUTPUT, "h_memory_QI_add__SI_r0_ext__SI_trunc__HI_gotofflo16", HW_H_MEMORY, CGEN_MODE_QI, 0, 0, 0 },
    352   1.1  christos   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
    353   1.1  christos };
    354   1.1  christos 
    355   1.1  christos static const CGEN_OPINST sfmt_lbgotoff_ops[] ATTRIBUTE_UNUSED = {
    356   1.1  christos   { INPUT, "gotofflo16", HW_H_SINT, CGEN_MODE_INT, OP_ENT (GOTOFFLO16), 0, 0 },
    357   1.1  christos   { INPUT, "h_memory_QI_add__SI_r0_ext__SI_trunc__HI_gotofflo16", HW_H_MEMORY, CGEN_MODE_QI, 0, 0, 0 },
    358   1.1  christos   { INPUT, "r0", HW_H_GR, CGEN_MODE_SI, OP_ENT (R0), 0, 0 },
    359   1.1  christos   { OUTPUT, "r1", HW_H_GR, CGEN_MODE_SI, OP_ENT (R1), 0, 0 },
    360   1.1  christos   { END, (const char *)0, (enum cgen_hw_type)0, (enum cgen_mode)0, (enum cgen_operand_type)0, 0, 0 }
    361   1.1  christos };
    362   1.1  christos 
    363   1.1  christos #undef OP_ENT
    364   1.1  christos #undef INPUT
    365   1.1  christos #undef OUTPUT
    366   1.1  christos #undef END
    367   1.1  christos #undef COND_REF
    368   1.1  christos 
    369   1.1  christos /* Operand instance lookup table.  */
    370   1.1  christos 
    371   1.1  christos static const CGEN_OPINST *lm32_cgen_opinst_table[MAX_INSNS] = {
    372   1.1  christos   0,
    373   1.1  christos   & sfmt_add_ops[0],
    374   1.1  christos   & sfmt_addi_ops[0],
    375   1.1  christos   & sfmt_add_ops[0],
    376   1.1  christos   & sfmt_andi_ops[0],
    377   1.1  christos   & sfmt_andhii_ops[0],
    378   1.1  christos   & sfmt_b_ops[0],
    379   1.1  christos   & sfmt_bi_ops[0],
    380   1.1  christos   & sfmt_be_ops[0],
    381   1.1  christos   & sfmt_be_ops[0],
    382   1.1  christos   & sfmt_be_ops[0],
    383   1.1  christos   & sfmt_be_ops[0],
    384   1.1  christos   & sfmt_be_ops[0],
    385   1.1  christos   & sfmt_be_ops[0],
    386   1.1  christos   & sfmt_call_ops[0],
    387   1.1  christos   & sfmt_calli_ops[0],
    388   1.1  christos   & sfmt_add_ops[0],
    389   1.1  christos   & sfmt_addi_ops[0],
    390   1.1  christos   & sfmt_add_ops[0],
    391   1.1  christos   & sfmt_addi_ops[0],
    392   1.1  christos   & sfmt_add_ops[0],
    393   1.1  christos   & sfmt_addi_ops[0],
    394   1.1  christos   & sfmt_add_ops[0],
    395   1.1  christos   & sfmt_andi_ops[0],
    396   1.1  christos   & sfmt_add_ops[0],
    397   1.1  christos   & sfmt_andi_ops[0],
    398   1.1  christos   & sfmt_add_ops[0],
    399   1.1  christos   & sfmt_addi_ops[0],
    400   1.1  christos   & sfmt_divu_ops[0],
    401   1.1  christos   & sfmt_lb_ops[0],
    402   1.1  christos   & sfmt_lb_ops[0],
    403   1.1  christos   & sfmt_lh_ops[0],
    404   1.1  christos   & sfmt_lh_ops[0],
    405   1.1  christos   & sfmt_lw_ops[0],
    406   1.1  christos   & sfmt_divu_ops[0],
    407   1.1  christos   & sfmt_add_ops[0],
    408   1.1  christos   & sfmt_addi_ops[0],
    409   1.1  christos   & sfmt_add_ops[0],
    410   1.1  christos   & sfmt_andi_ops[0],
    411   1.1  christos   & sfmt_add_ops[0],
    412   1.1  christos   & sfmt_ori_ops[0],
    413   1.1  christos   & sfmt_andhii_ops[0],
    414   1.1  christos   & sfmt_rcsr_ops[0],
    415   1.1  christos   & sfmt_sb_ops[0],
    416   1.1  christos   & sfmt_sextb_ops[0],
    417   1.1  christos   & sfmt_sextb_ops[0],
    418   1.1  christos   & sfmt_sh_ops[0],
    419   1.1  christos   & sfmt_add_ops[0],
    420   1.1  christos   & sfmt_addi_ops[0],
    421   1.1  christos   & sfmt_add_ops[0],
    422   1.1  christos   & sfmt_addi_ops[0],
    423   1.1  christos   & sfmt_add_ops[0],
    424   1.1  christos   & sfmt_addi_ops[0],
    425   1.1  christos   & sfmt_add_ops[0],
    426   1.1  christos   & sfmt_sw_ops[0],
    427   1.1  christos   & sfmt_user_ops[0],
    428   1.1  christos   & sfmt_wcsr_ops[0],
    429   1.1  christos   & sfmt_add_ops[0],
    430   1.1  christos   & sfmt_andi_ops[0],
    431   1.1  christos   & sfmt_add_ops[0],
    432   1.1  christos   & sfmt_andi_ops[0],
    433   1.1  christos   & sfmt_break_ops[0],
    434   1.1  christos   & sfmt_break_ops[0],
    435   1.1  christos   & sfmt_bret_ops[0],
    436   1.1  christos   & sfmt_bret_ops[0],
    437   1.1  christos   & sfmt_bret_ops[0],
    438   1.1  christos   & sfmt_sextb_ops[0],
    439   1.1  christos   & sfmt_mvi_ops[0],
    440   1.1  christos   & sfmt_mvui_ops[0],
    441   1.1  christos   & sfmt_mvhi_ops[0],
    442   1.1  christos   & sfmt_mva_ops[0],
    443   1.1  christos   & sfmt_sextb_ops[0],
    444   1.1  christos   & sfmt_nop_ops[0],
    445   1.1  christos   & sfmt_lbgprel_ops[0],
    446   1.1  christos   & sfmt_lbgprel_ops[0],
    447   1.1  christos   & sfmt_lhgprel_ops[0],
    448   1.1  christos   & sfmt_lhgprel_ops[0],
    449   1.1  christos   & sfmt_lwgprel_ops[0],
    450   1.1  christos   & sfmt_sbgprel_ops[0],
    451   1.1  christos   & sfmt_shgprel_ops[0],
    452   1.1  christos   & sfmt_swgprel_ops[0],
    453   1.1  christos   & sfmt_lwgotrel_ops[0],
    454   1.1  christos   & sfmt_orhigotoffi_ops[0],
    455   1.1  christos   & sfmt_addgotoff_ops[0],
    456   1.1  christos   & sfmt_swgotoff_ops[0],
    457   1.1  christos   & sfmt_lwgotoff_ops[0],
    458   1.1  christos   & sfmt_shgotoff_ops[0],
    459   1.1  christos   & sfmt_lhgotoff_ops[0],
    460   1.1  christos   & sfmt_lhgotoff_ops[0],
    461   1.1  christos   & sfmt_sbgotoff_ops[0],
    462   1.1  christos   & sfmt_lbgotoff_ops[0],
    463   1.1  christos   & sfmt_lbgotoff_ops[0],
    464   1.1  christos };
    465   1.1  christos 
    466   1.1  christos /* Function to call before using the operand instance table.  */
    467   1.1  christos 
    468   1.1  christos void
    469   1.6  christos lm32_cgen_init_opinst_table (CGEN_CPU_DESC cd)
    470   1.1  christos {
    471   1.1  christos   int i;
    472   1.1  christos   const CGEN_OPINST **oi = & lm32_cgen_opinst_table[0];
    473   1.1  christos   CGEN_INSN *insns = (CGEN_INSN *) cd->insn_table.init_entries;
    474   1.1  christos   for (i = 0; i < MAX_INSNS; ++i)
    475   1.1  christos     insns[i].opinst = oi[i];
    476   1.1  christos }
    477