summaryrefslogtreecommitdiff
path: root/includes/compiler/PPCError.h
blob: 89e3fe4455f58b67fd0ba59cd2ca90ef1e0f2b05 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
#ifndef COMPILER_PPCERROR_H
#define COMPILER_PPCERROR_H

#include "compiler/common.h"

enum {
    // "ambiguous use of local variable(%n) and assembler register(%n) name"
    PPCErrorStr100 = 100,
    // "ambiguous use of argument(%n) and assembler register(%n) name"
    PPCErrorStr101 = 101,
    // "all registers are explictly used, can't color virtual '%u' registers"
    PPCErrorStr102 = 102,
    // "parameter count to AltiVec intrinsic '%u' is %i, expected %i"
    PPCErrorStr103 = 103,
    // "invalid parameter to AltiVec intrinsic '%u', %u( %t ) is not allowed"
    PPCErrorStr104 = 104,
    // "invalid parameters to AltiVec intrinsic '%u', %u( %t,%t ) is not allowed"
    PPCErrorStr105 = 105,
    // "invalid parameters to AltiVec intrinsic '%u', %u( %t, %t, %t ) is not allowed"
    PPCErrorStr106 = 106,
    // "invalid parameter type to AltiVec intrinsic '%u'"
    PPCErrorStr107 = 107,
    // "invalid constant parameter to AltiVec intrinsic '%u',\n'%u' last argument only accepts %i-bit constants"
    PPCErrorStr108 = 108,
    // "label displacement is too far (must be within 32K bytes)"
    PPCErrorStr109 = 109,
    // "too few initializers for '%t'"
    PPCErrorStr110 = 110,
    // "too many initializers for '%t'"
    PPCErrorStr111 = 111,
    // "illegal initialization of AltiVec vector data"
    PPCErrorStr112 = 112,
    // "out of range for legal initialization of AltiVec '%t'"
    PPCErrorStr113 = 113,
    // "illegal initialization or cast of AltiVec vector data"
    PPCErrorStr114 = 114,
    // "use of AltiVec Model requires AltiVec-capable scheduler"
    PPCErrorStr115 = 115,
    // "can't allocate AltiVec stack pointer, all registers already allocated (try optimize level 1 and higher)"
    PPCErrorStr116 = 116,
    // "'%u' register not applicable to this processor"
    PPCErrorStr117 = 117,
    // "only difference expressions are allowed on object\n (%u %u %u is not allowed)"
    PPCErrorStr118 = 118,
    // "'%u' expressions is not allowed on an object\n(only %u +/- constant expression is allowed)"
    PPCErrorStr119 = 119,
    // "'%u' operator is not allowed with an object\n(only constant expression + %u is allowed)"
    PPCErrorStr120 = 120,
    // "only 2 objects are allowed in assembler expressions (%u, %u, %u)"
    PPCErrorStr121 = 121,
    // "illegal object reference in constant expression (%u)"
    PPCErrorStr122 = 122,
    // "illegal use of object difference (%u-%u)"
    PPCErrorStr123 = 123,
    // "illegal can't mix labels and objects in expression (%u-%u)"
    PPCErrorStr124 = 124,
    // "illegal use of label (%u), can only use label difference in this context"
    PPCErrorStr125 = 125,
    // "illegal expression only one of {ha16, hi16, lo16, @h, @ha, @l} is allowed"
    PPCErrorStr126 = 126,
    // "illegal use of register pair (%u) use %u@hiword or %u@loword"
    PPCErrorStr127 = 127,
    // "cannot redefine uninitialized pooled data unless original definition is in common section"
    PPCErrorStr128 = 128,
    // "identifier '%n' has already been defined in the '%n' section"
    PPCErrorStr129 = 129,
    // "floating point type was checked in %u at line %i"
    PPCErrorStr130 = 130,
    // "symbol '%n' would generate floating point instructions\n(HW floating point is off)"
    PPCErrorStr131 = 131,
    // "processor settings don't support hardware floating point instructions"
    PPCErrorStr132 = 132,
    // "invalid operand values: %i must be >= %i"
    PPCErrorStr133 = 133,
    // "invalid operand values: %i + %i must be <= 32"
    PPCErrorStr134 = 134,
    // "pragma section expected valid %u addressing mode"
    PPCErrorStr135 = 135,
    // "pragma section expected unquoted %u addressing mode"
    PPCErrorStr136 = 136,
    // "pragma section expected %u"
    PPCErrorStr137 = 137,
    // "pragma section expected unquoted object type; found \"%u\""
    PPCErrorStr138 = 138,
    // "pragma section expected unquoted identifier for address mode; found \"%u\""
    PPCErrorStr139 = 139,
    // "invalid section name '%u'"
    PPCErrorStr140 = 140,
    // "initialized sections must have uniquely named uninitialized data sections;\n'%u' is already defined for another section"
    PPCErrorStr141 = 141,
    // "'sda_rel' addressing mode can only be used with the PPC EABI defined small data sections"
    PPCErrorStr142 = 142,
    // "only use the initialized section name to refer to the section\n'%u' is the name of an uninitialized data section"
    PPCErrorStr143 = 143,
    // "section '%u' already has uninitialized data section '%u'"
    PPCErrorStr144 = 144,
    // "sections used for data must have an uninitialized data section"
    PPCErrorStr145 = 145,
    // "section '%u' must have an uninitialized data section for object '%n'"
    PPCErrorStr146 = 146,
    // "unknown section name '%u'"
    PPCErrorStr147 = 147,
    // "pragma section expected a quoted section name"
    PPCErrorStr148 = 148,
    // "'%u' parameter for pragma section is out of order"
    PPCErrorStr149 = 149,
    // "'%u' parameter for pragma section is repeated"
    PPCErrorStr150 = 150,
    // "unknown parameter '%u' for pragma section"
    PPCErrorStr151 = 151,
    // "'%u' is only valid for '%u' addressing mode"
    PPCErrorStr152 = 152,
    // "pragma section expected an object type or access permission and/or a quoted section name"
    PPCErrorStr153 = 153,
    // "unknown or possibly out of order parameter '%u' for pragma section"
    PPCErrorStr154 = 154,
    // "pragma section expected a quoted uninitialized section name\nor the unquoted identifiers 'data_mode', 'code_mode', 'R', 'RW', 'RX' or 'RWX'"
    PPCErrorStr155 = 155,
    // "this pragma is ignored when it occurs within a function"
    PPCErrorStr156 = 156,
    // "'%u' object '%n' is being put into section '%u' with access permission '%u';\nsection's access permission will be changed to '%u'"
    PPCErrorStr157 = 157,
    // "pragma section expected an unquoted access permission; found \"%u\""
    PPCErrorStr158 = 158,
    // "pragma section expected object type or access permission, but not both"
    PPCErrorStr159 = 159,
    // "pragma rel109_offset expected an integer (0, 1, 2 or 3)"
    PPCErrorStr160 = 160,
    // "pragma function_align expected an integer (4, 8, 16, 32, 64 or 128)"
    PPCErrorStr161 = 161,
    // "address part of section name '%u' is allowed 1 - 8 hexidecimal digits"
    PPCErrorStr162 = 162,
    // "interrupt function '%o' is bigger than 256 bytes (%i bytes big)"
    PPCErrorStr163 = 163,
    // "too many #pragma section directives (max is %i)"
    PPCErrorStr164 = 164,
    // "EPPC Processor preference panel is incompatible with this compiler"
    PPCErrorStr165 = 165,
    // "illegal forward label or undefined symbol (%u) in constant expression"
    PPCErrorStr166 = 166,
    // "%u was not assigned to a register (try using register qualifier)"
    PPCErrorStr167 = 167,
    // "@hiword can't be used in this context (only works on variables not registers)"
    PPCErrorStr168 = 168,
    // "floating point constants are not allowed if floating point is off."
    PPCErrorStr169 = 169,
    // "possible unintended use of address of %u in constant expression\nUse 'la' or 'las' simplified mnemonics to load addresses"
    PPCErrorStr170 = 170,
    // "expected a register name here"
    PPCErrorStr171 = 171,
    // "out of registers for local variable %u\nTry using optimization level 1 or greater"
    PPCErrorStr172 = 172,
    // "function level assembler can not be inlined.\nUse 'asm { instr... }' blocks inside an inline function."
    PPCErrorStr173 = 173,
    // "PCode cannot access the global variable %o, because it has been stored in the TOC."
    PPCErrorStr174 = 174,
    // "PCode cannot use long long."
    PPCErrorStr175 = 175,
    // "PCode function cannot take a variable argument list."
    PPCErrorStr176 = 176,
    // "illegal use of label or object in a absolute branch."
    PPCErrorStr177 = 177,
    // "AltiVec PIM requires warning for volatile parameter to %u."
    PPCErrorStr178 = 178,
    // "Mach-O can't load a float constant directly. Use addis rX,picbase,ha16(float_const_var); lfd fX,lo16(float_const_var)(rX)"
    PPCErrorStr179 = 179,
    // "Illegal addressing mode (32 bit). Try constructing an address using addis rX,rPIC,ha16(var); lwz rX,lo16(var)(rX)"
    PPCErrorStr180 = 180,
    // "%o cannot be an interrupt function with variable argument list"
    PPCErrorStr181 = 181,
    // "incoming parameter area > 32K"
    PPCErrorStr182 = 182,
    // "outgoing parameter area > 32K"
    PPCErrorStr183 = 183,
    // "N/A"
    PPCErrorStr184 = 184,
    // "when there is a frame, it is best to have frfree just before the %u"
    PPCErrorStr185 = 185,
    // "when there is a frame, it is best to have only one explicit exit\n(try branching to a label just before the frfree)"
    PPCErrorStr186 = 186,
    // "when there is a frame, it is generally best to have a %u just after the frfree"
    PPCErrorStr187 = 187,
    // "frfree directive is only allowed at the end of a function. To exit from the middle of a function, branch to a frfree at the end."
    PPCErrorStr188 = 188,
    // "Mach-O 'pic' model is only supported if 'dynamic' is on."
    PPCErrorStr189 = 189,
    // "Function '%u' contains no instructions."
    PPCErrorStr190 = 190,
    // "pragma min_struct_alignment expected an integer (4, 8, 16, 32, 64 or 128)."
    PPCErrorStr191 = 191,
    // "correct syntax is __declspec(section \"sect_name\") where sect_name is a quoted string."
    PPCErrorStr192 = 192,
    // "global register variable declarations are ignored when they occur within a function."
    PPCErrorStr193 = 193,
    // "global register variable declarations must be variables of storage class static, extern or register."
    PPCErrorStr194 = 194,
    // "global register variable declaration syntax is storage_class type var_name asm (\"xn\");\nstorage_class is extern, static or register, \"xn\" is quoted, 'x' should be r,f or v,\nand 'n' should be a nonvolatile register number."
    PPCErrorStr195 = 195,
    // "global register variable declaration supports %i registers beginning with %u%i for this register class."
    PPCErrorStr196 = 196,
    // "global register variable assigned to '%u%i' can not be reassigned to '%u%i'."
    PPCErrorStr197 = 197,
    // "global register variable '%n' already is assigned to '%u%i'."
    PPCErrorStr198 = 198,
    // "gaps between assigned global register variables (nothing at '%u%i') are not permitted."
    PPCErrorStr199 = 199,
    // "global register variable is assigned to register class '%u' but should be '%u'."
    PPCErrorStr200 = 200,
    // "global register variables can only use single registers (cannot be long longs or software fp doubles)."
    PPCErrorStr201 = 201,
    // "global register variable '%o' cannot be assigned %u%i because that register has already been assigned to something else."
    PPCErrorStr202 = 202,
    // "global and static register variables cannot have the same name: '%n'."
    PPCErrorStr203 = 203,
    // "global register variables must be variables; '%n' isn't a variable."
    PPCErrorStr204 = 204,
    // "type cannot be made into a global register variable;\nonly scalers, doubles, floats and vectors are supported."
    PPCErrorStr205 = 205,
    // "cannot declare global register variables after code has been generated."
    PPCErrorStr206 = 206,
    // "correct syntax is __declspec(interrupt flags) where optional flags can be 1 or more of following space separated list:\nenable SRR DAR DSISR fprs vrs nowarn."
    PPCErrorStr207 = 207,
    // "pragma processor expected an integer, such as 603, or a string (no quotes), such as 603e."
    PPCErrorStr208 = 208,
    // "pragma prepare_compress is ignored if an appropriate processor is not passed to pragma processor."
    PPCErrorStr209 = 209,
    // "intrinsic %u argument %i is not constant"
    PPCErrorStr210 = 210,
    // "intrinsic %u argument %i constant value value %i is not in range %i..%i using %i"
    PPCErrorStr211 = 211,
    PPCErrorStrMAX = 212
};

extern void PPCError_Error(int code, ...);
extern void PPCError_Warning(int code, ...);
extern void PPCError_Message(char *format, ...);
extern void PPCError_ErrorTerm(short code, ...);

#endif