mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-25 00:24:26 +00:00
Implement support for a new LLVM 1.3 bytecode format, which uses uint's
to index into structure types and allows arbitrary 32- and 64-bit integer types to index into sequential types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12651 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -647,12 +647,10 @@ void BytecodeParser::ParseVersionInfo(const unsigned char *&Buf,
|
||||
// Default values for the current bytecode version
|
||||
hasInconsistentModuleGlobalInfo = false;
|
||||
hasExplicitPrimitiveZeros = false;
|
||||
hasRestrictedGEPTypes = false;
|
||||
|
||||
switch (RevisionNum) {
|
||||
case 0: // LLVM 1.0, 1.1 release version
|
||||
// Compared to rev #2, we added support for weak linkage, a more dense
|
||||
// encoding, and better varargs support.
|
||||
|
||||
// Base LLVM 1.0 bytecode format.
|
||||
hasInconsistentModuleGlobalInfo = true;
|
||||
hasExplicitPrimitiveZeros = true;
|
||||
@ -663,6 +661,13 @@ void BytecodeParser::ParseVersionInfo(const unsigned char *&Buf,
|
||||
// Also, it fixed the problem where the size of the ModuleGlobalInfo block
|
||||
// included the size for the alignment at the end, where the rest of the
|
||||
// blocks did not.
|
||||
|
||||
// LLVM 1.2 and before required that GEP indices be ubyte constants for
|
||||
// structures and longs for sequential types.
|
||||
hasRestrictedGEPTypes = true;
|
||||
|
||||
// FALL THROUGH
|
||||
case 2: // LLVM 1.3 release version
|
||||
break;
|
||||
|
||||
default:
|
||||
|
Reference in New Issue
Block a user