Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
Zwinkau
libfirm
Commits
ec6f6a25
Commit
ec6f6a25
authored
Sep 11, 2015
by
Andreas Fried
Browse files
amd64: Remove unnecessary op_modes AMD64_OP_OUTREG_{ADDR,REG}.
parent
d5b928a9
Changes
6
Hide whitespace changes
Inline
Side-by-side
ir/be/amd64/amd64_emitter.c
View file @
ec6f6a25
...
...
@@ -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
;
...
...
ir/be/amd64/amd64_new_nodes.c
View file @
ec6f6a25
...
...
@@ -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"
;
...
...
ir/be/amd64/amd64_new_nodes.h
View file @
ec6f6a25
...
...
@@ -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
;
}
...
...
ir/be/amd64/amd64_nodes_attr.h
View file @
ec6f6a25
...
...
@@ -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
,
...
...
ir/be/amd64/amd64_spec.pl
View file @
ec6f6a25
...
...
@@ -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
...
...
ir/be/amd64/amd64_transform.c
View file @
ec6f6a25
...
...
@@ -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
);
}
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment