diff options
Diffstat (limited to 'llvm/lib/CodeGen/MIRParser/MIParser.cpp')
-rw-r--r-- | llvm/lib/CodeGen/MIRParser/MIParser.cpp | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/llvm/lib/CodeGen/MIRParser/MIParser.cpp b/llvm/lib/CodeGen/MIRParser/MIParser.cpp index f3d46afb0b0..18cc6db3196 100644 --- a/llvm/lib/CodeGen/MIRParser/MIParser.cpp +++ b/llvm/lib/CodeGen/MIRParser/MIParser.cpp @@ -923,11 +923,13 @@ bool MIParser::verifyImplicitOperands(ArrayRef<ParsedMachineOperand> Operands, } bool MIParser::parseInstruction(unsigned &OpCode, unsigned &Flags) { - if (Token.is(MIToken::kw_frame_setup)) { - Flags |= MachineInstr::FrameSetup; - lex(); - } else if (Token.is(MIToken::kw_frame_destroy)) { - Flags |= MachineInstr::FrameDestroy; + // Allow both: + // * frame-setup frame-destroy OPCODE + // * frame-destroy frame-setup OPCODE + while (Token.is(MIToken::kw_frame_setup) || + Token.is(MIToken::kw_frame_destroy)) { + Flags |= Token.is(MIToken::kw_frame_setup) ? MachineInstr::FrameSetup + : MachineInstr::FrameDestroy; lex(); } if (Token.isNot(MIToken::Identifier)) |