diff options
author | Venkatraman Govindaraju <venkatra@cs.wisc.edu> | 2014-01-24 07:10:19 +0000 |
---|---|---|
committer | Venkatraman Govindaraju <venkatra@cs.wisc.edu> | 2014-01-24 07:10:19 +0000 |
commit | dc3bcc19cff5be9ac4b4211f1be49cd0b2ea06ee (patch) | |
tree | 58e4116c5afa6c17d56329a2cea529abbca41ace /llvm/lib/Target/Sparc/MCTargetDesc/SparcMCTargetDesc.cpp | |
parent | e758ddcd16f701225ac673c5f38e2e04b9d24faa (diff) | |
download | bcm5719-llvm-dc3bcc19cff5be9ac4b4211f1be49cd0b2ea06ee.tar.gz bcm5719-llvm-dc3bcc19cff5be9ac4b4211f1be49cd0b2ea06ee.zip |
[SparcV9] Add support for JIT in Sparc64.
With this change, all supported tests in test/ExecutionEngine pass in sparcv9.
llvm-svn: 199977
Diffstat (limited to 'llvm/lib/Target/Sparc/MCTargetDesc/SparcMCTargetDesc.cpp')
-rw-r--r-- | llvm/lib/Target/Sparc/MCTargetDesc/SparcMCTargetDesc.cpp | 24 |
1 files changed, 18 insertions, 6 deletions
diff --git a/llvm/lib/Target/Sparc/MCTargetDesc/SparcMCTargetDesc.cpp b/llvm/lib/Target/Sparc/MCTargetDesc/SparcMCTargetDesc.cpp index f7934e4ed28..2dbfff2014a 100644 --- a/llvm/lib/Target/Sparc/MCTargetDesc/SparcMCTargetDesc.cpp +++ b/llvm/lib/Target/Sparc/MCTargetDesc/SparcMCTargetDesc.cpp @@ -68,9 +68,13 @@ static MCCodeGenInfo *createSparcMCCodeGenInfo(StringRef TT, Reloc::Model RM, CodeGenOpt::Level OL) { MCCodeGenInfo *X = new MCCodeGenInfo(); - // The default 32-bit code model is abs32/pic32. - if (CM == CodeModel::Default) - CM = RM == Reloc::PIC_ ? CodeModel::Medium : CodeModel::Small; + // The default 32-bit code model is abs32/pic32 and the default 32-bit + // code model for JIT is abs32. + switch (CM) { + default: break; + case CodeModel::Default: + case CodeModel::JITDefault: CM = CodeModel::Small; break; + } X->InitMCCodeGenInfo(RM, CM, OL); return X; @@ -81,9 +85,17 @@ static MCCodeGenInfo *createSparcV9MCCodeGenInfo(StringRef TT, Reloc::Model RM, CodeGenOpt::Level OL) { MCCodeGenInfo *X = new MCCodeGenInfo(); - // The default 64-bit code model is abs44/pic32. - if (CM == CodeModel::Default) - CM = CodeModel::Medium; + // The default 64-bit code model is abs44/pic32 and the default 64-bit + // code model for JIT is abs64. + switch (CM) { + default: break; + case CodeModel::Default: + CM = RM == Reloc::PIC_ ? CodeModel::Small : CodeModel::Medium; + break; + case CodeModel::JITDefault: + CM = CodeModel::Large; + break; + } X->InitMCCodeGenInfo(RM, CM, OL); return X; |