mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-28 04:33:05 +00:00
1d09d56fe1
This adds the actual lib/Target/SystemZ target files necessary to implement the SystemZ target. Note that at this point, the target cannot yet be built since the configure bits are missing. Those will be provided shortly by a follow-on patch. This version of the patch incorporates feedback from reviews by Chris Lattner and Anton Korobeynikov. Thanks to all reviewers! Patch by Richard Sandiford. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181203 91177308-0d34-0410-b5e6-96231b3b80d8
49 lines
1.4 KiB
C++
49 lines
1.4 KiB
C++
//===-- SystemZSubtarget.h - SystemZ subtarget information -----*- C++ -*--===//
|
|
//
|
|
// The LLVM Compiler Infrastructure
|
|
//
|
|
// This file is distributed under the University of Illinois Open Source
|
|
// License. See LICENSE.TXT for details.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
//
|
|
// This file declares the SystemZ specific subclass of TargetSubtargetInfo.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#ifndef SYSTEMZSUBTARGET_H
|
|
#define SYSTEMZSUBTARGET_H
|
|
|
|
#include "llvm/ADT/Triple.h"
|
|
#include "llvm/Target/TargetSubtargetInfo.h"
|
|
#include <string>
|
|
|
|
#define GET_SUBTARGETINFO_HEADER
|
|
#include "SystemZGenSubtargetInfo.inc"
|
|
|
|
namespace llvm {
|
|
class GlobalValue;
|
|
class StringRef;
|
|
|
|
class SystemZSubtarget : public SystemZGenSubtargetInfo {
|
|
private:
|
|
Triple TargetTriple;
|
|
|
|
public:
|
|
SystemZSubtarget(const std::string &TT, const std::string &CPU,
|
|
const std::string &FS);
|
|
|
|
// Automatically generated by tblgen.
|
|
void ParseSubtargetFeatures(StringRef CPU, StringRef FS);
|
|
|
|
// Return true if GV can be accessed using LARL for reloc model RM
|
|
// and code model CM.
|
|
bool isPC32DBLSymbol(const GlobalValue *GV, Reloc::Model RM,
|
|
CodeModel::Model CM) const;
|
|
|
|
bool isTargetELF() const { return TargetTriple.isOSBinFormatELF(); }
|
|
};
|
|
} // end namespace llvm
|
|
|
|
#endif
|