aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/llvm/Bitcode/NaCl/NaClReaderWriter.h7
-rw-r--r--lib/Bitcode/NaCl/Writer/NaClBitcodeWriter.cpp19
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.