2009-11-17 Paul Brook <paul@codesourcery.com>
Daniel Jacobowitz <dan@codesourcery.com> gas/ * doc/c-arm.texi: Document .arch armv7e-m. * config/tc-arm.c (arm_ext_v6_dsp, arm_ext_v7m): New. (insns): Put Thumb versions of v5TExP instructions into arm_ext_v5exp also. Move some Thumb variants from arm_ext_v6_notm to arm_ext_v6_dsp. (arm_archs): Add armv7e-m architecture. (aeabi_set_public_attributes): Handle -march=armv7e-m. gas/testsuite/ * gas/arm/attr-march-armv7em.d: New test. * gas/arm/arch7em-bad.d: New test. * gas/arm/arch7em-bad.l: New test. * gas/arm/arch7em.d: New test. * gas/arm/arch7em.s: New test. include/elf/ * arm.h (TAG_CPU_ARCH_V7E_M): Define. include/opcode/ * arm.h (ARM_EXT_V6_DSP): Define. (ARM_AEXT_V6T2, ARM_AEXT_NOTM): Include ARM_EXT_V6_DSP. (ARM_AEXT_V7EM, ARM_ARCH_V7EM): Define. binutils/ * readelf.c (arm_attr_tag_CPU_arch): Add v7E-M. bfd/ * elf32-arm.c (using_thumb_only, arch_has_arm_nop, arch_has_thumb2_nop): Handle TAG_CPU_ARCH_V7E_M. (tag_cpu_arch_combine): Ditto. Correct MAX_TAG_CPU_ARCH test.
This commit is contained in:
parent
b14f53a8ec
commit
dd3a778c28
|
@ -1,3 +1,8 @@
|
||||||
|
2009-11-17 Paul Brook <paul@codesourcery.com>
|
||||||
|
Daniel Jacobowitz <dan@codesourcery.com>
|
||||||
|
|
||||||
|
* arm.h (TAG_CPU_ARCH_V7E_M): Define.
|
||||||
|
|
||||||
2009-09-29 DJ Delorie <dj@redhat.com>
|
2009-09-29 DJ Delorie <dj@redhat.com>
|
||||||
|
|
||||||
* rx.h: New file.
|
* rx.h: New file.
|
||||||
|
|
|
@ -100,7 +100,8 @@
|
||||||
#define TAG_CPU_ARCH_V7 10
|
#define TAG_CPU_ARCH_V7 10
|
||||||
#define TAG_CPU_ARCH_V6_M 11
|
#define TAG_CPU_ARCH_V6_M 11
|
||||||
#define TAG_CPU_ARCH_V6S_M 12
|
#define TAG_CPU_ARCH_V6S_M 12
|
||||||
#define MAX_TAG_CPU_ARCH 12
|
#define TAG_CPU_ARCH_V7E_M 13
|
||||||
|
#define MAX_TAG_CPU_ARCH 13
|
||||||
/* Pseudo-architecture to allow objects to be compatible with the subset of
|
/* Pseudo-architecture to allow objects to be compatible with the subset of
|
||||||
armv4t and armv6-m. This value should never be stored in object files. */
|
armv4t and armv6-m. This value should never be stored in object files. */
|
||||||
#define TAG_CPU_ARCH_V4T_PLUS_V6_M (MAX_TAG_CPU_ARCH + 1)
|
#define TAG_CPU_ARCH_V4T_PLUS_V6_M (MAX_TAG_CPU_ARCH + 1)
|
||||||
|
|
|
@ -1,3 +1,10 @@
|
||||||
|
2009-11-17 Paul Brook <paul@codesourcery.com>
|
||||||
|
Daniel Jacobowitz <dan@codesourcery.com>
|
||||||
|
|
||||||
|
* arm.h (ARM_EXT_V6_DSP): Define.
|
||||||
|
(ARM_AEXT_V6T2, ARM_AEXT_NOTM): Include ARM_EXT_V6_DSP.
|
||||||
|
(ARM_AEXT_V7EM, ARM_ARCH_V7EM): Define.
|
||||||
|
|
||||||
2009-11-04 DJ Delorie <dj@redhat.com>
|
2009-11-04 DJ Delorie <dj@redhat.com>
|
||||||
|
|
||||||
* rx.h (rx_decode_opcode) (mvtipl): Add.
|
* rx.h (rx_decode_opcode) (mvtipl): Add.
|
||||||
|
|
|
@ -47,6 +47,8 @@
|
||||||
#define ARM_EXT_V6M 0x00800000 /* ARM V6M. */
|
#define ARM_EXT_V6M 0x00800000 /* ARM V6M. */
|
||||||
#define ARM_EXT_BARRIER 0x01000000 /* DSB/DMB/ISB. */
|
#define ARM_EXT_BARRIER 0x01000000 /* DSB/DMB/ISB. */
|
||||||
#define ARM_EXT_THUMB_MSR 0x02000000 /* Thumb MSR/MRS. */
|
#define ARM_EXT_THUMB_MSR 0x02000000 /* Thumb MSR/MRS. */
|
||||||
|
#define ARM_EXT_V6_DSP 0x04000000 /* ARM v6 (DSP-related),
|
||||||
|
not in v7-M. */
|
||||||
|
|
||||||
/* Co-processor space extensions. */
|
/* Co-processor space extensions. */
|
||||||
#define ARM_CEXT_XSCALE 0x00000001 /* Allow MIA etc. */
|
#define ARM_CEXT_XSCALE 0x00000001 /* Allow MIA etc. */
|
||||||
|
@ -96,7 +98,8 @@
|
||||||
#define ARM_AEXT_V6Z (ARM_AEXT_V6 | ARM_EXT_V6Z)
|
#define ARM_AEXT_V6Z (ARM_AEXT_V6 | ARM_EXT_V6Z)
|
||||||
#define ARM_AEXT_V6ZK (ARM_AEXT_V6 | ARM_EXT_V6K | ARM_EXT_V6Z)
|
#define ARM_AEXT_V6ZK (ARM_AEXT_V6 | ARM_EXT_V6K | ARM_EXT_V6Z)
|
||||||
#define ARM_AEXT_V6T2 (ARM_AEXT_V6 \
|
#define ARM_AEXT_V6T2 (ARM_AEXT_V6 \
|
||||||
| ARM_EXT_V6T2 | ARM_EXT_V6_NOTM | ARM_EXT_THUMB_MSR)
|
| ARM_EXT_V6T2 | ARM_EXT_V6_NOTM | ARM_EXT_THUMB_MSR \
|
||||||
|
| ARM_EXT_V6_DSP )
|
||||||
#define ARM_AEXT_V6KT2 (ARM_AEXT_V6T2 | ARM_EXT_V6K)
|
#define ARM_AEXT_V6KT2 (ARM_AEXT_V6T2 | ARM_EXT_V6K)
|
||||||
#define ARM_AEXT_V6ZT2 (ARM_AEXT_V6T2 | ARM_EXT_V6Z)
|
#define ARM_AEXT_V6ZT2 (ARM_AEXT_V6T2 | ARM_EXT_V6Z)
|
||||||
#define ARM_AEXT_V6ZKT2 (ARM_AEXT_V6T2 | ARM_EXT_V6K | ARM_EXT_V6Z)
|
#define ARM_AEXT_V6ZKT2 (ARM_AEXT_V6T2 | ARM_EXT_V6K | ARM_EXT_V6Z)
|
||||||
|
@ -104,7 +107,8 @@
|
||||||
#define ARM_AEXT_V7A (ARM_AEXT_V7_ARM | ARM_EXT_V7A)
|
#define ARM_AEXT_V7A (ARM_AEXT_V7_ARM | ARM_EXT_V7A)
|
||||||
#define ARM_AEXT_V7R (ARM_AEXT_V7_ARM | ARM_EXT_V7R | ARM_EXT_DIV)
|
#define ARM_AEXT_V7R (ARM_AEXT_V7_ARM | ARM_EXT_V7R | ARM_EXT_DIV)
|
||||||
#define ARM_AEXT_NOTM \
|
#define ARM_AEXT_NOTM \
|
||||||
(ARM_AEXT_V4 | ARM_EXT_V5ExP | ARM_EXT_V5J | ARM_EXT_V6_NOTM)
|
(ARM_AEXT_V4 | ARM_EXT_V5ExP | ARM_EXT_V5J | ARM_EXT_V6_NOTM \
|
||||||
|
| ARM_EXT_V6_DSP )
|
||||||
#define ARM_AEXT_V6M \
|
#define ARM_AEXT_V6M \
|
||||||
((ARM_AEXT_V6K | ARM_EXT_BARRIER | ARM_EXT_V6M | ARM_EXT_THUMB_MSR) \
|
((ARM_AEXT_V6K | ARM_EXT_BARRIER | ARM_EXT_V6M | ARM_EXT_THUMB_MSR) \
|
||||||
& ~(ARM_AEXT_NOTM))
|
& ~(ARM_AEXT_NOTM))
|
||||||
|
@ -112,6 +116,8 @@
|
||||||
((ARM_AEXT_V7_ARM | ARM_EXT_V6M | ARM_EXT_V7M | ARM_EXT_DIV) \
|
((ARM_AEXT_V7_ARM | ARM_EXT_V6M | ARM_EXT_V7M | ARM_EXT_DIV) \
|
||||||
& ~(ARM_AEXT_NOTM))
|
& ~(ARM_AEXT_NOTM))
|
||||||
#define ARM_AEXT_V7 (ARM_AEXT_V7A & ARM_AEXT_V7R & ARM_AEXT_V7M)
|
#define ARM_AEXT_V7 (ARM_AEXT_V7A & ARM_AEXT_V7R & ARM_AEXT_V7M)
|
||||||
|
#define ARM_AEXT_V7EM \
|
||||||
|
(ARM_AEXT_V7M | ARM_EXT_V5ExP | ARM_EXT_V6_DSP)
|
||||||
|
|
||||||
/* Processors with specific extensions in the co-processor space. */
|
/* Processors with specific extensions in the co-processor space. */
|
||||||
#define ARM_ARCH_XSCALE ARM_FEATURE (ARM_AEXT_V5TE, ARM_CEXT_XSCALE)
|
#define ARM_ARCH_XSCALE ARM_FEATURE (ARM_AEXT_V5TE, ARM_CEXT_XSCALE)
|
||||||
|
@ -193,6 +199,7 @@
|
||||||
#define ARM_ARCH_V7A ARM_FEATURE (ARM_AEXT_V7A, 0)
|
#define ARM_ARCH_V7A ARM_FEATURE (ARM_AEXT_V7A, 0)
|
||||||
#define ARM_ARCH_V7R ARM_FEATURE (ARM_AEXT_V7R, 0)
|
#define ARM_ARCH_V7R ARM_FEATURE (ARM_AEXT_V7R, 0)
|
||||||
#define ARM_ARCH_V7M ARM_FEATURE (ARM_AEXT_V7M, 0)
|
#define ARM_ARCH_V7M ARM_FEATURE (ARM_AEXT_V7M, 0)
|
||||||
|
#define ARM_ARCH_V7EM ARM_FEATURE (ARM_AEXT_V7EM, 0)
|
||||||
|
|
||||||
/* Some useful combinations: */
|
/* Some useful combinations: */
|
||||||
#define ARM_ARCH_NONE ARM_FEATURE (0, 0)
|
#define ARM_ARCH_NONE ARM_FEATURE (0, 0)
|
||||||
|
|
Loading…
Reference in New Issue