@@ -94,6 +94,8 @@ arc_handle_option (struct gcc_options *opts, struct gcc_options *opts_set,
9494 opts -> x_target_flags |= MASK_NORM_SET ; /* Default: on. */
9595 if ( !(opts_set -> x_target_flags & MASK_SWAP_SET ))
9696 opts -> x_target_flags &= ~MASK_SWAP_SET ; /* Default: off. */
97+ if ( !(opts_set -> x_target_flags & MASK_ATOMIC ))
98+ opts -> x_target_flags &= ~MASK_ATOMIC ; /* Default: off */
9799 /* For ARC700, mpy16 makes no sense. */
98100 opts -> x_target_flags &= ~MASK_MPY16_SET ;
99101 opts -> x_target_flags &= ~MASK_CODE_DENSITY ;
@@ -111,6 +113,7 @@ arc_handle_option (struct gcc_options *opts, struct gcc_options *opts_set,
111113 opts -> x_target_flags &= ~MASK_MPY_SET ;
112114 opts -> x_target_flags &= ~MASK_CODE_DENSITY ;
113115 opts -> x_target_flags &= ~MASK_SHIFT_ASSIST ;
116+ opts -> x_target_flags &= ~MASK_ATOMIC ;
114117 break ;
115118
116119 case PROCESSOR_ARCv2HS :
@@ -131,6 +134,8 @@ arc_handle_option (struct gcc_options *opts, struct gcc_options *opts_set,
131134 opts -> x_target_flags |= MASK_NORM_SET ; /* Default: on. */
132135 if ( !(opts_set -> x_target_flags & MASK_SWAP_SET ))
133136 opts -> x_target_flags |= MASK_SWAP_SET ; /* Default: on. */
137+ if ( !(opts_set -> x_target_flags & MASK_ATOMIC ))
138+ opts -> x_target_flags |= MASK_ATOMIC ; /* Default: on. */
134139 break ;
135140
136141 case PROCESSOR_ARCv2EM :
@@ -151,6 +156,8 @@ arc_handle_option (struct gcc_options *opts, struct gcc_options *opts_set,
151156 opts -> x_target_flags &= ~MASK_NORM_SET ; /* Default: off. */
152157 if ( !(opts_set -> x_target_flags & MASK_SWAP_SET ))
153158 opts -> x_target_flags &= ~MASK_SWAP_SET ; /* Default: off. */
159+ if ( !(opts_set -> x_target_flags & MASK_ATOMIC ))
160+ opts -> x_target_flags &= ~MASK_ATOMIC ; /* Default: off */
154161 break ;
155162
156163 case PROCESSOR_ARC601 :
@@ -164,6 +171,7 @@ arc_handle_option (struct gcc_options *opts, struct gcc_options *opts_set,
164171 opts -> x_target_flags &= ~MASK_MPY_SET ;
165172 opts -> x_target_flags &= ~MASK_CODE_DENSITY ;
166173 opts -> x_target_flags &= ~MASK_SHIFT_ASSIST ;
174+ opts -> x_target_flags &= ~MASK_ATOMIC ;
167175 break ;
168176
169177 default :
@@ -216,17 +224,17 @@ arc_handle_option (struct gcc_options *opts, struct gcc_options *opts_set,
216224
217225#if TARGET_CPU_DEFAULT == TARGET_CPU_HS
218226/* For HS max out. */
219- #define TARGET_DEFAULT_TARGET_FLAGS \
220- (MASK_BARREL_SHIFTER | MASK_VOLATILE_CACHE_SET | DEFAULT_NO_SDATA \
227+ # define TARGET_DEFAULT_TARGET_FLAGS \
228+ (MASK_BARREL_SHIFTER | MASK_VOLATILE_CACHE_SET | DEFAULT_NO_SDATA \
221229 | MASK_MPY_SET | MASK_MPY16_SET | MASK_SHIFT_ASSIST | MASK_CODE_DENSITY \
222- | MASK_NORM_SET | MASK_SWAP_SET)
230+ | MASK_NORM_SET | MASK_SWAP_SET | MASK_ATOMIC )
223231#elif TARGET_CPU_DEFAULT == TARGET_CPU_EM
224232/* Default for EM: no barrel shifter*/
225- #define TARGET_DEFAULT_TARGET_FLAGS \
233+ # define TARGET_DEFAULT_TARGET_FLAGS \
226234 (MASK_BARREL_SHIFTER | MASK_VOLATILE_CACHE_SET | DEFAULT_NO_SDATA | MASK_MPY_SET | MASK_MPY16_SET)
227235#else
228236/* We default to ARC700, which has the barrel shifter enabled. */
229- #define TARGET_DEFAULT_TARGET_FLAGS \
237+ # define TARGET_DEFAULT_TARGET_FLAGS \
230238 (MASK_BARREL_SHIFTER | MASK_VOLATILE_CACHE_SET | DEFAULT_NO_SDATA | MASK_MPY_SET)
231239#endif
232240
0 commit comments