5#ifndef V8_SNAPSHOT_EMBEDDED_EMBEDDED_FILE_WRITER_H_ 
    6#define V8_SNAPSHOT_EMBEDDED_EMBEDDED_FILE_WRITER_H_ 
   20#if defined(V8_OS_WIN64) 
   43#if defined(V8_OS_WIN64) 
   44  void SetBuiltinUnwindData(
 
   46      const win64_unwindinfo::BuiltinUnwindInfo& unwinding_info)
 override {
 
   48    unwind_infos_[
static_cast<int>(
builtin)] = unwinding_info;
 
   57    if (embedded_variant == 
nullptr) 
return;
 
 
   75    std::unique_ptr<PlatformEmbeddedFileWriterBase> writer =
 
 
   99    w->
Comment(
"Autogenerated file. Do not edit.");
 
 
  111        "Source positions in the embedded blob refer to filenames by id.");
 
  112    w->
Comment(
"Assembly directives here map the id to a filename.");
 
  117    for (
int i = 0; 
i < 
size; 
i++) {
 
 
  128        embedded_blob_code_symbol;
 
  129    base::SNPrintF(embedded_blob_code_symbol, 
"v8_%s_embedded_blob_code_",
 
  131    return std::string{embedded_blob_code_symbol.
begin()};
 
 
  136        embedded_blob_data_symbol;
 
  137    base::SNPrintF(embedded_blob_data_symbol, 
"v8_%s_embedded_blob_data_",
 
  139    return std::string{embedded_blob_data_symbol.
begin()};
 
 
  144    w->
Comment(
"The embedded blob data section starts here.");
 
 
  160                          std::string name) 
const;
 
  168#if defined(V8_OS_WIN_X64) 
  170                            uint64_t rva_start, uint64_t rva_end) 
const;
 
  189#if defined(V8_OS_WIN64) 
 
static FILE * FOpen(const char *path, const char *mode)
constexpr T * begin() const
static constexpr int kBuiltinCount
void PrepareBuiltinSourcePositionMap(Builtins *builtins) override
static FILE * GetFileDescriptorOrDie(const char *filename)
const char * target_arch_
const char * embedded_src_path_
void WriteCodeSection(PlatformEmbeddedFileWriterBase *w, const i::EmbeddedData *blob) const
static constexpr int kFirstExternalFilenameId
std::string EmbeddedBlobDataSymbol() const
std::vector< LabelInfo > label_info_[Builtins::kBuiltinCount]
void WriteFileEpilogue(PlatformEmbeddedFileWriterBase *w, const i::EmbeddedData *blob) const
std::string EmbeddedBlobCodeSymbol() const
std::vector< uint8_t > source_positions_[Builtins::kBuiltinCount]
static int ExternalFilenameIdToIndex(int id)
void WriteEmbedded(const i::EmbeddedData *blob) const
void WriteDataSection(PlatformEmbeddedFileWriterBase *w, const i::EmbeddedData *blob) const
static int ExternalFilenameIndexToId(int index)
void WriteFilePrologue(PlatformEmbeddedFileWriterBase *w) const
std::vector< const char * > external_filenames_by_index_
int GetExternallyCompiledFilenameCount() const override
void SetTargetArch(const char *target_arch)
void MaybeWriteEmbeddedFile(const i::EmbeddedData *blob) const
void SetTargetOs(const char *target_os)
std::map< const char *, int > external_filenames_
static void WriteBinaryContentsAsInlineAssembly(PlatformEmbeddedFileWriterBase *w, const uint8_t *data, uint32_t size)
const char * embedded_variant_
void WriteBuiltinLabels(PlatformEmbeddedFileWriterBase *w, std::string name) const
void SetEmbeddedVariant(const char *embedded_variant)
static constexpr int kTemporaryStringLength
void SetEmbeddedFile(const char *embedded_src_path)
int LookupOrAddExternallyCompiledFilename(const char *filename) override
void WriteExternalFilenames(PlatformEmbeddedFileWriterBase *w) const
void WriteBuiltin(PlatformEmbeddedFileWriterBase *w, const i::EmbeddedData *blob, const Builtin builtin) const
const char * GetExternallyCompiledFilename(int fileid) const override
int SNPrintF(Vector< char > str, const char *format,...)
void PrintF(const char *format,...)
std::unique_ptr< PlatformEmbeddedFileWriterBase > NewPlatformEmbeddedFileWriter(const char *target_arch, const char *target_os)
static constexpr char kDefaultEmbeddedVariant[]
#define CHECK_EQ(lhs, rhs)
#define DCHECK_LT(v1, v2)