OSDN Git Service

7f72a0541c39e68f66427098614422ca9ac867ed
[pf3gnuchains/pf3gnuchains3x.git] / sid / component / cgen-cpu / m32r / m32r-desc.h
1 /* Misc. entries in the m32r description file.
2
3 THIS FILE IS MACHINE GENERATED WITH CGEN.
4
5 Copyright (C) 2000-2009 Red Hat, Inc.
6
7 This file is part of the Red Hat simulators.
8
9
10 */
11
12 #ifndef DESC_M32R_H
13 #define DESC_M32R_H
14
15 #include "cgen/bitset.h"
16
17 namespace m32r {
18
19 // Enums.
20
21 /* Enum declaration for insn format enums.  */
22 typedef enum insn_op1 {
23   OP1_0, OP1_1, OP1_2, OP1_3
24  , OP1_4, OP1_5, OP1_6, OP1_7
25  , OP1_8, OP1_9, OP1_10, OP1_11
26  , OP1_12, OP1_13, OP1_14, OP1_15
27 } INSN_OP1;
28
29 /* Enum declaration for op2 enums.  */
30 typedef enum insn_op2 {
31   OP2_0, OP2_1, OP2_2, OP2_3
32  , OP2_4, OP2_5, OP2_6, OP2_7
33  , OP2_8, OP2_9, OP2_10, OP2_11
34  , OP2_12, OP2_13, OP2_14, OP2_15
35 } INSN_OP2;
36
37 /* Enum declaration for .  */
38 typedef enum gr_names {
39   H_GR_FP = 13, H_GR_LR = 14, H_GR_SP = 15, H_GR_R0 = 0
40  , H_GR_R1 = 1, H_GR_R2 = 2, H_GR_R3 = 3, H_GR_R4 = 4
41  , H_GR_R5 = 5, H_GR_R6 = 6, H_GR_R7 = 7, H_GR_R8 = 8
42  , H_GR_R9 = 9, H_GR_R10 = 10, H_GR_R11 = 11, H_GR_R12 = 12
43  , H_GR_R13 = 13, H_GR_R14 = 14, H_GR_R15 = 15
44 } GR_NAMES;
45
46 /* Enum declaration for .  */
47 typedef enum cr_names {
48   H_CR_PSW = 0, H_CR_CBR = 1, H_CR_SPI = 2, H_CR_SPU = 3
49  , H_CR_BPC = 6, H_CR_BBPSW = 8, H_CR_BBPC = 14, H_CR_EVB = 5
50  , H_CR_CR0 = 0, H_CR_CR1 = 1, H_CR_CR2 = 2, H_CR_CR3 = 3
51  , H_CR_CR4 = 4, H_CR_CR5 = 5, H_CR_CR6 = 6, H_CR_CR7 = 7
52  , H_CR_CR8 = 8, H_CR_CR9 = 9, H_CR_CR10 = 10, H_CR_CR11 = 11
53  , H_CR_CR12 = 12, H_CR_CR13 = 13, H_CR_CR14 = 14, H_CR_CR15 = 15
54 } CR_NAMES;
55
56 // Insn attribute indices.
57
58 /* Enum declaration for cgen_insn attrs.  */
59 typedef enum cgen_insn_attr {
60   CGEN_INSN_ALIAS, CGEN_INSN_VIRTUAL, CGEN_INSN_UNCOND_CTI, CGEN_INSN_COND_CTI
61  , CGEN_INSN_SKIP_CTI, CGEN_INSN_DELAY_SLOT, CGEN_INSN_RELAXABLE, CGEN_INSN_RELAXED
62  , CGEN_INSN_NO_DIS, CGEN_INSN_PBB, CGEN_INSN_FILL_SLOT, CGEN_INSN_SPECIAL
63  , CGEN_INSN_SPECIAL_M32R, CGEN_INSN_SPECIAL_FLOAT, CGEN_INSN_END_BOOLS, CGEN_INSN_START_NBOOLS = 31
64  , CGEN_INSN_MACH, CGEN_INSN_PIPE, CGEN_INSN_END_NBOOLS
65 } CGEN_INSN_ATTR;
66
67 /* Number of non-boolean elements in cgen_insn_attr.  */
68 #define CGEN_INSN_NBOOL_ATTRS (CGEN_INSN_END_NBOOLS - CGEN_INSN_START_NBOOLS - 1)
69
70 // Attributes.
71
72 /* Enum declaration for machine type selection.  */
73 typedef enum mach_attr {
74   MACH_BASE, MACH_M32R, MACH_M32RX, MACH_M32R2
75  , MACH_MAX
76 } MACH_ATTR;
77
78 /* Enum declaration for instruction set selection.  */
79 typedef enum isa_attr {
80   ISA_M32R, ISA_MAX
81 } ISA_ATTR;
82
83 /* Enum declaration for parallel execution pipeline selection.  */
84 typedef enum pipe_attr {
85   PIPE_NONE, PIPE_O, PIPE_S, PIPE_OS
86  , PIPE_O_OS
87 } PIPE_ATTR;
88
89 // Insn attributes.
90
91 struct m32r_insn_attr {
92   unsigned int bools;
93   unsigned int mach;
94   enum pipe_attr pipe;
95   inline unsigned int get_mach_attr () { return mach; }
96   inline enum pipe_attr get_pipe_attr () { return pipe; }
97   inline int get_alias_attr () { return (bools & (1<<CGEN_INSN_ALIAS)) != 0; }
98   inline int get_virtual_attr () { return (bools & (1<<CGEN_INSN_VIRTUAL)) != 0; }
99   inline int get_uncond_cti_attr () { return (bools & (1<<CGEN_INSN_UNCOND_CTI)) != 0; }
100   inline int get_cond_cti_attr () { return (bools & (1<<CGEN_INSN_COND_CTI)) != 0; }
101   inline int get_skip_cti_attr () { return (bools & (1<<CGEN_INSN_SKIP_CTI)) != 0; }
102   inline int get_delay_slot_attr () { return (bools & (1<<CGEN_INSN_DELAY_SLOT)) != 0; }
103   inline int get_relaxable_attr () { return (bools & (1<<CGEN_INSN_RELAXABLE)) != 0; }
104   inline int get_relaxed_attr () { return (bools & (1<<CGEN_INSN_RELAXED)) != 0; }
105   inline int get_no_dis_attr () { return (bools & (1<<CGEN_INSN_NO_DIS)) != 0; }
106   inline int get_pbb_attr () { return (bools & (1<<CGEN_INSN_PBB)) != 0; }
107   inline int get_fill_slot_attr () { return (bools & (1<<CGEN_INSN_FILL_SLOT)) != 0; }
108   inline int get_special_attr () { return (bools & (1<<CGEN_INSN_SPECIAL)) != 0; }
109   inline int get_special_m32r_attr () { return (bools & (1<<CGEN_INSN_SPECIAL_M32R)) != 0; }
110   inline int get_special_float_attr () { return (bools & (1<<CGEN_INSN_SPECIAL_FLOAT)) != 0; }
111 };
112
113 #define MACH_M32R_INSN_CHUNK_BITSIZE 0
114
115 } // end m32r namespace
116
117 #endif /* DESC_M32R_H */