projects
/
libfirm
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(from parent 1:
c47c5a2
)
One less sign extension in an obscure case.
author
Christoph Mallon
<christoph.mallon@gmx.de>
Wed, 12 Nov 2008 22:01:28 +0000
(22:01 +0000)
committer
Christoph Mallon
<christoph.mallon@gmx.de>
Wed, 12 Nov 2008 22:01:28 +0000
(22:01 +0000)
[r23608]
ir/be/ia32/ia32_transform.c
patch
|
blob
|
history
diff --git
a/ir/be/ia32/ia32_transform.c
b/ir/be/ia32/ia32_transform.c
index
a029157
..
7326b16
100644
(file)
--- a/
ir/be/ia32/ia32_transform.c
+++ b/
ir/be/ia32/ia32_transform.c
@@
-3132,8
+3132,10
@@
static ir_node *gen_x87_gp_to_fp(ir_node *node, ir_mode *src_mode)
/* first convert to 32 bit signed if necessary */
if (get_mode_size_bits(src_mode) < 32) {
- new_op = create_Conv_I2I(dbgi, block, noreg, noreg, nomem, new_op, src_mode);
- SET_IA32_ORIG_NODE(new_op, node);
+ if (!upper_bits_clean(new_op, src_mode)) {
+ new_op = create_Conv_I2I(dbgi, block, noreg, noreg, nomem, new_op, src_mode);
+ SET_IA32_ORIG_NODE(new_op, node);
+ }
mode = mode_Is;
}