diff options
author | Chris Lattner <sabre@nondot.org> | 2003-04-22 18:15:10 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2003-04-22 18:15:10 +0000 |
commit | 35834a503b3ad1ecbd8029f3deb0a3a9e243cf90 (patch) | |
tree | a9f744e6d33bcf2b7e517e69050bf603561a7e21 /llvm/lib/Bytecode | |
parent | cebde8d74c7a4cff2ddf49b6637e6be2b9275c6f (diff) | |
download | bcm5719-llvm-35834a503b3ad1ecbd8029f3deb0a3a9e243cf90.tar.gz bcm5719-llvm-35834a503b3ad1ecbd8029f3deb0a3a9e243cf90.zip |
Add support for reading and writing pointersize/endianness to and from bytecode
llvm-svn: 5839
Diffstat (limited to 'llvm/lib/Bytecode')
-rw-r--r-- | llvm/lib/Bytecode/Reader/Reader.cpp | 5 | ||||
-rw-r--r-- | llvm/lib/Bytecode/Writer/Writer.cpp | 4 |
2 files changed, 7 insertions, 2 deletions
diff --git a/llvm/lib/Bytecode/Reader/Reader.cpp b/llvm/lib/Bytecode/Reader/Reader.cpp index 5eb3861064e..fd4fd6fb0e1 100644 --- a/llvm/lib/Bytecode/Reader/Reader.cpp +++ b/llvm/lib/Bytecode/Reader/Reader.cpp @@ -526,6 +526,11 @@ bool BytecodeParser::ParseVersionInfo(const uchar *&Buf, const uchar *EndBuf) { return true; } + TheModule->setEndianness(isBigEndian ? Module::BigEndian : + Module::LittleEndian); + TheModule->setPointerSize(hasLongPointers ? Module::Pointer64 : + Module::Pointer32); + BCR_TRACE(1, "Bytecode Rev = " << (unsigned)RevisionNum << "\n"); BCR_TRACE(1, "BigEndian/LongPointers = " << isBigEndian << "," << hasLongPointers << "\n"); diff --git a/llvm/lib/Bytecode/Writer/Writer.cpp b/llvm/lib/Bytecode/Writer/Writer.cpp index 03a6c4668e9..f97d7e232b5 100644 --- a/llvm/lib/Bytecode/Writer/Writer.cpp +++ b/llvm/lib/Bytecode/Writer/Writer.cpp @@ -43,8 +43,8 @@ BytecodeWriter::BytecodeWriter(std::deque<unsigned char> &o, const Module *M) // Emit the top level CLASS block. BytecodeBlock ModuleBlock(BytecodeFormat::Module, Out); - bool isBigEndian = true; - bool hasLongPointers = true; + bool isBigEndian = M->isBigEndian(); + bool hasLongPointers = M->has64BitPointers(); // Output the version identifier... we are currently on bytecode version #2 unsigned Version = (2 << 4) | isBigEndian | (hasLongPointers << 1); |