projects
/
libfirm
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fixed mode suffix emitter
[libfirm]
/
ir
/
be
/
ia32
/
ia32_emitter.c
diff --git
a/ir/be/ia32/ia32_emitter.c
b/ir/be/ia32/ia32_emitter.c
index
e6b866d
..
8e1fa6e
100644
(file)
--- a/
ir/be/ia32/ia32_emitter.c
+++ b/
ir/be/ia32/ia32_emitter.c
@@
-293,7
+293,9
@@
static int ia32_get_mode_suffix(lc_appendable_t *app,
ir_mode *mode = get_irn_mode(irn);
if (mode == mode_T) {
ir_mode *mode = get_irn_mode(irn);
if (mode == mode_T) {
- mode = (is_ia32_Ld(irn) || is_ia32_St(irn)) ? get_ia32_ls_mode(irn) : get_ia32_res_mode(irn);
+ mode = get_ia32_res_mode(irn);
+ if (! mode)
+ mode = get_ia32_ls_mode(irn);
}
if (! irn)
}
if (! irn)
@@
-587,7
+589,7
@@
const char *ia32_emit_am(const ir_node *n, ia32_emit_env_t *env) {
/* obstack_free with NULL results in an uninitialized obstack */
obstack_init(obst);
/* obstack_free with NULL results in an uninitialized obstack */
obstack_init(obst);
- p = pointer_size(mode, has_x87_register(n));
+ p = pointer_size(mode, has_x87_register(n)
|| is_ia32_GetST0(n) || is_ia32_SetST0(n)
);
if (p)
obstack_printf(obst, "%s ", p);
if (p)
obstack_printf(obst, "%s ", p);