summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Dunbar <daniel@zuster.org>2010-03-13 22:49:39 +0000
committerDaniel Dunbar <daniel@zuster.org>2010-03-13 22:49:39 +0000
commitd324a7c9902a19eedaa3bd86a12d181dfd6e1d99 (patch)
tree174ec0665f81ecf98b067eb298b7e8e284f5a057
parent7c1f3d8cad52724d413eb2985f4b79d13ace69b8 (diff)
downloadbcm5719-llvm-d324a7c9902a19eedaa3bd86a12d181dfd6e1d99.tar.gz
bcm5719-llvm-d324a7c9902a19eedaa3bd86a12d181dfd6e1d99.zip
X86: Fix ADD64i32 encoding.
llvm-svn: 98457
-rw-r--r--llvm/lib/Target/X86/X86Instr64bit.td4
-rw-r--r--llvm/test/MC/AsmParser/X86/x86_64-new-encoder.s3
2 files changed, 5 insertions, 2 deletions
diff --git a/llvm/lib/Target/X86/X86Instr64bit.td b/llvm/lib/Target/X86/X86Instr64bit.td
index 9824b2e3c2e..ed9eb5798a8 100644
--- a/llvm/lib/Target/X86/X86Instr64bit.td
+++ b/llvm/lib/Target/X86/X86Instr64bit.td
@@ -464,8 +464,8 @@ let neverHasSideEffects = 1 in {
let Defs = [EFLAGS] in {
-def ADD64i32 : RI<0x05, RawFrm, (outs), (ins i32imm:$src),
- "add{q}\t{$src, %rax|%rax, $src}", []>;
+def ADD64i32 : RIi32<0x05, RawFrm, (outs), (ins i32imm:$src),
+ "add{q}\t{$src, %rax|%rax, $src}", []>;
let isTwoAddress = 1 in {
let isConvertibleToThreeAddress = 1 in {
diff --git a/llvm/test/MC/AsmParser/X86/x86_64-new-encoder.s b/llvm/test/MC/AsmParser/X86/x86_64-new-encoder.s
index 56ec0b38994..797558a81ef 100644
--- a/llvm/test/MC/AsmParser/X86/x86_64-new-encoder.s
+++ b/llvm/test/MC/AsmParser/X86/x86_64-new-encoder.s
@@ -24,3 +24,6 @@ movq $12, foo(%rip)
// CHECK: movq $12, foo(%rip)
// CHECK: encoding: [0x48,0xc7,0x05,A,A,A,A,0x0c,0x00,0x00,0x00]
// CHECK: fixup A - offset: 3, value: foo-8, kind: reloc_riprel_4byte
+
+// CHECK: addq $-424, %rax # encoding: [0x48,0x05,0x58,0xfe,0xff,0xff]
+addq $-424, %rax
OpenPOWER on IntegriCloud