-2015-03-24 Terry Guo <terry.guo@arm.com>
-
- * config/tc-arm.c (no_cpu_selected): Use new macro to compare
- features.
- (parse_psr): Likewise.
- (do_t_mrs): Likewise.
- (do_t_msr): Likewise.
- (static const arm_feature_set arm_ext_*): Defined with new macros.
- (static const arm_feature_set arm_cext_*): Likewise.
- (static const arm_feature_set fpu_fpa_ext_*): Likewise.
- (static const arm_feature_set fpu_vfp_ext_*): Likewise.
- (deprecated_coproc_regs): Likewise.
- (UL_BARRIER): Likewise.
- (barrier_opt_names): Likewise.
- (arm_cpus): Likewise.
- (arm_extensions): Likewise.
+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>
Changes in 2.25:
+* 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.
+
* Add support for the AVR Tiny microcontrollers.
* Replace support for openrisc and or32 with support for or1k.
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),
@code{armv7-m},
@code{armv7e-m},
@code{armv8-a},
+@code{armv8.1-a},
@code{iwmmxt}
and
@code{xscale}.
+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-03-24 Terry Guo <terry.guo@arm.com>
* arm.h (arm_feature_set): Extended to provide more available bits.
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)
#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)
#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]
((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)}
--- /dev/null
+#source: emit-relocs-28.s
+#as: -mabi=ilp32
+#ld: -T relocs-ilp32.ld --defsym globala=0x11000 --defsym globalb=0x45000 --defsym globalc=0x1234 -e0 --emit-relocs
+#objdump: -dr
+
+.*: +file format .*
+
+
+Disassembly of section .text:
+
+00400074 <\.text>:
+ 400074: 90000082 adrp x2, 410000 <globalb\+0x3cb000>
+ 400074: R_AARCH64_P32_ADR_PREL_PG_HI21 _GLOBAL_OFFSET_TABLE_
+ 400078: f9408c40 ldr x0, \[x2,#280\]
+ 400078: R_AARCH64_P32_LD32_GOTPAGE_LO14 globala
+ 40007c: f9409040 ldr x0, \[x2,#288\]
+ 40007c: R_AARCH64_P32_LD32_GOTPAGE_LO14 globalb
+ 400080: f9408840 ldr x0, \[x2,#272\]
+ 400080: R_AARCH64_P32_LD32_GOTPAGE_LO14 globalc