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
bf8ff592
Commit
bf8ff592
authored
Nov 11, 2013
by
Matthias Braun
Browse files
disallow Muxb and Cmp(mode_b, mode_b).
We couldn't generate sensible code for them anyway.
parent
a7ddca6b
Changes
2
Hide whitespace changes
Inline
Side-by-side
ir/ir/irverify.c
View file @
bf8ff592
...
...
@@ -728,8 +728,8 @@ static int verify_node_Not(const ir_node *n)
static
int
verify_node_Cmp
(
const
ir_node
*
n
)
{
bool
fine
=
check_mode
(
n
,
mode_b
);
fine
&=
check_input_func
(
n
,
n_Cmp_left
,
"left"
,
mode_is_data
b
,
"data
b
"
);
fine
&=
check_input_func
(
n
,
n_Cmp_right
,
"right"
,
mode_is_data
b
,
"data
b
"
);
fine
&=
check_input_func
(
n
,
n_Cmp_left
,
"left"
,
mode_is_data
,
"data"
);
fine
&=
check_input_func
(
n
,
n_Cmp_right
,
"right"
,
mode_is_data
,
"data"
);
ir_mode
*
model
=
get_irn_mode
(
get_Cmp_left
(
n
));
ir_mode
*
moder
=
get_irn_mode
(
get_Cmp_right
(
n
));
if
(
model
!=
moder
)
{
...
...
@@ -870,7 +870,7 @@ static int verify_node_Confirm(const ir_node *n)
static
int
verify_node_Mux
(
const
ir_node
*
n
)
{
bool
fine
=
check_mode_func
(
n
,
mode_is_data
b
,
"data or mode_b"
);
bool
fine
=
check_mode_func
(
n
,
mode_is_data
,
"data or mode_b"
);
fine
&=
check_input_mode
(
n
,
n_Mux_sel
,
"sel"
,
mode_b
);
fine
&=
check_mode_same_input
(
n
,
n_Mux_true
,
"true"
);
fine
&=
check_mode_same_input
(
n
,
n_Mux_false
,
"false"
);
...
...
ir/lower/lower_mode_b.c
View file @
bf8ff592
...
...
@@ -161,21 +161,6 @@ static ir_node *lower_node(ir_node *node)
break
;
}
case
iro_Mux
:
{
ir_node
*
cond
=
get_Mux_sel
(
node
);
ir_node
*
low_cond
=
lower_node
(
cond
);
ir_node
*
v_true
=
get_Mux_true
(
node
);
ir_node
*
low_v_true
=
lower_node
(
v_true
);
ir_node
*
v_false
=
get_Mux_false
(
node
);
ir_node
*
low_v_false
=
lower_node
(
v_false
);
ir_node
*
and0
=
new_rd_And
(
dbgi
,
block
,
low_cond
,
low_v_true
,
mode
);
ir_node
*
not_cond
=
create_not
(
dbgi
,
low_cond
);
ir_node
*
and1
=
new_rd_And
(
dbgi
,
block
,
not_cond
,
low_v_false
,
mode
);
res
=
new_rd_Or
(
dbgi
,
block
,
and0
,
and1
,
mode
);
break
;
}
case
iro_Cmp
:
res
=
create_cond_set
(
node
,
mode
);
break
;
...
...
Write
Preview
Markdown
is supported
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