Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(75)

Side by Side Diff: src/eh-frame.h

Issue 2416243002: Make unittests work in component build (Closed)
Patch Set: updates Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/compiler/zone-stats.h ('k') | src/factory.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2016 the V8 project authors. All rights reserved. 1 // Copyright 2016 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef V8_EH_FRAME_H_ 5 #ifndef V8_EH_FRAME_H_
6 #define V8_EH_FRAME_H_ 6 #define V8_EH_FRAME_H_
7 7
8 #include "src/base/compiler-specific.h"
9 #include "src/globals.h"
8 #include "src/macro-assembler.h" 10 #include "src/macro-assembler.h"
9 11
10 namespace v8 { 12 namespace v8 {
11 namespace internal { 13 namespace internal {
12 14
13 class EhFrameConstants final : public AllStatic { 15 class V8_EXPORT_PRIVATE EhFrameConstants final
16 : public NON_EXPORTED_BASE(AllStatic) {
14 public: 17 public:
15 enum class DwarfOpcodes : byte { 18 enum class DwarfOpcodes : byte {
16 kNop = 0x00, 19 kNop = 0x00,
17 kAdvanceLoc1 = 0x02, 20 kAdvanceLoc1 = 0x02,
18 kAdvanceLoc2 = 0x03, 21 kAdvanceLoc2 = 0x03,
19 kAdvanceLoc4 = 0x04, 22 kAdvanceLoc4 = 0x04,
20 kSameValue = 0x08, 23 kSameValue = 0x08,
21 kDefCfa = 0x0c, 24 kDefCfa = 0x0c,
22 kDefCfaRegister = 0x0d, 25 kDefCfaRegister = 0x0d,
23 kDefCfaOffset = 0x0e, 26 kDefCfaOffset = 0x0e,
(...skipping 30 matching lines...) Expand all
54 static const int kCodeAlignmentFactor; 57 static const int kCodeAlignmentFactor;
55 static const int kDataAlignmentFactor; 58 static const int kDataAlignmentFactor;
56 59
57 static const int kFdeVersionSize = 1; 60 static const int kFdeVersionSize = 1;
58 static const int kFdeEncodingSpecifiersSize = 3; 61 static const int kFdeEncodingSpecifiersSize = 3;
59 62
60 static const int kEhFrameHdrVersion = 1; 63 static const int kEhFrameHdrVersion = 1;
61 static const int kEhFrameHdrSize = 20; 64 static const int kEhFrameHdrSize = 20;
62 }; 65 };
63 66
64 class EhFrameWriter { 67 class V8_EXPORT_PRIVATE EhFrameWriter {
65 public: 68 public:
66 explicit EhFrameWriter(Zone* zone); 69 explicit EhFrameWriter(Zone* zone);
67 70
68 // The empty frame is a hack to trigger fp-based unwinding in Linux perf 71 // The empty frame is a hack to trigger fp-based unwinding in Linux perf
69 // compiled with libunwind support when processing DWARF-based call graphs. 72 // compiled with libunwind support when processing DWARF-based call graphs.
70 // 73 //
71 // It is effectively a valid eh_frame_hdr with an empty look up table. 74 // It is effectively a valid eh_frame_hdr with an empty look up table.
72 // 75 //
73 static void WriteEmptyEhFrame(std::ostream& stream); // NOLINT 76 static void WriteEmptyEhFrame(std::ostream& stream); // NOLINT
74 77
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after
189 int cie_size_; 192 int cie_size_;
190 int last_pc_offset_; 193 int last_pc_offset_;
191 InternalState writer_state_; 194 InternalState writer_state_;
192 Register base_register_; 195 Register base_register_;
193 int base_offset_; 196 int base_offset_;
194 ZoneVector<byte> eh_frame_buffer_; 197 ZoneVector<byte> eh_frame_buffer_;
195 198
196 DISALLOW_COPY_AND_ASSIGN(EhFrameWriter); 199 DISALLOW_COPY_AND_ASSIGN(EhFrameWriter);
197 }; 200 };
198 201
199 class EhFrameIterator { 202 class V8_EXPORT_PRIVATE EhFrameIterator {
200 public: 203 public:
201 EhFrameIterator(const byte* start, const byte* end) 204 EhFrameIterator(const byte* start, const byte* end)
202 : start_(start), next_(start), end_(end) { 205 : start_(start), next_(start), end_(end) {
203 DCHECK_LE(start, end); 206 DCHECK_LE(start, end);
204 } 207 }
205 208
206 void SkipCie() { 209 void SkipCie() {
207 DCHECK_EQ(next_, start_); 210 DCHECK_EQ(next_, start_);
208 next_ += ReadUnalignedUInt32(next_) + kInt32Size; 211 next_ += ReadUnalignedUInt32(next_) + kInt32Size;
209 } 212 }
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
288 291
289 DISALLOW_COPY_AND_ASSIGN(EhFrameDisassembler); 292 DISALLOW_COPY_AND_ASSIGN(EhFrameDisassembler);
290 }; 293 };
291 294
292 #endif 295 #endif
293 296
294 } // namespace internal 297 } // namespace internal
295 } // namespace v8 298 } // namespace v8
296 299
297 #endif 300 #endif
OLDNEW
« no previous file with comments | « src/compiler/zone-stats.h ('k') | src/factory.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698