[ARM] Support for ARMv8.1 command line option
2015-06-03 Matthew Wahab <matthew.wahab@arm.com> gas/ * config/tc-arm.c (arm_archs): Add "armv8.1-a". * doc/c-arm.texi (ARM Options, -march): Add "armv8.1-a". * NEWS: Mention ARMv8.1 support. include/opcode/ * arm.h (FPU_ARCH_CRYPTO_NEON_VFP_ARMV8_1): New. (ARM_ARCH_V8_1A): New. (ARM_ARCH_V8_1A_FP): New. (ARM_ARCH_V8_1A_SIMD): New. (ARM_ARCH_V8_1A_CRYPTOV1): New. (ARM_FEATURE_CORE): New.
This commit is contained in:
parent
0220bc5727
commit
a5932920ef
|
@ -1,3 +1,9 @@
|
|||
2015-06-03 Matthew Wahab <matthew.wahab@arm.com>
|
||||
|
||||
* config/tc-arm.c (arm_archs): Add "armv8.1-a".
|
||||
* doc/c-arm.texi (ARM Options, -march): Add "armv8.1-a".
|
||||
* NEWS: Mention ARMv8.1 support.
|
||||
|
||||
2015-06-02 Matthew Wahab <matthew.wahab@arm.com>
|
||||
|
||||
* config/tc-arm.c (arm_ext_pan): New.
|
||||
|
|
4
gas/NEWS
4
gas/NEWS
|
@ -2,6 +2,10 @@
|
|||
|
||||
Changes in 2.26:
|
||||
|
||||
* Support for the ARMv8.1 architecture has been added to the ARM port. Support
|
||||
for the individual ARMv8.1 Adv.SIMD and PAN architecture extensions has also
|
||||
been added to the ARM port.
|
||||
|
||||
* Extend --compress-debug-sections option to support
|
||||
--compress-debug-sections=[none|zlib|zlib-gnu|zlib-gabi] for ELF
|
||||
targets.
|
||||
|
|
|
@ -24650,6 +24650,7 @@ static const struct arm_arch_option_table arm_archs[] =
|
|||
ARM_ARCH_OPT ("armv7-m", ARM_ARCH_V7M, FPU_ARCH_VFP),
|
||||
ARM_ARCH_OPT ("armv7e-m", ARM_ARCH_V7EM, FPU_ARCH_VFP),
|
||||
ARM_ARCH_OPT ("armv8-a", ARM_ARCH_V8A, FPU_ARCH_VFP),
|
||||
ARM_ARCH_OPT ("armv8.1-a", ARM_ARCH_V8_1A, FPU_ARCH_VFP),
|
||||
ARM_ARCH_OPT ("xscale", ARM_ARCH_XSCALE, FPU_ARCH_VFP),
|
||||
ARM_ARCH_OPT ("iwmmxt", ARM_ARCH_IWMMXT, FPU_ARCH_VFP),
|
||||
ARM_ARCH_OPT ("iwmmxt2", ARM_ARCH_IWMMXT2,FPU_ARCH_VFP),
|
||||
|
|
|
@ -220,6 +220,7 @@ names are recognized:
|
|||
@code{armv7-m},
|
||||
@code{armv7e-m},
|
||||
@code{armv8-a},
|
||||
@code{armv8.1-a},
|
||||
@code{iwmmxt}
|
||||
@code{iwmmxt2}
|
||||
and
|
||||
|
|
|
@ -1,3 +1,12 @@
|
|||
2015-06-03 Matthew Wahab <matthew.wahab@arm.com>
|
||||
|
||||
* arm.h (FPU_ARCH_CRYPTO_NEON_VFP_ARMV8_1): New.
|
||||
(ARM_ARCH_V8_1A): New.
|
||||
(ARM_ARCH_V8_1A_FP): New.
|
||||
(ARM_ARCH_V8_1A_SIMD): New.
|
||||
(ARM_ARCH_V8_1A_CRYPTOV1): New.
|
||||
(ARM_FEATURE_CORE): New.
|
||||
|
||||
2015-06-02 Matthew Wahab <matthew.wahab@arm.com>
|
||||
|
||||
* arm.h (ARM_EXT2_PAN): New.
|
||||
|
|
|
@ -208,6 +208,9 @@
|
|||
ARM_FEATURE_COPROC (FPU_NEON_ARMV8 \
|
||||
| FPU_VFP_ARMV8 \
|
||||
| FPU_NEON_EXT_RDMA)
|
||||
#define FPU_ARCH_CRYPTO_NEON_VFP_ARMV8_1 \
|
||||
ARM_FEATURE_COPROC (FPU_CRYPTO_ARMV8 | FPU_NEON_ARMV8 | FPU_VFP_ARMV8 \
|
||||
| FPU_NEON_EXT_RDMA)
|
||||
|
||||
|
||||
#define FPU_ARCH_ENDIAN_PURE ARM_FEATURE_COPROC (FPU_ENDIAN_PURE)
|
||||
|
@ -247,6 +250,7 @@
|
|||
#define ARM_ARCH_V7M ARM_FEATURE_CORE_LOW (ARM_AEXT_V7M)
|
||||
#define ARM_ARCH_V7EM ARM_FEATURE_CORE_LOW (ARM_AEXT_V7EM)
|
||||
#define ARM_ARCH_V8A ARM_FEATURE_CORE_LOW (ARM_AEXT_V8A)
|
||||
#define ARM_ARCH_V8_1A ARM_FEATURE_CORE (ARM_AEXT_V8A, ARM_EXT2_PAN)
|
||||
|
||||
/* Some useful combinations: */
|
||||
#define ARM_ARCH_NONE ARM_FEATURE_LOW (0, 0)
|
||||
|
@ -275,6 +279,17 @@
|
|||
#define ARM_ARCH_V8A_CRYPTOV1 ARM_FEATURE_LOW (ARM_AEXT_V8A, \
|
||||
FPU_ARCH_CRYPTO_NEON_VFP_ARMV8)
|
||||
|
||||
/* v8.1-a+fp. */
|
||||
#define ARM_ARCH_V8_1A_FP ARM_FEATURE (ARM_AEXT_V8A, ARM_EXT2_PAN, \
|
||||
FPU_ARCH_VFP_ARMV8)
|
||||
/* v8.1-a+simd (implies fp). */
|
||||
#define ARM_ARCH_V8_1A_SIMD ARM_FEATURE (ARM_AEXT_V8A, ARM_EXT2_PAN, \
|
||||
FPU_ARCH_NEON_VFP_ARMV8_1)
|
||||
/* v8.1-a+crypto (implies simd+fp). */
|
||||
#define ARM_ARCH_V8_1A_CRYPTOV1 ARM_FEATURE (ARM_AEXT_V8A, ARM_EXT2_PAN, \
|
||||
FPU_ARCH_CRYPTO_NEON_VFP_ARMV8_1)
|
||||
|
||||
|
||||
/* There are too many feature bits to fit in a single word, so use a
|
||||
structure. For simplicity we put all core features in array CORE
|
||||
and everything else in the other. All the bits in element core[0]
|
||||
|
@ -328,6 +343,7 @@ typedef struct
|
|||
((T1).core[0] == (T2).core[0] && (T1).core[1] == (T2).core[1])
|
||||
|
||||
#define ARM_FEATURE_LOW(core, coproc) {{(core), 0}, (coproc)}
|
||||
#define ARM_FEATURE_CORE(core1, core2) {{(core1), (core2)}, 0}
|
||||
#define ARM_FEATURE_CORE_LOW(core) {{(core), 0}, 0}
|
||||
#define ARM_FEATURE_CORE_HIGH(core) {{0, (core)}, 0}
|
||||
#define ARM_FEATURE_COPROC(coproc) {{0, 0}, (coproc)}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#source: emit-relocs-28.s
|
||||
#as: -mabi=ilp32
|
||||
#ld: -m aarch64linux32 --defsym globala=0x11000 --defsym globalb=0x45000 --defsym globalc=0x1234 -e0 --emit-relocs
|
||||
#ld: -T relocs-ilp32.ld --defsym globala=0x11000 --defsym globalb=0x45000 --defsym globalc=0x1234 -e0 --emit-relocs
|
||||
#objdump: -dr
|
||||
|
||||
.*: +file format .*
|
||||
|
|
Loading…
Reference in New Issue