}
+#if 0
#define OPCODES_COUNT (sizeof(opcodes) / sizeof(opcodes[0]))
+#endif
+#define OPCODES_COUNT opcodes_size
rflct_mode_class_t rflct_get_mode_class(const ir_mode *mode) {
return GET_ARGS(opc, sig);
}
-int rflct_signature_match(ir_node *irn, int sig) {
+int rflct_signature_match(const ir_node *irn, int sig) {
opcode op = get_irn_opcode(irn);
const rflct_arg_t *args = rflct_get_in_args(op, sig);
int dst = 0;
return dst;
}
-int rflct_get_signature(ir_node *irn) {
+int rflct_get_signature(const ir_node *irn) {
const rflct_opcode_t *opc = GET_OPCODE(get_irn_opcode(irn));
int min_dist = INT_MAX;
int min_sig = INT_MAX;
* @param irn The node.
* @return The first matching signature or -1, if no signature matches.
*/
-int rflct_get_signature(ir_node *irn);
+int rflct_get_signature(const ir_node *irn);
/**
* Get the number of in arguments.
*/
int rflct_get_out_args_count(opcode opc, int sig);
+#define rflct_get_args_count(opc, sig, use) \
+ ((use) ? rflct_get_in_args_count(opc, sig) : rflct_get_out_args_count(opc, sig))
+
/**
* Get the array of use args.
* The array is terminated with an entry for which
*/
const rflct_arg_t *rflct_get_out_args(opcode opc, int sig);
+#define rflct_get_args(opc, sig, use) \
+ ((use) ? rflct_get_in_args(opc, sig) : rflct_get_out_args(opc, sig))
+
/**
* Make a string representation of a signature of an opcode.
* @param buf The buffer to put the string to.