IA MCU is based on Intel Pentium ISA without x87 and passing parameters in registers. We want to optimize for IA MCU without changing existing Pentium codegen. This patch adds PROCESSOR_IAMCU for -march=iamcu, which is based on -march=pentium with updated cost tables.
gcc/
PR target/66749
- config/i386/i386.c (iamcu_cost): New. (m_IAMCU): Likewise. (initial_ix86_arch_features): Disable X86_ARCH_CMOV for m_IAMCU. (processor_target_table): Add an entry for "iamcu". (processor_alias_table): Likewise. (ix86_issue_rate): Handle PROCESSOR_IAMCU. (ix86_adjust_cost): Likewise. (ia32_multipass_dfa_lookahead): Likewise.
- config/i386/i386.h (processor_type): Add PROCESSOR_IAMCU.
- config/i386/x86-tune.def: Updated for m_IAMCU.
gcc/testsuite/
PR target/66749
- gcc.target/i386/pr66749.c: New test.
9e9379b Add -march=iamcu to optimize for IA MCU
gcc/config/i386/i386.c | 76 ++++++++++++++++++++++++++++++-
gcc/config/i386/i386.h | 1 +
gcc/config/i386/x86-tune.def | 36 +++++++++------
gcc/testsuite/gcc.target/i386/pr66749.c | 14 ++++++
4 files changed, 111 insertions(+), 16 deletions(-)
Upstream: gcc.gnu.org