diff options
author | Dylan McKay <me@dylanmckay.io> | 2018-11-05 05:49:04 +0000 |
---|---|---|
committer | Dylan McKay <me@dylanmckay.io> | 2018-11-05 05:49:04 +0000 |
commit | 4c5a5c8db6a9bcfafbb8798e9129e125d1f98155 (patch) | |
tree | ec0d22df944094b641fda5d87b5288205d09a236 /clang/lib/Lex/ModuleMap.cpp | |
parent | 1e255e7a7b3752ef7f786506e695f0f7b58e2339 (diff) | |
download | llvm-4c5a5c8db6a9bcfafbb8798e9129e125d1f98155.zip llvm-4c5a5c8db6a9bcfafbb8798e9129e125d1f98155.tar.gz llvm-4c5a5c8db6a9bcfafbb8798e9129e125d1f98155.tar.bz2 |
[AVR] Fix a backend bug that left extraneous operands after expansion
This patch fixes a bug in the AVR FRMIDX expansion logic.
The expansion would leave a leftover operand from the original FRMIDX,
but now attached to a MOVWRdRr instruction. The MOVWRdRr instruction
did not expect this operand and so LLVM rejected the machine
instruction.
This would trigger an assertion:
Assertion failed: ((isImpReg || Op.isRegMask() || MCID->isVariadic() ||
OpNo < MCID->getNumOperands() || isMetaDataOp) &&
"Trying to add an operand to a machine instr that is already done!"),
function addOperand, file llvm/lib/CodeGen/MachineInstr.cpp
Tim fixed this so that now the FRMIDX is expanded correctly into
a well-formed MOVWRdRr.
Patch by Tim Neumann
llvm-svn: 346117
Diffstat (limited to 'clang/lib/Lex/ModuleMap.cpp')
0 files changed, 0 insertions, 0 deletions