diff options
-rw-r--r-- | include/llvm/Bitcode/NaCl/NaClReaderWriter.h | 7 | ||||
-rw-r--r-- | lib/Bitcode/NaCl/Writer/NaClBitcodeWriter.cpp | 19 |
2 files changed, 16 insertions, 10 deletions
diff --git a/include/llvm/Bitcode/NaCl/NaClReaderWriter.h b/include/llvm/Bitcode/NaCl/NaClReaderWriter.h index d415b85de8..c3c15851a0 100644 --- a/include/llvm/Bitcode/NaCl/NaClReaderWriter.h +++ b/include/llvm/Bitcode/NaCl/NaClReaderWriter.h @@ -24,6 +24,8 @@ namespace llvm { class LLVMContext; class Module; class raw_ostream; + class NaClBitcodeHeader; + class NaClBitstreamWriter; /// \brief Defines the integer bit size used to model pointers in PNaCl. static const unsigned PNaClIntPtrTypeBitSize = 32; @@ -98,5 +100,10 @@ namespace llvm { BufPtr[3] == 'E'; } + // NaClWriteHeader - Write the contents of the bitcode header to the + // corresponding bitcode stream. + void NaClWriteHeader(const NaClBitcodeHeader &Header, + NaClBitstreamWriter &Stream); + } // end llvm namespace #endif diff --git a/lib/Bitcode/NaCl/Writer/NaClBitcodeWriter.cpp b/lib/Bitcode/NaCl/Writer/NaClBitcodeWriter.cpp index eb22910c8d..968be249ed 100644 --- a/lib/Bitcode/NaCl/Writer/NaClBitcodeWriter.cpp +++ b/lib/Bitcode/NaCl/Writer/NaClBitcodeWriter.cpp @@ -1183,9 +1183,14 @@ static void WriteModule(const Module *M, NaClBitstreamWriter &Stream) { static const size_t kMaxVariableFieldSize = 256; // Write out the given Header to the bitstream. -static void WriteHeader( - const NaClBitcodeHeader &Header, - NaClBitstreamWriter& Stream) { +void llvm::NaClWriteHeader(const NaClBitcodeHeader &Header, + NaClBitstreamWriter &Stream) { + // Emit the file magic number; + Stream.Emit((unsigned)'P', 8); + Stream.Emit((unsigned)'E', 8); + Stream.Emit((unsigned)'X', 8); + Stream.Emit((unsigned)'E', 8); + // Emit placeholder for number of bytes used to hold header fields. // This value is necessary so that the streamable reader can preallocate // a buffer to read the fields. @@ -1228,12 +1233,6 @@ void llvm::NaClWriteBitcodeToFile(const Module *M, raw_ostream &Out, { NaClBitstreamWriter Stream(Buffer); - // Emit the file header. - Stream.Emit((unsigned)'P', 8); - Stream.Emit((unsigned)'E', 8); - Stream.Emit((unsigned)'X', 8); - Stream.Emit((unsigned)'E', 8); - // Define header and install into stream. { NaClBitcodeHeader Header; @@ -1245,7 +1244,7 @@ void llvm::NaClWriteBitcodeToFile(const Module *M, raw_ostream &Out, (!AcceptSupportedOnly && Header.IsReadable()))) { report_fatal_error(Header.Unsupported()); } - WriteHeader(Header, Stream); + NaClWriteHeader(Header, Stream); } // Emit the module. |