1 
2 #ifndef _ORC_LIMITS_H_
3 #define _ORC_LIMITS_H_
4 
5 #include <orc/orcutils.h>
6 
7 ORC_BEGIN_DECLS
8 
9 #define ORC_N_REGS (32*4)
10 #define ORC_N_INSNS 100
11 #define ORC_N_VARIABLES 64
12 #define ORC_N_ARRAYS 12
13 #define ORC_N_REGISTERS 20
14 #define ORC_N_FIXUPS 100
15 #define ORC_N_CONSTANTS 20
16 #define ORC_N_LABELS 40
17 #define ORC_N_COMPILER_VARIABLES (ORC_N_VARIABLES+32)
18 
19 #define ORC_GP_REG_BASE 32
20 #define ORC_VEC_REG_BASE 64
21 #define ORC_REG_INVALID 0
22 
23 #define ORC_STATIC_OPCODE_N_SRC 4
24 #define ORC_STATIC_OPCODE_N_DEST 2
25 
26 #define ORC_OPCODE_N_ARGS 4
27 #define ORC_N_TARGETS 10
28 #define ORC_N_RULE_SETS 10
29 
30 #define ORC_MAX_VAR_SIZE 8
31 
32 #define ORC_MAX_DEST_VARS 4
33 #define ORC_MAX_SRC_VARS 8
34 #define ORC_MAX_TEMP_VARS 16
35 #define ORC_MAX_CONST_VARS 8
36 #define ORC_MAX_PARAM_VARS 8
37 #define ORC_MAX_ACCUM_VARS 4
38 
39 enum {
40   ORC_VAR_D1,
41   ORC_VAR_D2,
42   ORC_VAR_D3,
43   ORC_VAR_D4,
44   ORC_VAR_S1,
45   ORC_VAR_S2,
46   ORC_VAR_S3,
47   ORC_VAR_S4,
48   ORC_VAR_S5,
49   ORC_VAR_S6,
50   ORC_VAR_S7,
51   ORC_VAR_S8,
52   ORC_VAR_A1,
53   ORC_VAR_A2,
54   ORC_VAR_A3,
55   ORC_VAR_A4,
56   ORC_VAR_C1,
57   ORC_VAR_C2,
58   ORC_VAR_C3,
59   ORC_VAR_C4,
60   ORC_VAR_C5,
61   ORC_VAR_C6,
62   ORC_VAR_C7,
63   ORC_VAR_C8,
64   ORC_VAR_P1,
65   ORC_VAR_P2,
66   ORC_VAR_P3,
67   ORC_VAR_P4,
68   ORC_VAR_P5,
69   ORC_VAR_P6,
70   ORC_VAR_P7,
71   ORC_VAR_P8,
72   ORC_VAR_T1,
73   ORC_VAR_T2,
74   ORC_VAR_T3,
75   ORC_VAR_T4,
76   ORC_VAR_T5,
77   ORC_VAR_T6,
78   ORC_VAR_T7,
79   ORC_VAR_T8,
80   ORC_VAR_T9,
81   ORC_VAR_T10,
82   ORC_VAR_T11,
83   ORC_VAR_T12,
84   ORC_VAR_T13,
85   ORC_VAR_T14,
86   ORC_VAR_T15,
87   ORC_VAR_T16
88 };
89 
90 
91 ORC_END_DECLS
92 
93 #endif
94 
95