https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96967
--- Comment #4 from CVS Commits <cvs-commit at gcc dot gnu.org> --- The master branch has been updated by Christophe Lyon <cl...@gcc.gnu.org>: https://gcc.gnu.org/g:4d9af90d6a216822fe117337fb9836ba656dc3af commit r11-4598-g4d9af90d6a216822fe117337fb9836ba656dc3af Author: Christophe Lyon <christophe.l...@linaro.org> Date: Mon Nov 2 07:31:22 2020 +0000 arm: Avoid indirection with -mpure-code on v6m (PR96967) With -mpure-code on v6m (thumb-1), to avoid a useless indirection when building the address of a symbol, we want to consider SYMBOL_REF as a legitimate constant. This way, we build the address using a series of upper/lower relocations instead of loading the address from memory. This patch also fixes a missing "clob" conds attribute for thumb1_movsi_insn, needed because that alternative clobbers the flags. 2020-11-02 Christophe Lyon <christophe.l...@linaro.org> gcc/ PR target/96967 * config/arm/arm.c (thumb_legitimate_constant_p): Add support for disabled literal pool in thumb-1. * config/arm/thumb1.md (thumb1_movsi_symbol_ref): Remove. (*thumb1_movsi_insn): Add support for SYMBOL_REF with -mpure-code. gcc/testsuite PR target/96967 * gcc.target/arm/pure-code/pr96767.c: New test.