Hi, When using a callee-saved register to save the frame pointer the Thumb-1 prologue fails to save the callee-saved register before that. For ARM and Thumb-2 targets the frame pointer is handled as a special case but nothing is done for Thumb-1 targets. This patch adds the same logic for Thumb-1 targets. ChangeLog entries are as follow: *** gcc/ChangeLog *** 2016-11-02 Thomas Preud'homme PR target/77904 * config/arm/arm.c (thumb1_compute_save_reg_mask): mark frame pointer in save register mask if it is needed. *** gcc/testsuite/ChangeLog *** 2016-11-02 Thomas Preud'homme PR target/77904 * gcc.target/arm/pr77904.c: New test. Testing: Testsuite shows no regression when run with arm-none-eabi GCC cross-compiler for Cortex-M0 target. Is this ok for trunk? Best regards, Thomas