From 5bfbf19c2dacb2260b4647f7153a227f2a91d9e1 Mon Sep 17 00:00:00 2001 From: yroux Date: Fri, 22 Aug 2014 10:59:41 +0000 Subject: [PATCH] 2014-08-22 Yvan Roux Backport from trunk r211717, r213692. 2014-08-07 Kugan Vivekanandarajah * config/arm/arm.c (bdesc_2arg): Fix typo. (arm_atomic_assign_expand_fenv): Remove The default implementation. 2014-06-17 Kugan Vivekanandarajah * config/arm/arm.c (arm_atomic_assign_expand_fenv): call default_atomic_assign_expand_fenv for !TARGET_HARD_FLOAT. (arm_init_builtins) : Initialize builtins __builtins_arm_set_fpscr and __builtins_arm_get_fpscr only when TARGET_HARD_FLOAT. * config/arm/vfp.md (set_fpscr): Make pattern conditional on TARGET_HARD_FLOAT. (get_fpscr) : Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/linaro@214313 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc-4_9-branch/gcc/ChangeLog.linaro | 18 ++++++++++++++++++ gcc-4_9-branch/gcc/config/arm/arm.c | 8 ++++---- gcc-4_9-branch/gcc/config/arm/vfp.md | 4 ++-- 3 files changed, 24 insertions(+), 6 deletions(-) diff --git a/gcc-4_9-branch/gcc/ChangeLog.linaro b/gcc-4_9-branch/gcc/ChangeLog.linaro index 7b2d66e910a..39fbd71da99 100644 --- a/gcc-4_9-branch/gcc/ChangeLog.linaro +++ b/gcc-4_9-branch/gcc/ChangeLog.linaro @@ -1,3 +1,21 @@ +2014-08-22 Yvan Roux + + Backport from trunk r211717, r213692. + 2014-08-07 Kugan Vivekanandarajah + + * config/arm/arm.c (bdesc_2arg): Fix typo. + (arm_atomic_assign_expand_fenv): Remove The default implementation. + + 2014-06-17 Kugan Vivekanandarajah + + * config/arm/arm.c (arm_atomic_assign_expand_fenv): call + default_atomic_assign_expand_fenv for !TARGET_HARD_FLOAT. + (arm_init_builtins) : Initialize builtins __builtins_arm_set_fpscr and + __builtins_arm_get_fpscr only when TARGET_HARD_FLOAT. + * config/arm/vfp.md (set_fpscr): Make pattern conditional on + TARGET_HARD_FLOAT. + (get_fpscr) : Likewise. + 2014-08-22 Yvan Roux Backport from trunk r212989, r213628. diff --git a/gcc-4_9-branch/gcc/config/arm/arm.c b/gcc-4_9-branch/gcc/config/arm/arm.c index 4ed063987de..2f88c1c895a 100644 --- a/gcc-4_9-branch/gcc/config/arm/arm.c +++ b/gcc-4_9-branch/gcc/config/arm/arm.c @@ -24350,8 +24350,8 @@ static const struct builtin_description bdesc_2arg[] = {0, CODE_FOR_##L, "__builtin_arm_"#L, ARM_BUILTIN_##U, \ UNKNOWN, 0}, - FP_BUILTIN (set_fpscr, GET_FPSCR) - FP_BUILTIN (get_fpscr, SET_FPSCR) + FP_BUILTIN (get_fpscr, GET_FPSCR) + FP_BUILTIN (set_fpscr, SET_FPSCR) #undef FP_BUILTIN #define CRC32_BUILTIN(L, U) \ @@ -24869,7 +24869,7 @@ arm_init_builtins (void) if (TARGET_CRC32) arm_init_crc32_builtins (); - if (TARGET_VFP) + if (TARGET_VFP && TARGET_HARD_FLOAT) { tree ftype_set_fpscr = build_function_type_list (void_type_node, unsigned_type_node, NULL); @@ -31565,7 +31565,7 @@ arm_atomic_assign_expand_fenv (tree *hold, tree *clear, tree *update) tree new_fenv_var, reload_fenv, restore_fnenv; tree update_call, atomic_feraiseexcept, hold_fnclex; - if (!TARGET_VFP) + if (!TARGET_VFP || !TARGET_HARD_FLOAT) return; /* Generate the equivalent of : diff --git a/gcc-4_9-branch/gcc/config/arm/vfp.md b/gcc-4_9-branch/gcc/config/arm/vfp.md index a8b27bcf986..9962bd3ba97 100644 --- a/gcc-4_9-branch/gcc/config/arm/vfp.md +++ b/gcc-4_9-branch/gcc/config/arm/vfp.md @@ -1325,7 +1325,7 @@ ;; Write Floating-point Status and Control Register. (define_insn "set_fpscr" [(unspec_volatile [(match_operand:SI 0 "register_operand" "r")] VUNSPEC_SET_FPSCR)] - "TARGET_VFP" + "TARGET_VFP && TARGET_HARD_FLOAT" "mcr\\tp10, 7, %0, cr1, cr0, 0\\t @SET_FPSCR" [(set_attr "type" "mrs")]) @@ -1333,7 +1333,7 @@ (define_insn "get_fpscr" [(set (match_operand:SI 0 "register_operand" "=r") (unspec_volatile:SI [(const_int 0)] VUNSPEC_GET_FPSCR))] - "TARGET_VFP" + "TARGET_VFP && TARGET_HARD_FLOAT" "mrc\\tp10, 7, %0, cr1, cr0, 0\\t @GET_FPSCR" [(set_attr "type" "mrs")]) -- 2.11.4.GIT