9 #ifndef FIRM_BE_SPARC_GEN_SPARC_NEW_NODES_H 10 #define FIRM_BE_SPARC_GEN_SPARC_NEW_NODES_H 14 #include "sparc_nodes_attr.h" 16 typedef enum sparc_opcodes {
41 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_AddCC_t;
124 static inline bool is_sparc_AddCC_t(
ir_node const *
const n)
134 extern ir_op *op_sparc_AddSP;
136 static inline bool is_sparc_AddSP(
ir_node const *
const n)
146 extern ir_op *op_sparc_AddX;
148 static inline bool is_sparc_AddX(
ir_node const *
const n)
162 extern ir_op *op_sparc_AddX_t;
164 static inline bool is_sparc_AddX_t(
ir_node const *
const n)
174 extern ir_op *op_sparc_And;
176 static inline bool is_sparc_And(
ir_node const *
const n)
190 extern ir_op *op_sparc_AndCCZero;
192 static inline bool is_sparc_AndCCZero(
ir_node const *
const n)
206 extern ir_op *op_sparc_AndN;
208 static inline bool is_sparc_AndN(
ir_node const *
const n)
222 extern ir_op *op_sparc_AndNCCZero;
224 static inline bool is_sparc_AndNCCZero(
ir_node const *
const n)
238 extern ir_op *op_sparc_Ba;
240 static inline bool is_sparc_Ba(
ir_node const *
const n)
250 extern ir_op *op_sparc_Bicc;
252 static inline bool is_sparc_Bicc(
ir_node const *
const n)
262 extern ir_op *op_sparc_Call;
264 static inline bool is_sparc_Call(
ir_node const *
const n)
272 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);
276 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);
278 extern ir_op *op_sparc_Cas;
280 static inline bool is_sparc_Cas(
ir_node const *
const n)
290 extern ir_op *op_sparc_Cmp;
292 static inline bool is_sparc_Cmp(
ir_node const *
const n)
306 extern ir_op *op_sparc_FrameAddr;
308 static inline bool is_sparc_FrameAddr(
ir_node const *
const n)
318 extern ir_op *op_sparc_IJmp;
320 static inline bool is_sparc_IJmp(
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_Or;
372 static inline bool is_sparc_Or(
ir_node const *
const n)
386 extern ir_op *op_sparc_OrCCZero;
388 static inline bool is_sparc_OrCCZero(
ir_node const *
const n)
402 extern ir_op *op_sparc_OrN;
404 static inline bool is_sparc_OrN(
ir_node const *
const n)
418 extern ir_op *op_sparc_OrNCCZero;
420 static inline bool is_sparc_OrNCCZero(
ir_node const *
const n)
434 extern ir_op *op_sparc_Restore;
436 static inline bool is_sparc_Restore(
ir_node const *
const n)
450 extern ir_op *op_sparc_RestoreZero;
452 static inline bool is_sparc_RestoreZero(
ir_node const *
const n)
462 extern ir_op *op_sparc_Return;
464 static inline bool is_sparc_Return(
ir_node const *
const n)
472 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);
476 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);
478 extern ir_op *op_sparc_SDiv;
480 static inline bool is_sparc_SDiv(
ir_node const *
const n)
494 extern ir_op *op_sparc_SMul;
496 static inline bool is_sparc_SMul(
ir_node const *
const n)
510 extern ir_op *op_sparc_SMulCCZero;
512 static inline bool is_sparc_SMulCCZero(
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_SubCC_t;
700 static inline bool is_sparc_SubCC_t(
ir_node const *
const n)
710 extern ir_op *op_sparc_SubSP;
712 static inline bool is_sparc_SubSP(
ir_node const *
const n)
726 extern ir_op *op_sparc_SubX;
728 static inline bool is_sparc_SubX(
ir_node const *
const n)
742 extern ir_op *op_sparc_SubX_t;
744 static inline bool is_sparc_SubX_t(
ir_node const *
const n)
754 extern ir_op *op_sparc_SwitchJmp;
756 static inline bool is_sparc_SwitchJmp(
ir_node const *
const n)
766 extern ir_op *op_sparc_UDiv;
768 static inline bool is_sparc_UDiv(
ir_node const *
const n)
782 extern ir_op *op_sparc_UMulh;
784 static inline bool is_sparc_UMulh(
ir_node const *
const n)
798 extern ir_op *op_sparc_XNor;
800 static inline bool is_sparc_XNor(
ir_node const *
const n)
814 extern ir_op *op_sparc_XNorCCZero;
816 static inline bool is_sparc_XNorCCZero(
ir_node const *
const n)
830 extern ir_op *op_sparc_Xor;
832 static inline bool is_sparc_Xor(
ir_node const *
const n)
846 extern ir_op *op_sparc_XorCCZero;
848 static inline bool is_sparc_XorCCZero(
ir_node const *
const n)
862 extern ir_op *op_sparc_fabs;
864 static inline bool is_sparc_fabs(
ir_node const *
const n)
882 extern ir_op *op_sparc_fadd;
884 static inline bool is_sparc_fadd(
ir_node const *
const n)
902 extern ir_op *op_sparc_fbfcc;
904 static inline bool is_sparc_fbfcc(
ir_node const *
const n)
914 extern ir_op *op_sparc_fcmp;
916 static inline bool is_sparc_fcmp(
ir_node const *
const n)
934 extern ir_op *op_sparc_fdiv;
936 static inline bool is_sparc_fdiv(
ir_node const *
const n)
954 extern ir_op *op_sparc_fftof;
956 static inline bool is_sparc_fftof(
ir_node const *
const n)
986 extern ir_op *op_sparc_fftoi;
988 static inline bool is_sparc_fftoi(
ir_node const *
const n)
1006 extern ir_op *op_sparc_fitof;
1008 static inline bool is_sparc_fitof(
ir_node const *
const n)
1026 extern ir_op *op_sparc_fmul;
1028 static inline bool is_sparc_fmul(
ir_node const *
const n)
1046 extern ir_op *op_sparc_fneg;
1048 static inline bool is_sparc_fneg(
ir_node const *
const n)
1066 extern ir_op *op_sparc_fsub;
1068 static inline bool is_sparc_fsub(
ir_node const *
const n)
1087 typedef enum pn_sparc_AddCC {
1088 pn_sparc_AddCC_res = 0,
1089 pn_sparc_AddCC_flags = 1,
1092 typedef enum pn_sparc_AddCC_t {
1093 pn_sparc_AddCC_t_res = 0,
1094 pn_sparc_AddCC_t_flags = 1,
1097 typedef enum n_sparc_AddCC_t {
1098 n_sparc_AddCC_t_left = 0,
1099 n_sparc_AddCC_t_right = 1,
1102 typedef enum pn_sparc_AddSP {
1103 pn_sparc_AddSP_stack = 0,
1106 typedef enum n_sparc_AddSP {
1107 n_sparc_AddSP_stack = 0,
1108 n_sparc_AddSP_size = 1,
1111 typedef enum n_sparc_AddX_t {
1112 n_sparc_AddX_t_left = 0,
1113 n_sparc_AddX_t_right = 1,
1114 n_sparc_AddX_t_flags_input = 2,
1117 typedef enum pn_sparc_Bicc {
1118 pn_sparc_Bicc_false = 0,
1119 pn_sparc_Bicc_true = 1,
1122 typedef enum n_sparc_Bicc {
1123 n_sparc_Bicc_flags = 0,
1126 typedef enum pn_sparc_Call {
1127 pn_sparc_Call_M = 0,
1128 pn_sparc_Call_stack = 1,
1129 pn_sparc_Call_first_result = 2,
1132 typedef enum pn_sparc_Cas {
1133 pn_sparc_Cas_res = 0,
1137 typedef enum n_sparc_Cas {
1138 n_sparc_Cas_ptr = 0,
1139 n_sparc_Cas_old = 1,
1140 n_sparc_Cas_new = 2,
1141 n_sparc_Cas_mem = 3,
1144 typedef enum n_sparc_FrameAddr {
1145 n_sparc_FrameAddr_base = 0,
1146 } n_sparc_FrameAddr;
1148 typedef enum pn_sparc_IJmp {
1149 pn_sparc_IJmp_jmp = 0,
1152 typedef enum pn_sparc_Ld {
1153 pn_sparc_Ld_res = 0,
1157 typedef enum n_sparc_Ld {
1162 typedef enum pn_sparc_Ldf {
1163 pn_sparc_Ldf_res = 0,
1167 typedef enum n_sparc_Ldf {
1168 n_sparc_Ldf_ptr = 0,
1169 n_sparc_Ldf_mem = 1,
1172 typedef enum pn_sparc_Restore {
1173 pn_sparc_Restore_stack = 0,
1174 pn_sparc_Restore_res = 1,
1177 typedef enum pn_sparc_RestoreZero {
1178 pn_sparc_RestoreZero_stack = 0,
1179 } pn_sparc_RestoreZero;
1181 typedef enum n_sparc_RestoreZero {
1182 n_sparc_RestoreZero_stack = 0,
1183 n_sparc_RestoreZero_frame_pointer = 1,
1184 } n_sparc_RestoreZero;
1186 typedef enum n_sparc_Return {
1187 n_sparc_Return_mem = 0,
1188 n_sparc_Return_sp = 1,
1189 n_sparc_Return_first_result = 2,
1192 typedef enum pn_sparc_SDiv {
1193 pn_sparc_SDiv_res = 0,
1194 pn_sparc_SDiv_M = 1,
1197 typedef enum n_sparc_SDiv {
1198 n_sparc_SDiv_mem = 0,
1199 n_sparc_SDiv_dividend_high = 1,
1200 n_sparc_SDiv_dividend_low = 2,
1201 n_sparc_SDiv_divisor = 3,
1204 typedef enum pn_sparc_Save {
1205 pn_sparc_Save_stack = 0,
1208 typedef enum n_sparc_Save {
1209 n_sparc_Save_stack = 0,
1212 typedef enum pn_sparc_SetHi {
1213 pn_sparc_SetHi_res = 0,
1216 typedef enum pn_sparc_St {
1220 typedef enum n_sparc_St {
1226 typedef enum pn_sparc_Stbar {
1227 pn_sparc_Stbar_M = 0,
1230 typedef enum n_sparc_Stbar {
1231 n_sparc_Stbar_mem = 0,
1234 typedef enum pn_sparc_Stf {
1238 typedef enum n_sparc_Stf {
1239 n_sparc_Stf_val = 0,
1240 n_sparc_Stf_ptr = 1,
1241 n_sparc_Stf_mem = 2,
1244 typedef enum pn_sparc_SubCC {
1245 pn_sparc_SubCC_res = 0,
1246 pn_sparc_SubCC_flags = 1,
1249 typedef enum pn_sparc_SubCC_t {
1250 pn_sparc_SubCC_t_res = 0,
1251 pn_sparc_SubCC_t_flags = 1,
1254 typedef enum n_sparc_SubCC_t {
1255 n_sparc_SubCC_t_left = 0,
1256 n_sparc_SubCC_t_right = 1,
1259 typedef enum pn_sparc_SubSP {
1260 pn_sparc_SubSP_stack = 0,
1261 pn_sparc_SubSP_addr = 1,
1262 pn_sparc_SubSP_M = 2,
1265 typedef enum n_sparc_SubSP {
1266 n_sparc_SubSP_stack = 0,
1269 typedef enum n_sparc_SubX_t {
1270 n_sparc_SubX_t_left = 0,
1271 n_sparc_SubX_t_right = 1,
1272 n_sparc_SubX_t_flags_input = 2,
1275 typedef enum pn_sparc_UDiv {
1276 pn_sparc_UDiv_res = 0,
1277 pn_sparc_UDiv_M = 1,
1280 typedef enum n_sparc_UDiv {
1281 n_sparc_UDiv_mem = 0,
1282 n_sparc_UDiv_dividend_high = 1,
1283 n_sparc_UDiv_dividend_low = 2,
1284 n_sparc_UDiv_divisor = 3,
1287 typedef enum n_sparc_fabs {
1288 n_sparc_fabs_val = 0,
1291 typedef enum n_sparc_fadd {
1292 n_sparc_fadd_left = 0,
1293 n_sparc_fadd_right = 1,
1296 typedef enum pn_sparc_fbfcc {
1297 pn_sparc_fbfcc_false = 0,
1298 pn_sparc_fbfcc_true = 1,
1301 typedef enum n_sparc_fbfcc {
1302 n_sparc_fbfcc_flags = 0,
1305 typedef enum pn_sparc_fdiv {
1306 pn_sparc_fdiv_res = 0,
1307 pn_sparc_fdiv_M = 1,
1310 typedef enum n_sparc_fdiv {
1311 n_sparc_fdiv_left = 0,
1312 n_sparc_fdiv_right = 1,
1315 typedef enum n_sparc_fmul {
1316 n_sparc_fmul_left = 0,
1317 n_sparc_fmul_right = 1,
1320 typedef enum n_sparc_fneg {
1321 n_sparc_fneg_val = 0,
1324 typedef enum n_sparc_fsub {
1325 n_sparc_fsub_left = 0,
1326 n_sparc_fsub_right = 1,
struct ir_op ir_op
Node Opcode.
struct ir_type ir_type
Type.
struct dbg_info dbg_info
Source Reference.
ir_op * get_irn_op(const ir_node *node)
Returns the opcode struct of the node.
struct ir_switch_table ir_switch_table
A switch table mapping integer numbers to proj-numbers of a Switch-node.
ir_relation
Relations for comparing numbers.
struct ir_mode ir_mode
SSA Value mode.
struct ir_entity ir_entity
Entity.
struct ir_node ir_node
Procedure Graph Node.