aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKevin Enderby <enderby@apple.com>2011-07-06 17:23:46 +0000
committerKevin Enderby <enderby@apple.com>2011-07-06 17:23:46 +0000
commitd521f2d2f1a866ba9f9e73ca566e2b486c15dc74 (patch)
treea5e7a24358fcf6487d3b7882df8a05f8dd385dde
parente234cd97173a83e9bddce6b7c84780476550a8df (diff)
downloadexternal_llvm-d521f2d2f1a866ba9f9e73ca566e2b486c15dc74.zip
external_llvm-d521f2d2f1a866ba9f9e73ca566e2b486c15dc74.tar.gz
external_llvm-d521f2d2f1a866ba9f9e73ca566e2b486c15dc74.tar.bz2
Changed the X86 PUSH64i8 record to use the i64i8imm ParserMatchClass so that a
push with a small constant produces a 2-byte push. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134501 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--lib/Target/X86/X86InstrInfo.td2
-rw-r--r--test/MC/X86/x86-64.s6
2 files changed, 7 insertions, 1 deletions
diff --git a/lib/Target/X86/X86InstrInfo.td b/lib/Target/X86/X86InstrInfo.td
index 8cab808..1982df5 100644
--- a/lib/Target/X86/X86InstrInfo.td
+++ b/lib/Target/X86/X86InstrInfo.td
@@ -669,7 +669,7 @@ def PUSH64rmm: I<0xFF, MRM6m, (outs), (ins i64mem:$src), "push{q}\t$src", []>;
}
let Defs = [RSP], Uses = [RSP], neverHasSideEffects = 1, mayStore = 1 in {
-def PUSH64i8 : Ii8<0x6a, RawFrm, (outs), (ins i8imm:$imm),
+def PUSH64i8 : Ii8<0x6a, RawFrm, (outs), (ins i64i8imm:$imm),
"push{q}\t$imm", []>;
def PUSH64i16 : Ii16<0x68, RawFrm, (outs), (ins i16imm:$imm),
"push{q}\t$imm", []>;
diff --git a/test/MC/X86/x86-64.s b/test/MC/X86/x86-64.s
index c30b436..6f828e8 100644
--- a/test/MC/X86/x86-64.s
+++ b/test/MC/X86/x86-64.s
@@ -219,6 +219,12 @@ inb $161, %al
// CHECK: pushq $1
push $1
+// rdar://9716860
+pushq $1
+// CHECK: encoding: [0x6a,0x01]
+pushq $1111111
+// CHECK: encoding: [0x68,0x47,0xf4,0x10,0x00]
+
// rdar://8017530
// CHECK: sldtw 4
sldt 4