Commit 9f54ba8f by Claudiu Zissulescu Committed by Claudiu Zissulescu

[ARC] Fix logic set UNALIGNED_ACCESS

gcc/
xxxx-xx-xx  Claudiu Zissulescu  <claziss@synopsys.com>

	* config/arc/arc-c.def (__ARC_UNALIGNED__): Set it on
	unaligned_access variable.
	* config/arc/arc.c (arc_override_options): Set unaligned access
	default on for HS CPUs.
	* config/arc/arc.h (STRICT_ALIGNMENT): Fix logic.

From-SVN: r269417
parent 3050b357
2019-03-06 Claudiu Zissulescu <claziss@synopsys.com>
* config/arc/arc-c.def (__ARC_UNALIGNED__): Set it on
unaligned_access variable.
* config/arc/arc.c (arc_override_options): Set unaligned access
default on for HS CPUs.
* config/arc/arc.h (STRICT_ALIGNMENT): Fix logic.
2019-03-06 Martin Liska <mliska@suse.cz> 2019-03-06 Martin Liska <mliska@suse.cz>
PR gcov-profile/89577 PR gcov-profile/89577
......
...@@ -29,7 +29,7 @@ ARC_C_DEF ("__ARC_MUL64__", TARGET_MUL64_SET) ...@@ -29,7 +29,7 @@ ARC_C_DEF ("__ARC_MUL64__", TARGET_MUL64_SET)
ARC_C_DEF ("__ARC_MUL32BY16__", TARGET_MULMAC_32BY16_SET) ARC_C_DEF ("__ARC_MUL32BY16__", TARGET_MULMAC_32BY16_SET)
ARC_C_DEF ("__ARC_SIMD__", TARGET_SIMD_SET) ARC_C_DEF ("__ARC_SIMD__", TARGET_SIMD_SET)
ARC_C_DEF ("__ARC_RF16__", TARGET_RF16) ARC_C_DEF ("__ARC_RF16__", TARGET_RF16)
ARC_C_DEF ("__ARC_UNALIGNED__", !STRICT_ALIGNMENT) ARC_C_DEF ("__ARC_UNALIGNED__", unaligned_access)
ARC_C_DEF ("__ARC_BARREL_SHIFTER__", TARGET_BARREL_SHIFTER) ARC_C_DEF ("__ARC_BARREL_SHIFTER__", TARGET_BARREL_SHIFTER)
......
...@@ -1313,6 +1313,10 @@ arc_override_options (void) ...@@ -1313,6 +1313,10 @@ arc_override_options (void)
if (TARGET_LONG_CALLS_SET) if (TARGET_LONG_CALLS_SET)
target_flags &= ~MASK_MILLICODE_THUNK_SET; target_flags &= ~MASK_MILLICODE_THUNK_SET;
/* Set unaligned to all HS cpus. */
if (!global_options_set.x_unaligned_access && TARGET_HS)
unaligned_access = 1;
/* These need to be done at start up. It's convenient to do them here. */ /* These need to be done at start up. It's convenient to do them here. */
arc_init (); arc_init ();
} }
......
...@@ -285,7 +285,7 @@ if (GET_MODE_CLASS (MODE) == MODE_INT \ ...@@ -285,7 +285,7 @@ if (GET_MODE_CLASS (MODE) == MODE_INT \
/* On the ARC the lower address bits are masked to 0 as necessary. The chip /* On the ARC the lower address bits are masked to 0 as necessary. The chip
won't croak when given an unaligned address, but the insn will still fail won't croak when given an unaligned address, but the insn will still fail
to produce the correct result. */ to produce the correct result. */
#define STRICT_ALIGNMENT (!unaligned_access && !TARGET_HS) #define STRICT_ALIGNMENT (!unaligned_access)
/* Layout of source language data types. */ /* Layout of source language data types. */
......
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