1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-25 04:02:41 +01:00

- PEXTRW cannot take a memory location as its first source operand.

- PINSRWrmi encoding bug.

llvm-svn: 27818
This commit is contained in:
Evan Cheng 2006-04-18 21:59:43 +00:00
parent d6fa185be2
commit 7364ee1c92
2 changed files with 1 additions and 9 deletions

View File

@ -2007,13 +2007,6 @@ def PEXTRWri : PDIi8<0xC5, MRMSrcReg,
"pextrw {$src2, $src1, $dst|$dst, $src1, $src2}",
[(set R32:$dst, (X86pextrw (v8i16 VR128:$src1),
(i32 imm:$src2)))]>;
def PEXTRWmi : PDIi8<0xC5, MRMSrcMem,
(ops R32:$dst, i128mem:$src1, i32i8imm:$src2),
"pextrw {$src2, $src1, $dst|$dst, $src1, $src2}",
[(set R32:$dst, (X86pextrw
(bc_v8i16 (loadv2i64 addr:$src1)),
(i32 imm:$src2)))]>;
let isTwoAddress = 1 in {
def PINSRWrri : PDIi8<0xC4, MRMSrcReg,
(ops VR128:$dst, VR128:$src1, R32:$src2, i32i8imm:$src3),

View File

@ -572,8 +572,7 @@ MachineInstr* X86RegisterInfo::foldMemoryOperand(MachineInstr* MI,
case X86::PUNPCKHWDrr:return MakeRMInst(X86::PUNPCKHWDrm, FrameIndex, MI);
case X86::PUNPCKHDQrr:return MakeRMInst(X86::PUNPCKHDQrm, FrameIndex, MI);
case X86::PUNPCKHQDQrr:return MakeRMInst(X86::PUNPCKHQDQrm, FrameIndex, MI);
case X86::PEXTRWri: return MakeRMInst(X86::PEXTRWmi, FrameIndex, MI);
case X86::PINSRWrri: return MakeRMInst(X86::PINSRWrmi, FrameIndex, MI);
case X86::PINSRWrri: return MakeRMIInst(X86::PINSRWrmi, FrameIndex, MI);
// Alias packed SSE instructions
case X86::MOVSS2PSrr:return MakeRMInst(X86::MOVSS2PSrm, FrameIndex, MI);
case X86::MOVSD2PDrr:return MakeRMInst(X86::MOVSD2PDrm, FrameIndex, MI);