On Tue, Jun 10, 2014 at 12:25 AM, Kugan <kugan.vivekanandara...@linaro.org> wrote: > On 30/05/14 18:35, Ramana Radhakrishnan wrote: >>> + if (!TARGET_VFP) >>> + return; >>> + >>> + /* Generate the equivalence of : >> >> s/equivalence/equivalent. >> >> Ok with that change and if no regressions. > > Hi Ramana, > > Sorry, I missed the thumb1 part. There are no mrc/mcr versions of these > instructions in thumb1. So these should be conditional on not being > ARM_THUMB1. >
No, this has nothing to do with TARGET_THUMB1 - the real condition should be TARGET_VFP && TARGET_HARD_FLOAT. These instructions only work if TARGET_HARD_FLOAT is true. Thumb1 + VFP instructions is not possible, similarly if generating code for -mfloat-abi=soft you don't want these instructions being generated. Ok if that works. Ramana > Is this OK. Regression tested with no new refression on qemu for > arm-none-linux-gnueabi -march=armv7-a and on arm-none-linux-gnueabi > --with-mode=thumb and -march=armv5t. > > Is this OK? > > Thanks, > Kugan > > gcc/ > > 2014-06-10 Kugan Vivekanandarajah <kug...@linaro.org> > > * config/arm/arm.c (arm_atomic_assign_expand_fenv): call > default_atomic_assign_expand_fenv for TARGET_THUMB1. > (arm_init_builtins) : Initialize builtins __builtins_arm_set_fpscr and > __builtins_arm_get_fpscr only when !TARGET_THUMB1. > * config/arm/vfp.md (set_fpscr): Make pattern conditional on > !TARGERT_THUMB1. > (get_fpscr) : Likewise.