diff options
| author | Nick Lewycky <nicholas@mxc.ca> | 2011-04-20 03:19:42 +0000 |
|---|---|---|
| committer | Nick Lewycky <nicholas@mxc.ca> | 2011-04-20 03:19:42 +0000 |
| commit | 4dae63e35b889dd2766edb068faf075365e29686 (patch) | |
| tree | b99404f88a670915b978ca4f7be0b1afb79556da /llvm/lib/Target | |
| parent | e473aaf540710863d85033805d5ab3b2c11960d4 (diff) | |
| download | bcm5719-llvm-4dae63e35b889dd2766edb068faf075365e29686.tar.gz bcm5719-llvm-4dae63e35b889dd2766edb068faf075365e29686.zip | |
This should always be signed chars, so use int8_t. This fixes a miscompile when
llvm is built with unsigned chars where an immediate such as 0xff would be zero
extended to 64-bits, turning "cmp $0xff,%eax" into
"cmp $0xffffffffffffffff,%eax".
llvm-svn: 129845
Diffstat (limited to 'llvm/lib/Target')
| -rw-r--r-- | llvm/lib/Target/X86/X86InstrInfo.td | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/llvm/lib/Target/X86/X86InstrInfo.td b/llvm/lib/Target/X86/X86InstrInfo.td index 2b928727f37..03a0b0c3aed 100644 --- a/llvm/lib/Target/X86/X86InstrInfo.td +++ b/llvm/lib/Target/X86/X86InstrInfo.td @@ -482,9 +482,9 @@ def X86_COND_P : PatLeaf<(i8 14)>; // alt. COND_PE def X86_COND_S : PatLeaf<(i8 15)>; let FastIselShouldIgnore = 1 in { // FastIsel should ignore all simm8 instrs. - def i16immSExt8 : ImmLeaf<i16, [{ return Imm == (char)Imm; }]>; - def i32immSExt8 : ImmLeaf<i32, [{ return Imm == (char)Imm; }]>; - def i64immSExt8 : ImmLeaf<i64, [{ return Imm == (char)Imm; }]>; + def i16immSExt8 : ImmLeaf<i16, [{ return Imm == (int8_t)Imm; }]>; + def i32immSExt8 : ImmLeaf<i32, [{ return Imm == (int8_t)Imm; }]>; + def i64immSExt8 : ImmLeaf<i64, [{ return Imm == (int8_t)Imm; }]>; } def i64immSExt32 : ImmLeaf<i64, [{ return Imm == (int32_t)Imm; }]>; |

