projects
/
libfirm
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
| inline |
side by side
Implement bemit_call() with AM.
[libfirm]
/
ir
/
be
/
ia32
/
ia32_emitter.c
diff --git
a/ir/be/ia32/ia32_emitter.c
b/ir/be/ia32/ia32_emitter.c
index
25124dd
..
0bff123
100644
(file)
--- a/
ir/be/ia32/ia32_emitter.c
+++ b/
ir/be/ia32/ia32_emitter.c
@@
-2827,7
+2827,12
@@
static void bemit_call(const ir_node *node)
bemit8(0xE8);
bemit_immediate(proc, true);
} else {
- panic("indirect call NIY");
+ bemit8(0xFF);
+ if (get_ia32_op_type(node) == ia32_Normal) {
+ bemit_modru(get_in_reg(node, n_ia32_unary_op), 2);
+ } else {
+ bemit_mod_am(2, node);
+ }
}
}