3636#include " llvm/MC/MCParser/MCAsmLexer.h"
3737#include " llvm/MC/MCParser/MCAsmParser.h"
3838#include " llvm/MC/MCParser/MCAsmParserExtension.h"
39+ #include " llvm/MC/MCParser/MCMasmParser.h"
3940#include " llvm/MC/MCParser/MCParsedAsmOperand.h"
4041#include " llvm/MC/MCParser/MCTargetAsmParser.h"
4142#include " llvm/MC/MCRegisterInfo.h"
6566#include < memory>
6667#include < optional>
6768#include < sstream>
69+ #include < stdbool.h>
6870#include < string>
6971#include < tuple>
7072#include < utility>
@@ -373,7 +375,7 @@ FieldInitializer &FieldInitializer::operator=(FieldInitializer &&Initializer) {
373375// / The concrete assembly parser instance.
374376// Note that this is a full MCAsmParser, not an MCAsmParserExtension!
375377// It's a peer of AsmParser, not of COFFAsmParser, WasmAsmParser, etc.
376- class MasmParser : public MCAsmParser {
378+ class MasmParser : public MCMasmParser {
377379private:
378380 AsmLexer Lexer;
379381 MCContext &Ctx;
@@ -456,6 +458,9 @@ class MasmParser : public MCAsmParser {
456458 // / Are we parsing ms-style inline assembly?
457459 bool ParsingMSInlineAsm = false ;
458460
461+ // / Is the current default `ret` instruction far?
462+ bool DefaultRetIsFar = false ;
463+
459464 // Current <...> expression depth.
460465 unsigned AngleBracketDepth = 0U ;
461466
@@ -481,6 +486,14 @@ class MasmParser : public MCAsmParser {
481486 DirectiveKindMap[Directive] = DirectiveKindMap[Alias];
482487 }
483488
489+ // / @name MCMasmParser Interface
490+ // / {
491+
492+ bool getDefaultRetIsFar () const override { return DefaultRetIsFar; }
493+ void setDefaultRetIsFar (bool IsFar) override { DefaultRetIsFar = IsFar; }
494+
495+ // / }
496+
484497 // / @name MCAsmParser Interface
485498 // / {
486499
@@ -517,8 +530,6 @@ class MasmParser : public MCAsmParser {
517530 }
518531 bool isParsingMSInlineAsm () override { return ParsingMSInlineAsm; }
519532
520- bool isParsingMasm () const override { return true ; }
521-
522533 bool defineMacro (StringRef Name, StringRef Value) override ;
523534
524535 bool lookUpField (StringRef Name, AsmFieldInfo &Info) const override ;
0 commit comments