* bfd/bfd-in2.h (BFD_RELOC_ARM_HVC): New enum value.
* gas/config/tc-arm.c (arm_ext_virt): New variable. (arm_reg_type): Add REG_TYPE_RNB for banked registers. (reg_entry): Allow registers to be larger than a byte. (reg_alias): Fix type warning. (parse_operands): Parse banked registers when appropriate. (do_mrs): Add support for Virtualization Extensions. (do_hvc): New function. (do_t_mrs): Add support for Virtualization Extensions. (do_t_msr): Likewise. (do_t_hvc): New function. (SPLRBANK): New define. (reg_names): Add banked registers. (insns): Add support for Virtualization Extensions. (md_apply_fixup): Likewise. (arm_cpus): -mcpu=cortex-a15 implies the Virtualization Extensions. (arm_extensions): Add 'virt' extension. (aeabi_set_public_attributes): Add support for Virtualization Extensions. * gas/doc/c-arm.texi: Document 'virt' extension. * gas/testsuite/gas/arm/armv7-a+virt.d: New test. * gas/testsuite/gas/arm/armv7-a+virt.s: Likewise. * gas/testsuite/gas/arm/attr-march-all.d: Update for Virtualization Extensions. * gas/testsuite/gas/arm/attr-march-armv7-a+sec+virt.d: New test. * gas/testsuite/gas/arm/attr-march-armv7-a+virt.d: Likewise. * include/opcode/arm.h (ARM_EXT_VIRT): New define. (ARM_ARCH_V7A_IDIV_MP_SEC): Rename... (ARM_ARCH_V7A_IDIV_MP_SEC_VIRT): ...to this and include Virtualization Extensions. * opcodes/arm-dis.c (arm_opcodes): Add Virtualiztion Extensions support. (thumb32_opcodes): Likewise. (banked_regname): New function. (print_insn_arm): Add Virtualization Extensions support. (print_insn_thumb32): Likewise.
This commit is contained in:
		| @@ -54,6 +54,7 @@ | ||||
| #define ARM_EXT_OS	 0x20000000	/* OS Extensions.  */ | ||||
| #define ARM_EXT_ADIV	 0x40000000	/* Integer divide extensions in ARM  | ||||
| 					   state.  */ | ||||
| #define ARM_EXT_VIRT	 0x80000000	/* Virtualization extensions.  */ | ||||
|  | ||||
| /* Co-processor space extensions.  */ | ||||
| #define ARM_CEXT_XSCALE   0x00000001	/* Allow MIA etc.          */ | ||||
| @@ -222,10 +223,11 @@ | ||||
| #define ARM_ARCH_V7A_MP_SEC \ | ||||
| 			ARM_FEATURE (ARM_AEXT_V7A | ARM_EXT_MP | ARM_EXT_SEC, \ | ||||
| 				     0) | ||||
| /* v7-a+idiv+mp+sec.  */ | ||||
| #define ARM_ARCH_V7A_IDIV_MP_SEC \ | ||||
| /* v7-a+idiv+mp+sec+virt.  */ | ||||
| #define ARM_ARCH_V7A_IDIV_MP_SEC_VIRT \ | ||||
| 			ARM_FEATURE (ARM_AEXT_V7A | ARM_EXT_MP | ARM_EXT_SEC \ | ||||
| 				     | ARM_EXT_DIV | ARM_EXT_ADIV, 0) | ||||
| 				     | ARM_EXT_DIV | ARM_EXT_ADIV \ | ||||
| 				     | ARM_EXT_VIRT, 0) | ||||
|  | ||||
| /* There are too many feature bits to fit in a single word, so use a | ||||
|    structure.  For simplicity we put all core features in one word and | ||||
|   | ||||
		Reference in New Issue
	
	Block a user