forked from OSchip/llvm-project
				
			Define Config::Is64.
This is a shorthand for Config->Wordsize == 8. So this is not strictly necessary but seems handy. "Is 64 bit?" is easier to read than "Is wordsize 8 byte?" llvm-svn: 298463
This commit is contained in:
		
							parent
							
								
									4226a9f2b8
								
							
						
					
					
						commit
						7ab38c3a12
					
				| 
						 | 
				
			
			@ -173,7 +173,10 @@ struct Configuration {
 | 
			
		|||
  // output file. Usually false because we consume relocations.
 | 
			
		||||
  bool CopyRelocs;
 | 
			
		||||
 | 
			
		||||
  // True if the target is little-endian. False if the target is big-endian.
 | 
			
		||||
  // True if the target is ELF64. False if ELF32.
 | 
			
		||||
  bool Is64;
 | 
			
		||||
 | 
			
		||||
  // True if the target is little-endian. False if big-endian.
 | 
			
		||||
  bool IsLE;
 | 
			
		||||
 | 
			
		||||
  // endianness::little if IsLE is true. endianness::big otherwise.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -707,20 +707,20 @@ void LinkerDriver::readConfigs(opt::InputArgList &Args) {
 | 
			
		|||
static void setConfigs() {
 | 
			
		||||
  ELFKind Kind = Config->EKind;
 | 
			
		||||
  uint16_t Machine = Config->EMachine;
 | 
			
		||||
  bool Is64 = (Kind == ELF64LEKind || Kind == ELF64BEKind);
 | 
			
		||||
 | 
			
		||||
  // There is an ILP32 ABI for x86-64, although it's not very popular.
 | 
			
		||||
  // It is called the x32 ABI.
 | 
			
		||||
  bool IsX32 = (Kind == ELF32LEKind && Machine == EM_X86_64);
 | 
			
		||||
 | 
			
		||||
  Config->CopyRelocs = (Config->Relocatable || Config->EmitRelocs);
 | 
			
		||||
  Config->Is64 = (Kind == ELF64LEKind || Kind == ELF64BEKind);
 | 
			
		||||
  Config->IsLE = (Kind == ELF32LEKind || Kind == ELF64LEKind);
 | 
			
		||||
  Config->Endianness =
 | 
			
		||||
      Config->IsLE ? support::endianness::little : support::endianness::big;
 | 
			
		||||
  Config->IsMips64EL = (Kind == ELF64LEKind && Machine == EM_MIPS);
 | 
			
		||||
  Config->IsRela = Is64 || IsX32 || Config->MipsN32Abi;
 | 
			
		||||
  Config->IsRela = Config->Is64 || IsX32 || Config->MipsN32Abi;
 | 
			
		||||
  Config->Pic = Config->Pie || Config->Shared;
 | 
			
		||||
  Config->Wordsize = Is64 ? 8 : 4;
 | 
			
		||||
  Config->Wordsize = Config->Is64 ? 8 : 4;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Returns a value of "-format" option.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -140,8 +140,8 @@ OutputSection *SectionBase::getOutputSection() {
 | 
			
		|||
// Uncompress section contents. Note that this function is called
 | 
			
		||||
// from parallel_for_each, so it must be thread-safe.
 | 
			
		||||
void InputSectionBase::uncompress() {
 | 
			
		||||
  Decompressor Dec = check(Decompressor::create(
 | 
			
		||||
      Name, toStringRef(Data), Config->IsLE, Config->Wordsize == 8));
 | 
			
		||||
  Decompressor Dec = check(Decompressor::create(Name, toStringRef(Data),
 | 
			
		||||
                                                Config->IsLE, Config->Is64));
 | 
			
		||||
 | 
			
		||||
  size_t Size = Dec.getDecompressedSize();
 | 
			
		||||
  char *OutputBuf;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -846,7 +846,7 @@ uint64_t MipsGotSection::getGp() const {
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
static void writeUint(uint8_t *Buf, uint64_t Val) {
 | 
			
		||||
  if (Config->Wordsize == 8)
 | 
			
		||||
  if (Config->Is64)
 | 
			
		||||
    write64(Buf, Val, Config->Endianness);
 | 
			
		||||
  else
 | 
			
		||||
    write32(Buf, Val, Config->Endianness);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue