Commit 5db37871 by Kugan Vivekanandarajah Committed by Kugan Vivekanandarajah

arm.c (arm_atomic_assign_expand_fenv): call default_atomic_assign_expand_fenv…

arm.c (arm_atomic_assign_expand_fenv): call default_atomic_assign_expand_fenv for !TARGET_HARD_FLOAT.

gcc/
2014-06-17  Kugan Vivekanandarajah  <kuganv@linaro.org>

	* 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.

From-SVN: r211717
parent ba38538f
2014-06-17 Kugan Vivekanandarajah <kuganv@linaro.org>
* 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-06-16 Vladimir Makarov <vmakarov@redhat.com> 2014-06-16 Vladimir Makarov <vmakarov@redhat.com>
PR rtl-optimization/61325 PR rtl-optimization/61325
......
...@@ -24762,7 +24762,7 @@ arm_init_builtins (void) ...@@ -24762,7 +24762,7 @@ arm_init_builtins (void)
if (TARGET_CRC32) if (TARGET_CRC32)
arm_init_crc32_builtins (); arm_init_crc32_builtins ();
if (TARGET_VFP) if (TARGET_VFP && TARGET_HARD_FLOAT)
{ {
tree ftype_set_fpscr tree ftype_set_fpscr
= build_function_type_list (void_type_node, unsigned_type_node, NULL); = build_function_type_list (void_type_node, unsigned_type_node, NULL);
...@@ -31454,8 +31454,8 @@ arm_atomic_assign_expand_fenv (tree *hold, tree *clear, tree *update) ...@@ -31454,8 +31454,8 @@ arm_atomic_assign_expand_fenv (tree *hold, tree *clear, tree *update)
tree new_fenv_var, reload_fenv, restore_fnenv; tree new_fenv_var, reload_fenv, restore_fnenv;
tree update_call, atomic_feraiseexcept, hold_fnclex; tree update_call, atomic_feraiseexcept, hold_fnclex;
if (!TARGET_VFP) if (!TARGET_VFP || !TARGET_HARD_FLOAT)
return; return default_atomic_assign_expand_fenv (hold, clear, update);
/* Generate the equivalent of : /* Generate the equivalent of :
unsigned int fenv_var; unsigned int fenv_var;
......
...@@ -1325,7 +1325,7 @@ ...@@ -1325,7 +1325,7 @@
;; Write Floating-point Status and Control Register. ;; Write Floating-point Status and Control Register.
(define_insn "set_fpscr" (define_insn "set_fpscr"
[(unspec_volatile [(match_operand:SI 0 "register_operand" "r")] VUNSPEC_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" "mcr\\tp10, 7, %0, cr1, cr0, 0\\t @SET_FPSCR"
[(set_attr "type" "mrs")]) [(set_attr "type" "mrs")])
...@@ -1333,7 +1333,7 @@ ...@@ -1333,7 +1333,7 @@
(define_insn "get_fpscr" (define_insn "get_fpscr"
[(set (match_operand:SI 0 "register_operand" "=r") [(set (match_operand:SI 0 "register_operand" "=r")
(unspec_volatile:SI [(const_int 0)] VUNSPEC_GET_FPSCR))] (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" "mrc\\tp10, 7, %0, cr1, cr0, 0\\t @GET_FPSCR"
[(set_attr "type" "mrs")]) [(set_attr "type" "mrs")])
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment