From e9d8b02a42eb08802e202770409cb5378b79b281 Mon Sep 17 00:00:00 2001 From: André Draszik Date: Fri, 10 Jun 2016 16:12:38 +0100 Subject: mips: add a tune for using MIPS16e ASE instructions MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The MIPS16e instruction set still has to be enabled by setting MIPS_INSTRUCTION_SET = 'mips16e' in e.g. distro.conf and can be disabled on a per-recipe basis as needed. This is a similar approach as is available on ARM for Thumb support. Note that contrary to the ARM Thumb support in OE, we do add a new OVERRIDE (mips16e), as there are some recipes in OE that need to be compiled slightly differently if mips16e mode is requested. Signed-off-by: André Draszik Signed-off-by: Ross Burton --- meta/conf/machine/include/mips/feature-mips-mips16e.inc | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 meta/conf/machine/include/mips/feature-mips-mips16e.inc diff --git a/meta/conf/machine/include/mips/feature-mips-mips16e.inc b/meta/conf/machine/include/mips/feature-mips-mips16e.inc new file mode 100644 index 0000000000..05011dec41 --- /dev/null +++ b/meta/conf/machine/include/mips/feature-mips-mips16e.inc @@ -0,0 +1,17 @@ +TUNEVALID[mips16e] = "Build target packages with MIPS16e ASE instructions" +MIPS_MIPS16E_OPT = "${@['mno-mips16', 'mips16'][d.getVar('MIPS_INSTRUCTION_SET', True) == 'mips16e']}" +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'mips16e', ' -${MIPS_MIPS16E_OPT}', '', d)}" + +MIPSPKGSFX_MIPS16E .= "${@bb.utils.contains('TUNE_FEATURES', 'mips16e', '-m16', '', d) if d.getVar('MIPS_MIPS16E_OPT', True) == 'mips16' else ''}" + +# Whether to compile with code to allow interworking between the two +# instruction sets. This allows mips16e code to be executed on a primarily +# mips32/64 system and vice versa. It is strongly recommended that DISTROs not +# turn this off - the actual cost is very small. +TUNEVALID[no-interlink-compressed] = "Disable mixing of standard and MIPS16e code" +MIPS16_TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'no-interlink-compressed', ' -mno-interlink-compressed', ' -minterlink-compressed', d)}" +TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'mips16e', ' ${MIPS16_TUNE_CCARGS}', '', d)}" +OVERRIDES .= "${@bb.utils.contains('TUNE_FEATURES', 'mips16e', ':mips16e', '', d)}" + +# show status (if compiling in MIPS16e mode) +BUILDCFG_VARS += "${@['', 'MIPS_INSTRUCTION_SET'][d.getVar('MIPS_INSTRUCTION_SET', True) == 'mips16e']}" -- cgit 1.2.3-korg