1*89ba802bSDave Bartolomeo //===-- Line.cpp ----------------------------------------------------------===//
2*89ba802bSDave Bartolomeo //
3*89ba802bSDave Bartolomeo //                     The LLVM Compiler Infrastructure
4*89ba802bSDave Bartolomeo //
5*89ba802bSDave Bartolomeo // This file is distributed under the University of Illinois Open Source
6*89ba802bSDave Bartolomeo // License. See LICENSE.TXT for details.
7*89ba802bSDave Bartolomeo //
8*89ba802bSDave Bartolomeo //===----------------------------------------------------------------------===//
9*89ba802bSDave Bartolomeo 
10*89ba802bSDave Bartolomeo #include "llvm/DebugInfo/CodeView/Line.h"
11*89ba802bSDave Bartolomeo 
12*89ba802bSDave Bartolomeo using namespace llvm;
13*89ba802bSDave Bartolomeo using namespace codeview;
14*89ba802bSDave Bartolomeo 
15*89ba802bSDave Bartolomeo LineInfo::LineInfo(uint32_t StartLine, uint32_t EndLine, bool IsStatement) {
16*89ba802bSDave Bartolomeo   LineData = StartLine & StartLineMask;
17*89ba802bSDave Bartolomeo   uint32_t LineDelta = EndLine - StartLine;
18*89ba802bSDave Bartolomeo   LineData |= (LineDelta << EndLineDeltaShift) & EndLineDeltaMask;
19*89ba802bSDave Bartolomeo   if (IsStatement) {
20*89ba802bSDave Bartolomeo     LineData |= StatementFlag;
21*89ba802bSDave Bartolomeo   }
22*89ba802bSDave Bartolomeo }
23