Commit ec6f6a25 authored by Andreas Fried's avatar Andreas Fried
Browse files

amd64: Remove unnecessary op_modes AMD64_OP_OUTREG_{ADDR,REG}.

parent d5b928a9
......@@ -335,20 +335,6 @@ static void amd64_emit_am(const ir_node *const node, bool indirect_star)
emit_register_mode(reg, binop_attr->base.insn_mode);
return;
}
case AMD64_OP_OUTREG_ADDR: {
amd64_emit_addr(node, &attr->addr);
be_emit_cstring(", ");
goto emit_reg_out0;
}
case AMD64_OP_OUTREG_REG: {
const arch_register_t *reg_in = arch_get_irn_register_in(node, 0);
emit_register_mode(reg_in, attr->insn_mode);
be_emit_cstring(", ");
emit_reg_out0:;
const arch_register_t *reg_out = arch_get_irn_register_out(node, 0);
emit_register_mode(reg_out, attr->insn_mode);
return;
}
case AMD64_OP_ADDR_IMM: {
const amd64_binop_addr_attr_t *const binop_attr
= (const amd64_binop_addr_attr_t*)attr;
......
......@@ -70,8 +70,6 @@ static const char *get_op_mode_string(amd64_op_mode_t mode)
case AMD64_OP_REG_ADDR: return "reg+addr";
case AMD64_OP_REG_IMM: return "reg+imm";
case AMD64_OP_REG_REG: return "reg+reg";
case AMD64_OP_OUTREG_REG: return "outreg+reg";
case AMD64_OP_OUTREG_ADDR: return "outreg+addr";
case AMD64_OP_REG: return "reg";
case AMD64_OP_SHIFT_IMM: return "shift_imm";
case AMD64_OP_SHIFT_REG: return "shift_reg";
......
......@@ -41,8 +41,6 @@ static inline bool amd64_has_addr_attr(const ir_node *node)
return amd64_has_binop_attr(node)
|| attr->op_mode == AMD64_OP_ADDR
|| attr->op_mode == AMD64_OP_REG
|| attr->op_mode == AMD64_OP_OUTREG_REG
|| attr->op_mode == AMD64_OP_OUTREG_ADDR
|| attr->op_mode == AMD64_OP_IMM32;
}
......
......@@ -47,8 +47,6 @@ typedef enum {
AMD64_OP_REG_ADDR,
AMD64_OP_REG_REG,
AMD64_OP_REG_IMM,
AMD64_OP_OUTREG_REG,
AMD64_OP_OUTREG_ADDR,
AMD64_OP_IMM32,
AMD64_OP_IMM64,
AMD64_OP_ADDR_REG,
......
......@@ -500,12 +500,12 @@ ret => {
bsf => {
template => $unop_out,
emit => "bsf%M %AM",
emit => "bsf%M %AM, %D0",
},
bsr => {
template => $unop_out,
emit => "bsr%M %AM",
emit => "bsr%M %AM, %D0",
},
# SSE
......
......@@ -1248,7 +1248,7 @@ static ir_node *gen_unop_out(ir_node *const node, int op_pos, unop_out_construct
amd64_addr_t const addr = { .immediate = { .entity = NULL, }, };
amd64_insn_mode_t insn_mode = get_insn_mode_from_mode(op_mode);
ir_node *new_node = gen(dbgi, block, new_op, insn_mode, AMD64_OP_OUTREG_REG, addr);
ir_node *new_node = gen(dbgi, block, new_op, insn_mode, AMD64_OP_REG, addr);
return be_new_Proj(new_node, pn_res);
}
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment