projects
/
libfirm
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
emit pointer size for GetST0 and SetST0 as well
[libfirm]
/
ir
/
be
/
ia32
/
ia32_emitter.c
diff --git
a/ir/be/ia32/ia32_emitter.c
b/ir/be/ia32/ia32_emitter.c
index
29ae459
..
528816e
100644
(file)
--- a/
ir/be/ia32/ia32_emitter.c
+++ b/
ir/be/ia32/ia32_emitter.c
@@
-587,7
+587,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);
@@
-1091,7
+1091,7
@@
static void Set_emitter(ir_node *irn, ir_mode *mode, ia32_emit_env_t *env) {
lc_esnprintf(arg_env, cmd_buf, SNPRINTF_BUF_LEN, "cmp %s", ia32_emit_binop(irn, env));
}
else if (is_ia32_xCmpSet(irn)) {
lc_esnprintf(arg_env, cmd_buf, SNPRINTF_BUF_LEN, "cmp %s", ia32_emit_binop(irn, env));
}
else if (is_ia32_xCmpSet(irn)) {
- lc_esnprintf(arg_env, cmd_buf, SNPRINTF_BUF_LEN, "ucomis%M %s", get_irn_n(irn,
0
), ia32_emit_binop(irn, env));
+ lc_esnprintf(arg_env, cmd_buf, SNPRINTF_BUF_LEN, "ucomis%M %s", get_irn_n(irn,
2
), ia32_emit_binop(irn, env));
}
else if (is_ia32_PsiCondSet(irn)) {
/* omit compare because flags are already set by And/Or */
}
else if (is_ia32_PsiCondSet(irn)) {
/* omit compare because flags are already set by And/Or */