diff options
| author | Dmitry Preobrazhensky <dmitry.preobrazhensky@amd.com> | 2019-03-27 13:49:52 +0000 |
|---|---|---|
| committer | Dmitry Preobrazhensky <dmitry.preobrazhensky@amd.com> | 2019-03-27 13:49:52 +0000 |
| commit | 40f0162a9a99f2a4882196092eb4d43cf5ef7f12 (patch) | |
| tree | 23a4677059b13e5caeb3741930f1a578d5cd0166 /llvm/lib/Target/AMDGPU/AsmParser | |
| parent | 4f3cdc6555cad8d810f811f622ae42af7a069aee (diff) | |
| download | bcm5719-llvm-40f0162a9a99f2a4882196092eb4d43cf5ef7f12.tar.gz bcm5719-llvm-40f0162a9a99f2a4882196092eb4d43cf5ef7f12.zip | |
Revert of 357063 [AMDGPU][MC] Corrected handling of tied src for atomic return MUBUF opcodes
Reason: the change was mistakenly committed before review
llvm-svn: 357066
Diffstat (limited to 'llvm/lib/Target/AMDGPU/AsmParser')
| -rw-r--r-- | llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp b/llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp index 5bf597a0cbb..086a7d79fe1 100644 --- a/llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp +++ b/llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp @@ -4911,19 +4911,13 @@ void AMDGPUAsmParser::cvtMubufImpl(MCInst &Inst, bool HasLdsModifier = false; OptionalImmIndexMap OptionalIdx; assert(IsAtomicReturn ? IsAtomic : true); - unsigned FirstOperandIdx = 1; - for (unsigned i = FirstOperandIdx, e = Operands.size(); i != e; ++i) { + for (unsigned i = 1, e = Operands.size(); i != e; ++i) { AMDGPUOperand &Op = ((AMDGPUOperand &)*Operands[i]); // Add the register arguments if (Op.isReg()) { Op.addRegOperands(Inst, 1); - // Insert a tied src for atomic return dst. - // This cannot be postponed as subsequent calls to - // addImmOperands rely on correct number of MC operands. - if (IsAtomicReturn && i == FirstOperandIdx) - Op.addRegOperands(Inst, 1); continue; } @@ -4961,6 +4955,12 @@ void AMDGPUAsmParser::cvtMubufImpl(MCInst &Inst, } } + // Copy $vdata_in operand and insert as $vdata for MUBUF_Atomic RTN insns. + if (IsAtomicReturn) { + MCInst::iterator I = Inst.begin(); // $vdata_in is always at the beginning. + Inst.insert(I, *I); + } + addOptionalImmOperand(Inst, Operands, OptionalIdx, AMDGPUOperand::ImmTyOffset); if (!IsAtomic) { // glc is hard-coded. addOptionalImmOperand(Inst, Operands, OptionalIdx, AMDGPUOperand::ImmTyGLC); |

