projects
/
libfirm
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
cleanup/flatten some backend options
[libfirm]
/
ir
/
be
/
ia32
/
ia32_optimize.c
diff --git
a/ir/be/ia32/ia32_optimize.c
b/ir/be/ia32/ia32_optimize.c
index
aa1405b
..
71ce6f7
100644
(file)
--- a/
ir/be/ia32/ia32_optimize.c
+++ b/
ir/be/ia32/ia32_optimize.c
@@
-153,7
+153,6
@@
static void peephole_ia32_Cmp(ir_node *const node)
ir_node *op;
ia32_attr_t const *attr;
int ins_permuted;
ir_node *op;
ia32_attr_t const *attr;
int ins_permuted;
- int cmp_unsigned;
ir_node *test;
arch_register_t const *reg;
ir_edge_t const *edge;
ir_node *test;
arch_register_t const *reg;
ir_edge_t const *edge;
@@
-178,14
+177,13
@@
static void peephole_ia32_Cmp(ir_node *const node)
op = get_irn_n(node, n_ia32_Cmp_left);
attr = get_ia32_attr(node);
ins_permuted = attr->data.ins_permuted;
op = get_irn_n(node, n_ia32_Cmp_left);
attr = get_ia32_attr(node);
ins_permuted = attr->data.ins_permuted;
- cmp_unsigned = attr->data.cmp_unsigned;
if (is_ia32_Cmp(node)) {
test = new_bd_ia32_Test(dbgi, block, noreg, noreg, nomem,
if (is_ia32_Cmp(node)) {
test = new_bd_ia32_Test(dbgi, block, noreg, noreg, nomem,
- op, op, ins_permuted
, cmp_unsigned
);
+ op, op, ins_permuted);
} else {
test = new_bd_ia32_Test8Bit(dbgi, block, noreg, noreg, nomem,
} else {
test = new_bd_ia32_Test8Bit(dbgi, block, noreg, noreg, nomem,
- op, op, ins_permuted
, cmp_unsigned
);
+ op, op, ins_permuted);
}
set_ia32_ls_mode(test, get_ia32_ls_mode(node));
}
set_ia32_ls_mode(test, get_ia32_ls_mode(node));
@@
-248,10
+246,10
@@
static void peephole_ia32_Test(ir_node *node)
/* make sure only Lg/Eq tests are used */
foreach_out_edge(node, edge) {
/* make sure only Lg/Eq tests are used */
foreach_out_edge(node, edge) {
- ir_node *user = get_edge_src_irn(edge);
- i
nt pn
c = get_ia32_condcode(user);
+ ir_node
*user = get_edge_src_irn(edge);
+ i
a32_condition_code_t c
c = get_ia32_condcode(user);
- if (
pnc != pn_Cmp_Eq && pnc != pn_Cmp_Lg
) {
+ if (
cc != ia32_cc_equal && cc != ia32_cc_not_equal
) {
return;
}
}
return;
}
}
@@
-262,15
+260,15
@@
static void peephole_ia32_Test(ir_node *node)
case produces_flag_carry:
foreach_out_edge(node, edge) {
case produces_flag_carry:
foreach_out_edge(node, edge) {
- ir_node *user = get_edge_src_irn(edge);
- i
nt pnc
= get_ia32_condcode(user);
+ ir_node
*user = get_edge_src_irn(edge);
+ i
a32_condition_code_t cc
= get_ia32_condcode(user);
- switch (
pn
c) {
- case pn_Cmp_Eq: pnc = ia32_pn_Cmp_not_carry; break;
- case pn_Cmp_Lg: pnc = ia32_pn_Cmp_carry; break;
-
default: panic("unexpected pn");
+ switch (
c
c) {
+ case ia32_cc_equal: cc = ia32_cc_above_equal; break; /* CF = 0 */
+ case ia32_cc_not_equal: cc = ia32_cc_below; break; /* CF = 1 */
+ default: panic("unexpected pn");
}
}
- set_ia32_condcode(user,
pn
c);
+ set_ia32_condcode(user,
c
c);
}
break;
}
break;
@@
-644,7
+642,7
@@
static void peephole_store_incsp(ir_node *store)
*/
static inline int mode_needs_gp_reg(ir_mode *mode)
{
*/
static inline int mode_needs_gp_reg(ir_mode *mode)
{
- if (mode == mode_fpcw)
+ if (mode ==
ia32_
mode_fpcw)
return 0;
if (get_mode_size_bits(mode) > 32)
return 0;
return 0;
if (get_mode_size_bits(mode) > 32)
return 0;
@@
-1202,7
+1200,7
@@
static void peephole_ia32_Imul_split(ir_node *imul)
return;
/* fine, we can rebuild it */
return;
/* fine, we can rebuild it */
- res = turn_back_am(imul);
+ res =
ia32_
turn_back_am(imul);
arch_set_irn_register(res, reg);
}
arch_set_irn_register(res, reg);
}