1 /* Instruction opcode header for openrisc.
3 THIS FILE IS MACHINE GENERATED WITH CGEN.
5 Copyright 1996-2005 Free Software Foundation, Inc.
7 This file is part of the GNU Binutils and/or GDB, the GNU debugger.
9 This program 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 2, or (at your option)
14 This program is distributed in the hope that it will be useful,
15 but WITHOUT ANY WARRANTY; without even the implied warranty of
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 GNU General Public License for more details.
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 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
25 #ifndef OPENRISC_OPC_H
26 #define OPENRISC_OPC_H
29 #undef CGEN_DIS_HASH_SIZE
30 #define CGEN_DIS_HASH_SIZE 64
32 #define CGEN_DIS_HASH(buffer, value) (((unsigned char *) (buffer))[0] >> 2)
34 extern long openrisc_sign_extend_16bit
PARAMS ((long));
36 /* Enum declaration for openrisc instruction types. */
37 typedef enum cgen_insn_type
{
38 OPENRISC_INSN_INVALID
, OPENRISC_INSN_L_J
, OPENRISC_INSN_L_JAL
, OPENRISC_INSN_L_JR
39 , OPENRISC_INSN_L_JALR
, OPENRISC_INSN_L_BAL
, OPENRISC_INSN_L_BNF
, OPENRISC_INSN_L_BF
40 , OPENRISC_INSN_L_BRK
, OPENRISC_INSN_L_RFE
, OPENRISC_INSN_L_SYS
, OPENRISC_INSN_L_NOP
41 , OPENRISC_INSN_L_MOVHI
, OPENRISC_INSN_L_MFSR
, OPENRISC_INSN_L_MTSR
, OPENRISC_INSN_L_LW
42 , OPENRISC_INSN_L_LBZ
, OPENRISC_INSN_L_LBS
, OPENRISC_INSN_L_LHZ
, OPENRISC_INSN_L_LHS
43 , OPENRISC_INSN_L_SW
, OPENRISC_INSN_L_SB
, OPENRISC_INSN_L_SH
, OPENRISC_INSN_L_SLL
44 , OPENRISC_INSN_L_SLLI
, OPENRISC_INSN_L_SRL
, OPENRISC_INSN_L_SRLI
, OPENRISC_INSN_L_SRA
45 , OPENRISC_INSN_L_SRAI
, OPENRISC_INSN_L_ROR
, OPENRISC_INSN_L_RORI
, OPENRISC_INSN_L_ADD
46 , OPENRISC_INSN_L_ADDI
, OPENRISC_INSN_L_SUB
, OPENRISC_INSN_L_SUBI
, OPENRISC_INSN_L_AND
47 , OPENRISC_INSN_L_ANDI
, OPENRISC_INSN_L_OR
, OPENRISC_INSN_L_ORI
, OPENRISC_INSN_L_XOR
48 , OPENRISC_INSN_L_XORI
, OPENRISC_INSN_L_MUL
, OPENRISC_INSN_L_MULI
, OPENRISC_INSN_L_DIV
49 , OPENRISC_INSN_L_DIVU
, OPENRISC_INSN_L_SFGTS
, OPENRISC_INSN_L_SFGTU
, OPENRISC_INSN_L_SFGES
50 , OPENRISC_INSN_L_SFGEU
, OPENRISC_INSN_L_SFLTS
, OPENRISC_INSN_L_SFLTU
, OPENRISC_INSN_L_SFLES
51 , OPENRISC_INSN_L_SFLEU
, OPENRISC_INSN_L_SFGTSI
, OPENRISC_INSN_L_SFGTUI
, OPENRISC_INSN_L_SFGESI
52 , OPENRISC_INSN_L_SFGEUI
, OPENRISC_INSN_L_SFLTSI
, OPENRISC_INSN_L_SFLTUI
, OPENRISC_INSN_L_SFLESI
53 , OPENRISC_INSN_L_SFLEUI
, OPENRISC_INSN_L_SFEQ
, OPENRISC_INSN_L_SFEQI
, OPENRISC_INSN_L_SFNE
54 , OPENRISC_INSN_L_SFNEI
57 /* Index of `invalid' insn place holder. */
58 #define CGEN_INSN_INVALID OPENRISC_INSN_INVALID
60 /* Total number of insns in table. */
61 #define MAX_INSNS ((int) OPENRISC_INSN_L_SFNEI + 1)
63 /* This struct records data prior to insertion or after extraction. */
99 #define CGEN_INIT_PARSE(od) \
102 #define CGEN_INIT_INSERT(od) \
105 #define CGEN_INIT_EXTRACT(od) \
108 #define CGEN_INIT_PRINT(od) \
113 #endif /* OPENRISC_OPC_H */