From: Craig Topper Date: Sun, 5 Jan 2014 05:46:38 +0000 (+0000) Subject: Fix encoding for PUSH64i16. Add In64BitMode Predicate. Remove disassembler hack. X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=6a69266feddcb89e00b8b7fa8f472e840e9290df;p=oota-llvm.git Fix encoding for PUSH64i16. Add In64BitMode Predicate. Remove disassembler hack. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@198547 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Target/X86/X86InstrInfo.td b/lib/Target/X86/X86InstrInfo.td index ef61ea1bd88..707a313f14b 100644 --- a/lib/Target/X86/X86InstrInfo.td +++ b/lib/Target/X86/X86InstrInfo.td @@ -915,7 +915,8 @@ def PUSH32rmm: I<0xFF, MRM6m, (outs), (ins i32mem:$src), "push{l}\t$src",[], def PUSHi8 : Ii8<0x6a, RawFrm, (outs), (ins i32i8imm:$imm), "push{l}\t$imm", [], IIC_PUSH_IMM>, Requires<[Not64BitMode]>; def PUSHi16 : Ii16<0x68, RawFrm, (outs), (ins i16imm:$imm), - "push{w}\t$imm", [], IIC_PUSH_IMM>, OpSize; + "push{w}\t$imm", [], IIC_PUSH_IMM>, OpSize, + Requires<[Not64BitMode]>; def PUSHi32 : Ii32<0x68, RawFrm, (outs), (ins i32imm:$imm), "push{l}\t$imm", [], IIC_PUSH_IMM>, Requires<[Not64BitMode]>; @@ -951,7 +952,8 @@ let Defs = [RSP], Uses = [RSP], neverHasSideEffects = 1, mayStore = 1, def PUSH64i8 : Ii8<0x6a, RawFrm, (outs), (ins i64i8imm:$imm), "push{q}\t$imm", [], IIC_PUSH_IMM>, Requires<[In64BitMode]>; def PUSH64i16 : Ii16<0x68, RawFrm, (outs), (ins i16imm:$imm), - "push{q}\t$imm", [], IIC_PUSH_IMM>; + "push{w}\t$imm", [], IIC_PUSH_IMM>, OpSize, + Requires<[In64BitMode]>; def PUSH64i32 : Ii32<0x68, RawFrm, (outs), (ins i64i32imm:$imm), "push{q}\t$imm", [], IIC_PUSH_IMM>, Requires<[In64BitMode]>; } diff --git a/utils/TableGen/X86RecognizableInstr.cpp b/utils/TableGen/X86RecognizableInstr.cpp index 8a8e084ad14..c360d866fa7 100644 --- a/utils/TableGen/X86RecognizableInstr.cpp +++ b/utils/TableGen/X86RecognizableInstr.cpp @@ -509,8 +509,7 @@ RecognizableInstr::filter_ret RecognizableInstr::filter() const { // Special cases. - if (Name == "PUSH64i16" || - Name == "MOVPQI2QImr" || + if (Name == "MOVPQI2QImr" || Name == "VMOVPQI2QImr" || Name == "VMASKMOVDQU64") return FILTER_WEAK;