From 59c705e103662c7ea2002c3b4674bcdbf01ca0a8 Mon Sep 17 00:00:00 2001 From: Michael Beck Date: Wed, 19 Oct 2005 09:36:37 +0000 Subject: [PATCH] always build the mulh op in init [r6737] --- ir/ir/irarch.c | 35 ++++++++++++++--------------------- 1 file changed, 14 insertions(+), 21 deletions(-) diff --git a/ir/ir/irarch.c b/ir/ir/irarch.c index 7f15232ba..ce22ceb19 100644 --- a/ir/ir/irarch.c +++ b/ir/ir/irarch.c @@ -55,22 +55,6 @@ new_rd_Mulh (dbg_info *db, ir_graph *irg, ir_node *block, ir_node *in[2]; ir_node *res; - if (! op_Mulh) { - rflct_sig_t *sig; - int mulh_opc = get_next_ir_opcode(); - - op_Mulh = new_ir_op(mulh_opc, "Mulh", op_pin_state_floats, irop_flag_commutative, oparity_binary, 0, 0); - sig = rflct_signature_allocate(1, 3); - rflct_signature_set_arg(sig, 0, 0, "Res", RFLCT_MC(Int), 0, 0); - rflct_signature_set_arg(sig, 1, 0, "Block", RFLCT_MC(BB), 0, 0); - rflct_signature_set_arg(sig, 1, 1, "Op 0", RFLCT_MC(Int), 0, 0); - rflct_signature_set_arg(sig, 1, 2, "Op 1", RFLCT_MC(Int), 0, 0); - - rflct_new_opcode(mulh_opc, "Mulh", false); - rflct_opcode_add_signature(mulh_opc, sig); - - } - in[0] = op1; in[1] = op2; res = new_ir_node(db, irg, block, op_Mulh, mode, 2, in); @@ -88,11 +72,20 @@ void arch_dep_init(arch_dep_params_factory_t factory) if (factory != NULL) params = factory(); - if (params && (opts & (arch_dep_div_by_const|arch_dep_mod_by_const))) { - if (! op_Mulh) { - /* create the Mulh operation */ - op_Mulh = new_ir_op(get_next_ir_opcode(), "Mulh", op_pin_state_floats, irop_flag_commutative, oparity_binary, 0, 0); - } + if (! op_Mulh) { + rflct_sig_t *sig; + int mulh_opc = get_next_ir_opcode(); + + /* create the Mulh operation */ + op_Mulh = new_ir_op(mulh_opc, "Mulh", op_pin_state_floats, irop_flag_commutative, oparity_binary, 0, 0, NULL); + sig = rflct_signature_allocate(1, 3); + rflct_signature_set_arg(sig, 0, 0, "Res", RFLCT_MC(Int), 0, 0); + rflct_signature_set_arg(sig, 1, 0, "Block", RFLCT_MC(BB), 0, 0); + rflct_signature_set_arg(sig, 1, 1, "Op 0", RFLCT_MC(Int), 0, 0); + rflct_signature_set_arg(sig, 1, 2, "Op 1", RFLCT_MC(Int), 0, 0); + + rflct_new_opcode(mulh_opc, "Mulh", false); + rflct_opcode_add_signature(mulh_opc, sig); } } -- 2.20.1