OLD | NEW |
| (Empty) |
1 // Copyright (c) 2011 The Native Client Authors. All rights reserved. | |
2 // Use of this source code is governed by a BSD-style license that can be | |
3 // found in the LICENSE file. | |
4 | |
5 #include "dwarf_reader/dwarf_frame_info_reader.h" | |
6 #include "dwarf_reader/dwarf_reader.h" | |
7 | |
8 namespace dwarf_reader { | |
9 | |
10 DwarfFrameInfoReader::DwarfFrameInfoReader(IDwarfReader *reader) | |
11 : reader_(reader) {} | |
12 | |
13 bool DwarfFrameInfoReader::Entry(size_t offset, | |
14 uint64 address, | |
15 uint64 length, | |
16 uint8 version, | |
17 const string &augmentation, | |
18 unsigned return_address) { | |
19 return reader_->BeginCfiEntry(offset, | |
20 address, | |
21 length, | |
22 version, | |
23 augmentation.c_str(), | |
24 return_address); | |
25 } | |
26 | |
27 bool DwarfFrameInfoReader::UndefinedRule(uint64 address, int reg) { | |
28 return reader_->AddCfiRule(address, | |
29 reg, | |
30 IDwarfReader::CFIRT_UNDEFINED, | |
31 0, | |
32 0, | |
33 NULL, | |
34 0); | |
35 } | |
36 | |
37 bool DwarfFrameInfoReader::SameValueRule(uint64 address, int reg) { | |
38 return reader_->AddCfiRule(address, | |
39 reg, | |
40 IDwarfReader::CFIRT_SAMEVALUE, | |
41 0, | |
42 0, | |
43 NULL, | |
44 0); | |
45 } | |
46 | |
47 bool DwarfFrameInfoReader::OffsetRule(uint64 address, | |
48 int reg, | |
49 int base_register, | |
50 long offset) { | |
51 return reader_->AddCfiRule(address, | |
52 reg, | |
53 IDwarfReader::CFIRT_OFFSET, | |
54 base_register, | |
55 offset, | |
56 NULL, | |
57 0); | |
58 } | |
59 | |
60 bool DwarfFrameInfoReader::ValOffsetRule(uint64 address, | |
61 int reg, | |
62 int base_register, | |
63 long offset) { | |
64 return reader_->AddCfiRule(address, | |
65 reg, | |
66 IDwarfReader::CFIRT_VALOFFSET, | |
67 base_register, | |
68 offset, | |
69 NULL, | |
70 0); | |
71 } | |
72 | |
73 bool DwarfFrameInfoReader::RegisterRule(uint64 address, | |
74 int reg, | |
75 int base_register) { | |
76 return reader_->AddCfiRule(address, | |
77 reg, | |
78 IDwarfReader::CFIRT_REGISTER, | |
79 base_register, | |
80 0, | |
81 NULL, | |
82 0); | |
83 } | |
84 | |
85 bool DwarfFrameInfoReader::ExpressionRule(uint64 address, int reg, | |
86 const string &expression) { | |
87 return reader_->AddCfiRule(address, reg, IDwarfReader::CFIRT_EXPRESSION, | |
88 0, 0, expression.c_str(), | |
89 expression.length()); | |
90 } | |
91 | |
92 bool DwarfFrameInfoReader::ValExpressionRule(uint64 address, int reg, | |
93 const string &expression) { | |
94 return reader_->AddCfiRule(address, reg, | |
95 IDwarfReader::CFIRT_VALEXPRESSION, 0, 0, | |
96 expression.c_str(), | |
97 expression.length()); | |
98 } | |
99 | |
100 bool DwarfFrameInfoReader::End() { | |
101 return reader_->EndCfiEntry(); | |
102 } | |
103 | |
104 } // namespace dwarf_reader | |
OLD | NEW |