projects
/
libfirm
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
0058b49
)
- BugFix: fixed effect of r22470: Immediate is always the RIGHT operand
author
Michael Beck
<beck@ipd.info.uni-karlsruhe.de>
Sat, 4 Oct 2008 23:06:40 +0000
(23:06 +0000)
committer
Michael Beck
<beck@ipd.info.uni-karlsruhe.de>
Sat, 4 Oct 2008 23:06:40 +0000
(23:06 +0000)
(where this is specified?), so do NOT overwrite it (analog to
turn_back_am())
[r22485]
ir/be/ia32/ia32_finish.c
patch
|
blob
|
history
diff --git
a/ir/be/ia32/ia32_finish.c
b/ir/be/ia32/ia32_finish.c
index
a62dd19
..
02afd1c
100644
(file)
--- a/
ir/be/ia32/ia32_finish.c
+++ b/
ir/be/ia32/ia32_finish.c
@@
-479,8
+479,11
@@
static void fix_am_source(ir_node *irn, void *env)
arch_set_irn_register(cg->arch_env, load_res, out_reg);
/* set the new input operand */
- set_irn_n(irn, n_ia32_binary_right, load_res);
- if(get_irn_mode(irn) == mode_T) {
+ if (is_ia32_Immediate(get_irn_n(irn, n_ia32_binary_right)))
+ set_irn_n(irn, n_ia32_binary_left, load_res);
+ else
+ set_irn_n(irn, n_ia32_binary_right, load_res);
+ if (get_irn_mode(irn) == mode_T) {
const ir_edge_t *edge, *next;
foreach_out_edge_safe(irn, edge, next) {
ir_node *node = get_edge_src_irn(edge);