diff options
Diffstat (limited to 'lib/Bytecode/Writer/Writer.cpp')
-rw-r--r-- | lib/Bytecode/Writer/Writer.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/lib/Bytecode/Writer/Writer.cpp b/lib/Bytecode/Writer/Writer.cpp index f6d09c8220..5f614fddf0 100644 --- a/lib/Bytecode/Writer/Writer.cpp +++ b/lib/Bytecode/Writer/Writer.cpp @@ -606,7 +606,10 @@ void BytecodeWriter::outputInstruction(const Instruction &I) { unsigned Opcode = I.getOpcode(); unsigned NumOperands = I.getNumOperands(); - // Encode 'volatile load' as 62 and 'volatile store' as 63. + // Encode 'tail call' as 61, 'volatile load' as 62, and 'volatile store' as + // 63. + if (isa<CallInst>(I) && cast<CallInst>(I).isTailCall()) + Opcode = 61; if (isa<LoadInst>(I) && cast<LoadInst>(I).isVolatile()) Opcode = 62; if (isa<StoreInst>(I) && cast<StoreInst>(I).isVolatile()) |