mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-14 11:32:34 +00:00
c91cbb9b0c
but I cannot reproduce the problem and have scrubed my sources and even tested with llvm-lit -v --vg. Support for Mips register information sections. Mips ELF object files have a section that is dedicated to register use info. Some of this information such as the assumed Global Pointer value is used by the linker in relocation resolution. The register info file is .reginfo in o32 and .MIPS.options in 64 and n32 abi files. This patch contains the changes needed to create the sections, but leaves the actual register accounting for a future patch. Contributer: Jack Carter git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172847 91177308-0d34-0410-b5e6-96231b3b80d8
44 lines
1.5 KiB
C++
44 lines
1.5 KiB
C++
//===-- llvm/Target/MipsTargetObjectFile.h - Mips Object Info ---*- C++ -*-===//
|
|
//
|
|
// The LLVM Compiler Infrastructure
|
|
//
|
|
// This file is distributed under the University of Illinois Open Source
|
|
// License. See LICENSE.TXT for details.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#ifndef LLVM_TARGET_MIPS_TARGETOBJECTFILE_H
|
|
#define LLVM_TARGET_MIPS_TARGETOBJECTFILE_H
|
|
|
|
#include "llvm/CodeGen/TargetLoweringObjectFileImpl.h"
|
|
|
|
namespace llvm {
|
|
|
|
class MipsTargetObjectFile : public TargetLoweringObjectFileELF {
|
|
const MCSection *SmallDataSection;
|
|
const MCSection *SmallBSSSection;
|
|
const MCSection *ReginfoSection;
|
|
public:
|
|
|
|
void Initialize(MCContext &Ctx, const TargetMachine &TM);
|
|
|
|
|
|
/// IsGlobalInSmallSection - Return true if this global address should be
|
|
/// placed into small data/bss section.
|
|
bool IsGlobalInSmallSection(const GlobalValue *GV,
|
|
const TargetMachine &TM, SectionKind Kind)const;
|
|
bool IsGlobalInSmallSection(const GlobalValue *GV,
|
|
const TargetMachine &TM) const;
|
|
|
|
const MCSection *SelectSectionForGlobal(const GlobalValue *GV,
|
|
SectionKind Kind,
|
|
Mangler *Mang,
|
|
const TargetMachine &TM) const;
|
|
|
|
// TODO: Classify globals as mips wishes.
|
|
const MCSection *getReginfoSection() const { return ReginfoSection; }
|
|
};
|
|
} // end namespace llvm
|
|
|
|
#endif
|