backport: arm.c (arm_arch6m): New variable to denote armv6-m architecture.

Backport from mainline
	2012-10-11  Terry Guo  <terry.guo@arm.com>

	* config/arm/arm.c (arm_arch6m): New variable to denote armv6-m
	architecture.
	* config/arm/arm.h (TARGET_HAVE_DMB): The armv6-m also has DMB
	instruction.

From-SVN: r192907
This commit is contained in:
Terry Guo 2012-10-29 06:44:23 +00:00 committed by Xuepeng Guo
parent f349417c4c
commit a42223d11d
3 changed files with 18 additions and 1 deletions

View File

@ -1,3 +1,13 @@
2012-10-29 Terry Guo <terry.guo@arm.com>
Backport from mainline
2012-10-11 Terry Guo <terry.guo@arm.com>
* config/arm/arm.c (arm_arch6m): New variable to denote armv6-m
architecture.
* config/arm/arm.h (TARGET_HAVE_DMB): The armv6-m also has DMB
instruction.
2012-10-26 Gunther Nikl <gnikl@users.sourceforge.net>
* common/config/m68k/m68k-common.c (m68k_handle_option): Set

View File

@ -745,6 +745,9 @@ int arm_arch6 = 0;
/* Nonzero if this chip supports the ARM 6K extensions. */
int arm_arch6k = 0;
/* Nonzero if instructions present in ARMv6-M can be used. */
int arm_arch6m = 0;
/* Nonzero if this chip supports the ARM 7 extensions. */
int arm_arch7 = 0;
@ -1704,6 +1707,7 @@ arm_option_override (void)
arm_arch6 = (insn_flags & FL_ARCH6) != 0;
arm_arch6k = (insn_flags & FL_ARCH6K) != 0;
arm_arch_notm = (insn_flags & FL_NOTM) != 0;
arm_arch6m = arm_arch6 && !arm_arch_notm;
arm_arch7 = (insn_flags & FL_ARCH7) != 0;
arm_arch7em = (insn_flags & FL_ARCH7EM) != 0;
arm_arch_thumb2 = (insn_flags & FL_THUMB2) != 0;

View File

@ -267,7 +267,7 @@ extern void (*arm_lang_output_object_attributes_hook)(void);
#define TARGET_UNIFIED_ASM TARGET_THUMB2
/* Nonzero if this chip provides the DMB instruction. */
#define TARGET_HAVE_DMB (arm_arch7)
#define TARGET_HAVE_DMB (arm_arch6m || arm_arch7)
/* Nonzero if this chip implements a memory barrier via CP15. */
#define TARGET_HAVE_DMB_MCR (arm_arch6 && ! TARGET_HAVE_DMB \
@ -383,6 +383,9 @@ extern int arm_arch6;
/* Nonzero if this chip supports the ARM Architecture 6k extensions. */
extern int arm_arch6k;
/* Nonzero if instructions present in ARMv6-M can be used. */
extern int arm_arch6m;
/* Nonzero if this chip supports the ARM Architecture 7 extensions. */
extern int arm_arch7;