+2021-07-29 Matthew Malcomson <matthew.malcomson@arm.com>
+
+ * config/tc-aarch64.c (aarch64_abi_type): Introduce PURECAP and HYBRID
+ enum entries.
+ (aarch64_abis): Add "purecap" and "hybrid" parameters.
+ * testsuite/gas/aarch64/morello-abis-ignored.s: New.
+ * testsuite/gas/aarch64/morello-abis-ignored.d: New.
+
2021-07-29 Matthew Malcomson <matthew.malcomson@arm.com>
* config/tc-aarch64.c (s_aarch64_capinit, s_aarch64_chericap):
{
AARCH64_ABI_NONE = 0,
AARCH64_ABI_LP64 = 1,
- AARCH64_ABI_ILP32 = 2
+ AARCH64_ABI_ILP32 = 2,
+ AARCH64_ABI_PURECAP = 3,
+ AARCH64_ABI_HYBRID = 4,
};
#ifndef DEFAULT_ARCH
static const struct aarch64_option_abi_value_table aarch64_abis[] = {
{"ilp32", AARCH64_ABI_ILP32},
{"lp64", AARCH64_ABI_LP64},
+ /* Note that these values are accepted since they are valid parameters to
+ the -mabi argument for GCC. However we base no decision on them. */
+ {"purecap", AARCH64_ABI_PURECAP},
+ {"hybrid", AARCH64_ABI_HYBRID},
};
static int
--- /dev/null
+#name: Morello ABI arguments accepted but ignored.
+#as: -mabi=purecap
+#as: -mabi=lp64
+#as: -mabi=hybrid
+#readelf: --syms
+
+Symbol table '\.symtab' contains 10 entries:
+ Num: Value Size Type Bind Vis Ndx Name
+ 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND
+ 1: 0000000000000000 0 SECTION LOCAL DEFAULT 1
+ 2: 0000000000000000 0 SECTION LOCAL DEFAULT 2
+ 3: 0000000000000000 0 SECTION LOCAL DEFAULT 3
+ 4: 0000000000000001 0 FUNC LOCAL DEFAULT 1 foo
+ 5: 0000000000000000 0 NOTYPE LOCAL DEFAULT 1 \$c
+ 6: 0000000000000008 0 FUNC LOCAL DEFAULT 1 bar
+ 7: 0000000000000008 0 NOTYPE LOCAL DEFAULT 1 \$x
+ 8: 0000000000000011 0 FUNC LOCAL DEFAULT 1 baz
+ 9: 0000000000000010 0 NOTYPE LOCAL DEFAULT 1 \$c
--- /dev/null
+ .arch morello+c64
+ .type foo, @function
+foo:
+ mov x0, #0
+ ret c30
+ .arch morello
+ .type bar,@function
+bar:
+ mov x0, #0
+ ret c30
+ .arch morello+c64
+ .type baz, @function
+baz:
+ mov x0, #0
+ ret c30