aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Bitcode/Reader
diff options
context:
space:
mode:
authorDale Johannesen <dalej@apple.com>2009-10-13 20:46:56 +0000
committerDale Johannesen <dalej@apple.com>2009-10-13 20:46:56 +0000
commit4360298d2bf3c1ba8595a415cfa235df0bc76335 (patch)
treed8ccc1e4677e43ef3420c6a3a18007298a866a3e /lib/Bitcode/Reader
parent9578c7aad61935364b28677f19e330b621016148 (diff)
downloadexternal_llvm-4360298d2bf3c1ba8595a415cfa235df0bc76335.zip
external_llvm-4360298d2bf3c1ba8595a415cfa235df0bc76335.tar.gz
external_llvm-4360298d2bf3c1ba8595a415cfa235df0bc76335.tar.bz2
Add an "msasm" flag to inline asm as suggested in PR 5125.
A little ugliness is accepted to keep the binary file format compatible. No functional change yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84020 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Bitcode/Reader')
-rw-r--r--lib/Bitcode/Reader/BitcodeReader.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/lib/Bitcode/Reader/BitcodeReader.cpp b/lib/Bitcode/Reader/BitcodeReader.cpp
index 50b99ae..4eb12c6 100644
--- a/lib/Bitcode/Reader/BitcodeReader.cpp
+++ b/lib/Bitcode/Reader/BitcodeReader.cpp
@@ -1164,7 +1164,8 @@ bool BitcodeReader::ParseConstants() {
case bitc::CST_CODE_INLINEASM: {
if (Record.size() < 2) return Error("Invalid INLINEASM record");
std::string AsmStr, ConstrStr;
- bool HasSideEffects = Record[0];
+ bool HasSideEffects = Record[0] & 1;
+ bool IsMsAsm = Record[0] >> 1;
unsigned AsmStrSize = Record[1];
if (2+AsmStrSize >= Record.size())
return Error("Invalid INLINEASM record");
@@ -1178,7 +1179,7 @@ bool BitcodeReader::ParseConstants() {
ConstrStr += (char)Record[3+AsmStrSize+i];
const PointerType *PTy = cast<PointerType>(CurTy);
V = InlineAsm::get(cast<FunctionType>(PTy->getElementType()),
- AsmStr, ConstrStr, HasSideEffects);
+ AsmStr, ConstrStr, HasSideEffects, IsMsAsm);
break;
}
}