summaryrefslogtreecommitdiffstats
path: root/include/llvm/InlineAsm.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/llvm/InlineAsm.h')
-rw-r--r--include/llvm/InlineAsm.h18
1 files changed, 11 insertions, 7 deletions
diff --git a/include/llvm/InlineAsm.h b/include/llvm/InlineAsm.h
index 84292cf..bc55031 100644
--- a/include/llvm/InlineAsm.h
+++ b/include/llvm/InlineAsm.h
@@ -31,18 +31,22 @@ class InlineAsm : public Value {
std::string AsmString, Constraints;
bool HasSideEffects;
+ bool IsMsAsm;
- InlineAsm(const FunctionType *Ty, const std::string &AsmString,
- const std::string &Constraints, bool hasSideEffects);
+ InlineAsm(const FunctionType *Ty, const StringRef &AsmString,
+ const StringRef &Constraints, bool hasSideEffects,
+ bool isMsAsm = false);
virtual ~InlineAsm();
public:
/// InlineAsm::get - Return the the specified uniqued inline asm string.
///
- static InlineAsm *get(const FunctionType *Ty, const std::string &AsmString,
- const std::string &Constraints, bool hasSideEffects);
+ static InlineAsm *get(const FunctionType *Ty, const StringRef &AsmString,
+ const StringRef &Constraints, bool hasSideEffects,
+ bool isMsAsm = false);
bool hasSideEffects() const { return HasSideEffects; }
+ bool isMsAsm() const { return IsMsAsm; }
/// getType - InlineAsm's are always pointers.
///
@@ -61,7 +65,7 @@ public:
/// the specified constraint string is legal for the type. This returns true
/// if legal, false if not.
///
- static bool Verify(const FunctionType *Ty, const std::string &Constraints);
+ static bool Verify(const FunctionType *Ty, const StringRef &Constraints);
// Constraint String Parsing
enum ConstraintPrefix {
@@ -106,7 +110,7 @@ public:
/// Parse - Analyze the specified string (e.g. "=*&{eax}") and fill in the
/// fields in this structure. If the constraint string is not understood,
/// return true, otherwise return false.
- bool Parse(const std::string &Str,
+ bool Parse(const StringRef &Str,
std::vector<InlineAsm::ConstraintInfo> &ConstraintsSoFar);
};
@@ -114,7 +118,7 @@ public:
/// constraints and their prefixes. If this returns an empty vector, and if
/// the constraint string itself isn't empty, there was an error parsing.
static std::vector<ConstraintInfo>
- ParseConstraints(const std::string &ConstraintString);
+ ParseConstraints(const StringRef &ConstraintString);
/// ParseConstraints - Parse the constraints of this inlineasm object,
/// returning them the same way that ParseConstraints(str) does.
OpenPOWER on IntegriCloud