mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-14 11:32:34 +00:00
Added option -code-model to set code model (only used in 64-bit) mode. Valid
values include small, kernel, medium, large, and default. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29009 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
9e4692c617
commit
152ed05353
@ -44,6 +44,17 @@ namespace Reloc {
|
||||
};
|
||||
}
|
||||
|
||||
// Code model types.
|
||||
namespace CodeModel {
|
||||
enum Model {
|
||||
Default,
|
||||
Small,
|
||||
Kernel,
|
||||
Medium,
|
||||
Large
|
||||
};
|
||||
}
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
///
|
||||
/// TargetMachine - Primary interface to the complete machine description for
|
||||
@ -132,6 +143,13 @@ public:
|
||||
/// setRelocationModel - Sets the code generation relocation model.
|
||||
static void setRelocationModel(Reloc::Model Model);
|
||||
|
||||
/// getCodeModel - Returns the code model. The choices are small, kernel,
|
||||
/// medium, large, and target default.
|
||||
static CodeModel::Model getCodeModel();
|
||||
|
||||
/// setCodeModel - Sets the code model.
|
||||
static void setCodeModel(CodeModel::Model Model);
|
||||
|
||||
/// CodeGenFileType - These enums are meant to be passed into
|
||||
/// addPassesToEmitFile to indicate what type of file to emit.
|
||||
enum CodeGenFileType {
|
||||
|
@ -28,6 +28,7 @@ namespace llvm {
|
||||
bool UnsafeFPMath;
|
||||
bool FiniteOnlyFPMathOption;
|
||||
Reloc::Model RelocationModel;
|
||||
CodeModel::Model CMModel;
|
||||
}
|
||||
namespace {
|
||||
cl::opt<bool, true> PrintCode("print-machineinstrs",
|
||||
@ -70,6 +71,24 @@ namespace {
|
||||
clEnumValN(Reloc::DynamicNoPIC, "dynamic-no-pic",
|
||||
"Relocatable external references, non-relocatable code"),
|
||||
clEnumValEnd));
|
||||
cl::opt<llvm::CodeModel::Model, true>
|
||||
DefCodeModel(
|
||||
"code-model",
|
||||
cl::desc("Choose relocation model"),
|
||||
cl::location(CMModel),
|
||||
cl::init(CodeModel::Default),
|
||||
cl::values(
|
||||
clEnumValN(CodeModel::Default, "default",
|
||||
"Target default code model"),
|
||||
clEnumValN(CodeModel::Small, "small",
|
||||
"Small code model"),
|
||||
clEnumValN(CodeModel::Kernel, "kernel",
|
||||
"Kernel code model"),
|
||||
clEnumValN(CodeModel::Medium, "medium",
|
||||
"Medium code model"),
|
||||
clEnumValN(CodeModel::Large, "large",
|
||||
"Large code model"),
|
||||
clEnumValEnd));
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
@ -94,6 +113,17 @@ void TargetMachine::setRelocationModel(Reloc::Model Model) {
|
||||
RelocationModel = Model;
|
||||
}
|
||||
|
||||
/// getCodeModel - Returns the code model. The choices are small, kernel,
|
||||
/// medium, large, and target default.
|
||||
CodeModel::Model TargetMachine::getCodeModel() {
|
||||
return CMModel;
|
||||
}
|
||||
|
||||
/// setCodeModel - Sets the code model.
|
||||
void TargetMachine::setCodeModel(CodeModel::Model Model) {
|
||||
CMModel = Model;
|
||||
}
|
||||
|
||||
namespace llvm {
|
||||
/// FiniteOnlyFPMath - This returns true when the -enable-finite-only-fp-math
|
||||
/// option is specified on the command line. If this returns false (default),
|
||||
|
Loading…
Reference in New Issue
Block a user