mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-25 13:24:46 +00:00
Simple ELF32/64 binary files can now be emitted for x86 and x86_64 without
relocation sections. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73038 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -134,11 +134,22 @@ namespace llvm {
|
||||
P[2] = (X >> (isLittleEndian ? 16 : 8)) & 255;
|
||||
P[3] = (X >> (isLittleEndian ? 24 : 0)) & 255;
|
||||
}
|
||||
void fixxword(uint64_t X, unsigned Offset) {
|
||||
unsigned char *P = &Output[Offset];
|
||||
P[0] = (X >> (isLittleEndian ? 0 : 56)) & 255;
|
||||
P[1] = (X >> (isLittleEndian ? 8 : 48)) & 255;
|
||||
P[2] = (X >> (isLittleEndian ? 16 : 40)) & 255;
|
||||
P[3] = (X >> (isLittleEndian ? 24 : 32)) & 255;
|
||||
P[4] = (X >> (isLittleEndian ? 32 : 24)) & 255;
|
||||
P[5] = (X >> (isLittleEndian ? 40 : 16)) & 255;
|
||||
P[6] = (X >> (isLittleEndian ? 48 : 8)) & 255;
|
||||
P[7] = (X >> (isLittleEndian ? 56 : 0)) & 255;
|
||||
}
|
||||
void fixaddr(uint64_t X, unsigned Offset) {
|
||||
if (!is64Bit)
|
||||
fixword((unsigned)X, Offset);
|
||||
else
|
||||
assert(0 && "Emission of 64-bit data not implemented yet!");
|
||||
fixxword(X, Offset);
|
||||
}
|
||||
|
||||
unsigned char &operator[](unsigned Index) {
|
||||
|
Reference in New Issue
Block a user