9 #ifndef FIRM_BE_SPARC_GEN_SPARC_NEW_NODES_H
10 #define FIRM_BE_SPARC_GEN_SPARC_NEW_NODES_H
15 typedef enum sparc_opcodes {
42 iro_sparc_RestoreZero,
83 int is_sparc_irn(
const ir_node *node);
84 int is_sparc_op(
const ir_op *op);
86 int get_sparc_irn_opcode(
const ir_node *node);
87 void sparc_create_opcodes(
void);
88 void sparc_free_opcodes(
void);
90 extern ir_op *op_sparc_Add;
92 static inline bool is_sparc_Add(
ir_node const *
const n)
106 extern ir_op *op_sparc_AddCC;
108 static inline bool is_sparc_AddCC(
ir_node const *
const n)
122 extern ir_op *op_sparc_AddCCZero;
124 static inline bool is_sparc_AddCCZero(
ir_node const *
const n)
138 extern ir_op *op_sparc_AddCC_t;
140 static inline bool is_sparc_AddCC_t(
ir_node const *
const n)
150 extern ir_op *op_sparc_AddSP;
152 static inline bool is_sparc_AddSP(
ir_node const *
const n)
162 extern ir_op *op_sparc_AddX;
164 static inline bool is_sparc_AddX(
ir_node const *
const n)
178 extern ir_op *op_sparc_AddX_t;
180 static inline bool is_sparc_AddX_t(
ir_node const *
const n)
190 extern ir_op *op_sparc_And;
192 static inline bool is_sparc_And(
ir_node const *
const n)
206 extern ir_op *op_sparc_AndCCZero;
208 static inline bool is_sparc_AndCCZero(
ir_node const *
const n)
222 extern ir_op *op_sparc_AndN;
224 static inline bool is_sparc_AndN(
ir_node const *
const n)
238 extern ir_op *op_sparc_AndNCCZero;
240 static inline bool is_sparc_AndNCCZero(
ir_node const *
const n)
254 extern ir_op *op_sparc_Ba;
256 static inline bool is_sparc_Ba(
ir_node const *
const n)
266 extern ir_op *op_sparc_Bicc;
268 static inline bool is_sparc_Bicc(
ir_node const *
const n)
278 extern ir_op *op_sparc_Call;
280 static inline bool is_sparc_Call(
ir_node const *
const n)
288 ir_node *new_bd_sparc_Call_imm(
dbg_info *dbgi,
ir_node *block,
int const arity,
ir_node *
const *
const in, arch_register_req_t
const **
const in_reqs,
int n_res,
ir_type *call_type,
ir_entity *entity, int32_t offset,
bool aggregate_return);
292 ir_node *new_bd_sparc_Call_reg(
dbg_info *dbgi,
ir_node *block,
int const arity,
ir_node *
const *
const in, arch_register_req_t
const **
const in_reqs,
int n_res,
ir_type *call_type,
bool aggregate_return);
294 extern ir_op *op_sparc_Cas;
296 static inline bool is_sparc_Cas(
ir_node const *
const n)
306 extern ir_op *op_sparc_Cmp;
308 static inline bool is_sparc_Cmp(
ir_node const *
const n)
322 extern ir_op *op_sparc_FrameAddr;
324 static inline bool is_sparc_FrameAddr(
ir_node const *
const n)
334 extern ir_op *op_sparc_Ld;
336 static inline bool is_sparc_Ld(
ir_node const *
const n)
350 extern ir_op *op_sparc_Ldf;
352 static inline bool is_sparc_Ldf(
ir_node const *
const n)
370 extern ir_op *op_sparc_Mul;
372 static inline bool is_sparc_Mul(
ir_node const *
const n)
386 extern ir_op *op_sparc_MulCCZero;
388 static inline bool is_sparc_MulCCZero(
ir_node const *
const n)
402 extern ir_op *op_sparc_Or;
404 static inline bool is_sparc_Or(
ir_node const *
const n)
418 extern ir_op *op_sparc_OrCCZero;
420 static inline bool is_sparc_OrCCZero(
ir_node const *
const n)
434 extern ir_op *op_sparc_OrN;
436 static inline bool is_sparc_OrN(
ir_node const *
const n)
450 extern ir_op *op_sparc_OrNCCZero;
452 static inline bool is_sparc_OrNCCZero(
ir_node const *
const n)
466 extern ir_op *op_sparc_Restore;
468 static inline bool is_sparc_Restore(
ir_node const *
const n)
482 extern ir_op *op_sparc_RestoreZero;
484 static inline bool is_sparc_RestoreZero(
ir_node const *
const n)
494 extern ir_op *op_sparc_Return;
496 static inline bool is_sparc_Return(
ir_node const *
const n)
504 ir_node *new_bd_sparc_Return_imm(
dbg_info *dbgi,
ir_node *block,
int const arity,
ir_node *
const *
const in, arch_register_req_t
const **
const in_reqs,
ir_entity *entity, int32_t offset);
508 ir_node *new_bd_sparc_Return_reg(
dbg_info *dbgi,
ir_node *block,
int const arity,
ir_node *
const *
const in, arch_register_req_t
const **
const in_reqs);
510 extern ir_op *op_sparc_SDiv;
512 static inline bool is_sparc_SDiv(
ir_node const *
const n)
526 extern ir_op *op_sparc_SMulh;
528 static inline bool is_sparc_SMulh(
ir_node const *
const n)
542 extern ir_op *op_sparc_Save;
544 static inline bool is_sparc_Save(
ir_node const *
const n)
558 extern ir_op *op_sparc_SetHi;
560 static inline bool is_sparc_SetHi(
ir_node const *
const n)
570 extern ir_op *op_sparc_Sll;
572 static inline bool is_sparc_Sll(
ir_node const *
const n)
586 extern ir_op *op_sparc_Sra;
588 static inline bool is_sparc_Sra(
ir_node const *
const n)
602 extern ir_op *op_sparc_Srl;
604 static inline bool is_sparc_Srl(
ir_node const *
const n)
618 extern ir_op *op_sparc_St;
620 static inline bool is_sparc_St(
ir_node const *
const n)
634 extern ir_op *op_sparc_Stbar;
636 static inline bool is_sparc_Stbar(
ir_node const *
const n)
646 extern ir_op *op_sparc_Stf;
648 static inline bool is_sparc_Stf(
ir_node const *
const n)
666 extern ir_op *op_sparc_Sub;
668 static inline bool is_sparc_Sub(
ir_node const *
const n)
682 extern ir_op *op_sparc_SubCC;
684 static inline bool is_sparc_SubCC(
ir_node const *
const n)
698 extern ir_op *op_sparc_SubCCZero;
700 static inline bool is_sparc_SubCCZero(
ir_node const *
const n)
714 extern ir_op *op_sparc_SubCC_t;
716 static inline bool is_sparc_SubCC_t(
ir_node const *
const n)
726 extern ir_op *op_sparc_SubSP;
728 static inline bool is_sparc_SubSP(
ir_node const *
const n)
742 extern ir_op *op_sparc_SubX;
744 static inline bool is_sparc_SubX(
ir_node const *
const n)
758 extern ir_op *op_sparc_SubX_t;
760 static inline bool is_sparc_SubX_t(
ir_node const *
const n)
770 extern ir_op *op_sparc_SwitchJmp;
772 static inline bool is_sparc_SwitchJmp(
ir_node const *
const n)
782 extern ir_op *op_sparc_UDiv;
784 static inline bool is_sparc_UDiv(
ir_node const *
const n)
798 extern ir_op *op_sparc_UMulh;
800 static inline bool is_sparc_UMulh(
ir_node const *
const n)
814 extern ir_op *op_sparc_XNor;
816 static inline bool is_sparc_XNor(
ir_node const *
const n)
830 extern ir_op *op_sparc_XNorCCZero;
832 static inline bool is_sparc_XNorCCZero(
ir_node const *
const n)
846 extern ir_op *op_sparc_Xor;
848 static inline bool is_sparc_Xor(
ir_node const *
const n)
862 extern ir_op *op_sparc_XorCCZero;
864 static inline bool is_sparc_XorCCZero(
ir_node const *
const n)
878 extern ir_op *op_sparc_fabs;
880 static inline bool is_sparc_fabs(
ir_node const *
const n)
898 extern ir_op *op_sparc_fadd;
900 static inline bool is_sparc_fadd(
ir_node const *
const n)
918 extern ir_op *op_sparc_fbfcc;
920 static inline bool is_sparc_fbfcc(
ir_node const *
const n)
930 extern ir_op *op_sparc_fcmp;
932 static inline bool is_sparc_fcmp(
ir_node const *
const n)
950 extern ir_op *op_sparc_fdiv;
952 static inline bool is_sparc_fdiv(
ir_node const *
const n)
970 extern ir_op *op_sparc_fftof;
972 static inline bool is_sparc_fftof(
ir_node const *
const n)
1002 extern ir_op *op_sparc_fftoi;
1004 static inline bool is_sparc_fftoi(
ir_node const *
const n)
1022 extern ir_op *op_sparc_fitof;
1024 static inline bool is_sparc_fitof(
ir_node const *
const n)
1042 extern ir_op *op_sparc_fmul;
1044 static inline bool is_sparc_fmul(
ir_node const *
const n)
1062 extern ir_op *op_sparc_fneg;
1064 static inline bool is_sparc_fneg(
ir_node const *
const n)
1082 extern ir_op *op_sparc_fsub;
1084 static inline bool is_sparc_fsub(
ir_node const *
const n)
1103 typedef enum pn_sparc_AddCC {
1104 pn_sparc_AddCC_res = 0,
1105 pn_sparc_AddCC_flags = 1,
1108 typedef enum pn_sparc_AddCC_t {
1109 pn_sparc_AddCC_t_res = 0,
1110 pn_sparc_AddCC_t_flags = 1,
1113 typedef enum n_sparc_AddCC_t {
1114 n_sparc_AddCC_t_left = 0,
1115 n_sparc_AddCC_t_right = 1,
1118 typedef enum pn_sparc_AddSP {
1119 pn_sparc_AddSP_stack = 0,
1122 typedef enum n_sparc_AddSP {
1123 n_sparc_AddSP_stack = 0,
1124 n_sparc_AddSP_size = 1,
1127 typedef enum n_sparc_AddX_t {
1128 n_sparc_AddX_t_left = 0,
1129 n_sparc_AddX_t_right = 1,
1130 n_sparc_AddX_t_flags_input = 2,
1133 typedef enum pn_sparc_Bicc {
1134 pn_sparc_Bicc_false = 0,
1135 pn_sparc_Bicc_true = 1,
1138 typedef enum n_sparc_Bicc {
1139 n_sparc_Bicc_flags = 0,
1142 typedef enum pn_sparc_Call {
1143 pn_sparc_Call_M = 0,
1144 pn_sparc_Call_stack = 1,
1145 pn_sparc_Call_first_result = 2,
1148 typedef enum pn_sparc_Cas {
1149 pn_sparc_Cas_res = 0,
1153 typedef enum n_sparc_Cas {
1154 n_sparc_Cas_ptr = 0,
1155 n_sparc_Cas_old = 1,
1156 n_sparc_Cas_new = 2,
1157 n_sparc_Cas_mem = 3,
1160 typedef enum n_sparc_FrameAddr {
1161 n_sparc_FrameAddr_base = 0,
1162 } n_sparc_FrameAddr;
1164 typedef enum pn_sparc_Ld {
1165 pn_sparc_Ld_res = 0,
1169 typedef enum n_sparc_Ld {
1174 typedef enum pn_sparc_Ldf {
1175 pn_sparc_Ldf_res = 0,
1179 typedef enum n_sparc_Ldf {
1180 n_sparc_Ldf_ptr = 0,
1181 n_sparc_Ldf_mem = 1,
1184 typedef enum pn_sparc_Restore {
1185 pn_sparc_Restore_stack = 0,
1186 pn_sparc_Restore_res = 1,
1189 typedef enum pn_sparc_RestoreZero {
1190 pn_sparc_RestoreZero_stack = 0,
1191 } pn_sparc_RestoreZero;
1193 typedef enum n_sparc_RestoreZero {
1194 n_sparc_RestoreZero_stack = 0,
1195 n_sparc_RestoreZero_frame_pointer = 1,
1196 } n_sparc_RestoreZero;
1198 typedef enum n_sparc_Return {
1199 n_sparc_Return_mem = 0,
1200 n_sparc_Return_sp = 1,
1201 n_sparc_Return_first_result = 2,
1204 typedef enum pn_sparc_SDiv {
1205 pn_sparc_SDiv_res = 0,
1206 pn_sparc_SDiv_M = 1,
1209 typedef enum n_sparc_SDiv {
1210 n_sparc_SDiv_mem = 0,
1211 n_sparc_SDiv_dividend_high = 1,
1212 n_sparc_SDiv_dividend_low = 2,
1213 n_sparc_SDiv_divisor = 3,
1216 typedef enum pn_sparc_Save {
1217 pn_sparc_Save_stack = 0,
1220 typedef enum n_sparc_Save {
1221 n_sparc_Save_stack = 0,
1224 typedef enum pn_sparc_SetHi {
1225 pn_sparc_SetHi_res = 0,
1228 typedef enum pn_sparc_St {
1232 typedef enum n_sparc_St {
1238 typedef enum pn_sparc_Stbar {
1239 pn_sparc_Stbar_M = 0,
1242 typedef enum n_sparc_Stbar {
1243 n_sparc_Stbar_mem = 0,
1246 typedef enum pn_sparc_Stf {
1250 typedef enum n_sparc_Stf {
1251 n_sparc_Stf_val = 0,
1252 n_sparc_Stf_ptr = 1,
1253 n_sparc_Stf_mem = 2,
1256 typedef enum pn_sparc_SubCC {
1257 pn_sparc_SubCC_res = 0,
1258 pn_sparc_SubCC_flags = 1,
1261 typedef enum pn_sparc_SubCC_t {
1262 pn_sparc_SubCC_t_res = 0,
1263 pn_sparc_SubCC_t_flags = 1,
1266 typedef enum n_sparc_SubCC_t {
1267 n_sparc_SubCC_t_left = 0,
1268 n_sparc_SubCC_t_right = 1,
1271 typedef enum pn_sparc_SubSP {
1272 pn_sparc_SubSP_stack = 0,
1273 pn_sparc_SubSP_addr = 1,
1274 pn_sparc_SubSP_M = 2,
1277 typedef enum n_sparc_SubSP {
1278 n_sparc_SubSP_stack = 0,
1281 typedef enum n_sparc_SubX_t {
1282 n_sparc_SubX_t_left = 0,
1283 n_sparc_SubX_t_right = 1,
1284 n_sparc_SubX_t_flags_input = 2,
1287 typedef enum pn_sparc_UDiv {
1288 pn_sparc_UDiv_res = 0,
1289 pn_sparc_UDiv_M = 1,
1292 typedef enum n_sparc_UDiv {
1293 n_sparc_UDiv_mem = 0,
1294 n_sparc_UDiv_dividend_high = 1,
1295 n_sparc_UDiv_dividend_low = 2,
1296 n_sparc_UDiv_divisor = 3,
1299 typedef enum n_sparc_fabs {
1300 n_sparc_fabs_val = 0,
1303 typedef enum n_sparc_fadd {
1304 n_sparc_fadd_left = 0,
1305 n_sparc_fadd_right = 1,
1308 typedef enum pn_sparc_fbfcc {
1309 pn_sparc_fbfcc_false = 0,
1310 pn_sparc_fbfcc_true = 1,
1313 typedef enum n_sparc_fbfcc {
1314 n_sparc_fbfcc_flags = 0,
1317 typedef enum pn_sparc_fdiv {
1318 pn_sparc_fdiv_res = 0,
1319 pn_sparc_fdiv_M = 1,
1322 typedef enum n_sparc_fdiv {
1323 n_sparc_fdiv_left = 0,
1324 n_sparc_fdiv_right = 1,
1327 typedef enum n_sparc_fmul {
1328 n_sparc_fmul_left = 0,
1329 n_sparc_fmul_right = 1,
1332 typedef enum n_sparc_fneg {
1333 n_sparc_fneg_val = 0,
1336 typedef enum n_sparc_fsub {
1337 n_sparc_fsub_left = 0,
1338 n_sparc_fsub_right = 1,
struct ir_type ir_type
Type.
struct dbg_info dbg_info
Source Reference.
struct ir_switch_table ir_switch_table
A switch table mapping integer numbers to proj-numbers of a Switch-node.
ir_op * get_irn_op(const ir_node *node)
Returns the opcode struct of the node.
struct ir_op ir_op
Node Opcode.
struct ir_entity ir_entity
Entity.
ir_relation
Relations for comparing numbers.
struct ir_mode ir_mode
SSA Value mode.
struct ir_node ir_node
Procedure Graph Node.