* @author Matthias Braun, Sebastian Buchwald
* @version $Id: ia32_common_transform.c 21012 2008-08-06 13:35:17Z beck $
*/
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
#include "error.h"
#include "irargs_t.h"
ir_node *gen_ASM(ir_node *node)
{
ir_graph *irg = current_ir_graph;
+#ifdef FIRM_GRGEN_BE
+ ir_node *new_block = get_nodes_block(node);
+#else
ir_node *block = get_nodes_block(node);
ir_node *new_block = be_transform_node(block);
+#endif
dbg_info *dbgi = get_irn_dbg_info(node);
int i, arity;
int out_idx;
const arch_register_req_t *req;
parse_asm_constraints(&parsed_constraint, c, 0);
- r_clobber_bits = clobber_bits[parsed_constraint.cls->index];
- if (r_clobber_bits != 0) {
- if (parsed_constraint.all_registers_allowed) {
- parsed_constraint.all_registers_allowed = 0;
- be_abi_set_non_ignore_regs(env_cg->birg->abi,
- parsed_constraint.cls,
- &parsed_constraint.allowed_registers);
+ if (parsed_constraint.cls != NULL) {
+ r_clobber_bits = clobber_bits[parsed_constraint.cls->index];
+ if (r_clobber_bits != 0) {
+ if (parsed_constraint.all_registers_allowed) {
+ parsed_constraint.all_registers_allowed = 0;
+ be_abi_set_non_ignore_regs(env_cg->birg->abi,
+ parsed_constraint.cls,
+ &parsed_constraint.allowed_registers);
+ }
+ parsed_constraint.allowed_registers &= ~r_clobber_bits;
}
- parsed_constraint.allowed_registers &= ~r_clobber_bits;
}
req = make_register_req(&parsed_constraint, n_out_constraints,
}
if (input == NULL) {
+#ifdef FIRM_GRGEN_BE
+ input = get_irn_n(node, i);
+#else
ir_node *pred = get_irn_n(node, i);
input = be_transform_node(pred);
+#endif
if (parsed_constraint.cls == NULL
&& parsed_constraint.same_as < 0) {