BareMetal: Auto-detect IAR toolchain for Renesas M16C architecture

This patch implements auto-detection for the M16C/R8C toolchain,
provided by IAR Systems:

 * https://www.iar.com/iar-embedded-workbench/#!?architecture=M16C%2FR8C

Change-Id: Iaa724c110f074183e60f659812717dbad2f635d0
Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
Denis Shienkov
2020-05-26 15:46:10 +03:00
parent b7ec0fbf08
commit 4dfc650fac

View File

@@ -80,7 +80,8 @@ static QString cppLanguageOption(const FilePath &compiler)
|| baseName == "iccstm8" || baseName == "icc430" || baseName == "iccstm8" || baseName == "icc430"
|| baseName == "iccv850" || baseName == "icc78k" || baseName == "iccv850" || baseName == "icc78k"
|| baseName == "iccavr32" || baseName == "iccsh" || baseName == "iccavr32" || baseName == "iccsh"
|| baseName == "icccf" || baseName == "iccm32c") { || baseName == "icccf" || baseName == "iccm32c"
|| baseName == "iccm16c") {
return QString("--ec++"); return QString("--ec++");
} }
return {}; return {};
@@ -224,6 +225,8 @@ static Abi::Architecture guessArchitecture(const Macros &macros)
return Abi::Architecture::M68KArchitecture; return Abi::Architecture::M68KArchitecture;
if (macro.key == "__ICCM32C__") if (macro.key == "__ICCM32C__")
return Abi::Architecture::M32CArchitecture; return Abi::Architecture::M32CArchitecture;
if (macro.key == "__ICCM16C__")
return Abi::Architecture::M16CArchitecture;
} }
return Abi::Architecture::UnknownArchitecture; return Abi::Architecture::UnknownArchitecture;
} }
@@ -256,7 +259,8 @@ static Abi::BinaryFormat guessFormat(Abi::Architecture arch)
|| arch == Abi::Architecture::V850Architecture || arch == Abi::Architecture::V850Architecture
|| arch == Abi::Architecture::K78Architecture || arch == Abi::Architecture::K78Architecture
|| arch == Abi::Architecture::M68KArchitecture || arch == Abi::Architecture::M68KArchitecture
|| arch == Abi::Architecture::M32CArchitecture) { || arch == Abi::Architecture::M32CArchitecture
|| arch == Abi::Architecture::M16CArchitecture) {
return Abi::BinaryFormat::UbrofFormat; return Abi::BinaryFormat::UbrofFormat;
} }
return Abi::BinaryFormat::UnknownFormat; return Abi::BinaryFormat::UnknownFormat;
@@ -505,6 +509,7 @@ QList<ToolChain *> IarToolChainFactory::autoDetect(const QList<ToolChain *> &alr
{{"EWRISCV"}, {"/riscv/bin/iccriscv.exe"}}, {{"EWRISCV"}, {"/riscv/bin/iccriscv.exe"}},
{{"EWCF"}, {"/cf/bin/icccf.exe"}}, {{"EWCF"}, {"/cf/bin/icccf.exe"}},
{{"EWM32C"}, {"/m32c/bin/iccm32c.exe"}}, {{"EWM32C"}, {"/m32c/bin/iccm32c.exe"}},
{{"EWM16C"}, {"/m16c/bin/iccm16c.exe"}},
}; };
QSettings registry(kRegistryNode, QSettings::NativeFormat); QSettings registry(kRegistryNode, QSettings::NativeFormat);