[ms-inline asm] Add the isOffsetOf() function.

Part of rdar://12470317


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166436 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chad Rosier 2012-10-22 19:50:35 +00:00
parent 6a02bbcdae
commit a703fb9e5e
2 changed files with 10 additions and 0 deletions

View File

@ -64,6 +64,11 @@ public:
/// getEndLoc - Get the location of the last token of this operand.
virtual SMLoc getEndLoc() const = 0;
/// isOffsetOf - Do we need to emit code to get the offset of the variable,
/// rather then the value of the variable? Only valid when parsing MS-style
/// inline assembly.
virtual bool isOffsetOf() const { return false; }
/// needSizeDirective - Do we need to emit a sizing directive for this
/// operand? Only valid when parsing MS-style inline assembly.
virtual bool needSizeDirective() const { return false; }

View File

@ -320,6 +320,11 @@ struct X86Operand : public MCParsedAsmOperand {
return Mem.Size;
}
bool isOffsetOf() const {
assert(Kind == Memory && "Invalid access!");
return Mem.OffsetOf;
}
bool needSizeDirective() const {
assert(Kind == Memory && "Invalid access!");
return Mem.NeedSizeDir;