• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2019 the V8 project 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 #ifndef V8_SNAPSHOT_EMBEDDED_PLATFORM_EMBEDDED_FILE_WRITER_MAC_H_
6 #define V8_SNAPSHOT_EMBEDDED_PLATFORM_EMBEDDED_FILE_WRITER_MAC_H_
7 
8 #include "src/base/macros.h"
9 #include "src/snapshot/embedded/platform-embedded-file-writer-base.h"
10 
11 namespace v8 {
12 namespace internal {
13 
14 class PlatformEmbeddedFileWriterMac : public PlatformEmbeddedFileWriterBase {
15  public:
PlatformEmbeddedFileWriterMac(EmbeddedTargetArch target_arch,EmbeddedTargetOs target_os)16   PlatformEmbeddedFileWriterMac(EmbeddedTargetArch target_arch,
17                                 EmbeddedTargetOs target_os)
18       : target_arch_(target_arch), target_os_(target_os) {
19     USE(target_arch_);
20     USE(target_os_);
21     DCHECK_EQ(target_os_, EmbeddedTargetOs::kMac);
22   }
23 
24   void SectionText() override;
25   void SectionData() override;
26   void SectionRoData() override;
27 
28   void AlignToCodeAlignment() override;
29   void PaddingAfterCode() override;
30   void AlignToDataAlignment() override;
31 
32   void DeclareUint32(const char* name, uint32_t value) override;
33   void DeclarePointerToSymbol(const char* name, const char* target) override;
34 
35   void DeclareSymbolGlobal(const char* name) override;
36   void DeclareLabel(const char* name) override;
37 
38   void SourceInfo(int fileid, const char* filename, int line) override;
39   void DeclareFunctionBegin(const char* name, uint32_t size) override;
40   void DeclareFunctionEnd(const char* name) override;
41 
42   void Comment(const char* string) override;
43 
44   void FilePrologue() override;
45   void DeclareExternalFilename(int fileid, const char* filename) override;
46   void FileEpilogue() override;
47 
48   int IndentedDataDirective(DataDirective directive) override;
49 
50  private:
51   const EmbeddedTargetArch target_arch_;
52   const EmbeddedTargetOs target_os_;
53 };
54 
55 }  // namespace internal
56 }  // namespace v8
57 
58 #endif  // V8_SNAPSHOT_EMBEDDED_PLATFORM_EMBEDDED_FILE_WRITER_MAC_H_
59