mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-24 22:24:54 +00:00
Fix shuffle decoding logic to handle UNPCKLPS/UNPCKLPD on 256-bit vectors correctly. Add support for decoding UNPCKHPS/UNPCKHPD for AVX 128-bit and 256-bit forms.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145055 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -197,16 +197,44 @@ void llvm::EmitAnyX86InstComments(const MCInst *MI, raw_ostream &OS,
|
||||
Src2Name = getRegName(MI->getOperand(2).getReg());
|
||||
// FALL THROUGH.
|
||||
case X86::UNPCKHPDrm:
|
||||
DecodeUNPCKHPMask(2, ShuffleMask);
|
||||
DecodeUNPCKHPDMask(2, ShuffleMask);
|
||||
Src1Name = getRegName(MI->getOperand(0).getReg());
|
||||
break;
|
||||
case X86::VUNPCKHPDrr:
|
||||
Src2Name = getRegName(MI->getOperand(2).getReg());
|
||||
// FALL THROUGH.
|
||||
case X86::VUNPCKHPDrm:
|
||||
DecodeUNPCKHPDMask(2, ShuffleMask);
|
||||
Src1Name = getRegName(MI->getOperand(1).getReg());
|
||||
break;
|
||||
case X86::VUNPCKHPDYrr:
|
||||
Src2Name = getRegName(MI->getOperand(2).getReg());
|
||||
// FALL THROUGH.
|
||||
case X86::VUNPCKHPDYrm:
|
||||
DecodeUNPCKLPDMask(4, ShuffleMask);
|
||||
Src1Name = getRegName(MI->getOperand(1).getReg());
|
||||
break;
|
||||
case X86::UNPCKHPSrr:
|
||||
Src2Name = getRegName(MI->getOperand(2).getReg());
|
||||
// FALL THROUGH.
|
||||
case X86::UNPCKHPSrm:
|
||||
DecodeUNPCKHPMask(4, ShuffleMask);
|
||||
DecodeUNPCKHPSMask(4, ShuffleMask);
|
||||
Src1Name = getRegName(MI->getOperand(0).getReg());
|
||||
break;
|
||||
case X86::VUNPCKHPSrr:
|
||||
Src2Name = getRegName(MI->getOperand(2).getReg());
|
||||
// FALL THROUGH.
|
||||
case X86::VUNPCKHPSrm:
|
||||
DecodeUNPCKHPSMask(4, ShuffleMask);
|
||||
Src1Name = getRegName(MI->getOperand(1).getReg());
|
||||
break;
|
||||
case X86::VUNPCKHPSYrr:
|
||||
Src2Name = getRegName(MI->getOperand(2).getReg());
|
||||
// FALL THROUGH.
|
||||
case X86::VUNPCKHPSYrm:
|
||||
DecodeUNPCKHPSMask(8, ShuffleMask);
|
||||
Src1Name = getRegName(MI->getOperand(1).getReg());
|
||||
break;
|
||||
case X86::VPERMILPSri:
|
||||
DecodeVPERMILPSMask(4, MI->getOperand(2).getImm(),
|
||||
ShuffleMask);
|
||||
|
Reference in New Issue
Block a user