[PATCH] aarch64: allow adding/removing just feature flags via .arch_extension
Marcus Shawcroft
marcus.shawcroft@gmail.com
Mon Nov 3 17:44:00 GMT 2014
Hi
On 24 October 2014 13:40, Jan Beulich <JBeulich@suse.com> wrote:
> static int
> -aarch64_parse_features (char *str, const aarch64_feature_set **opt_p)
> +aarch64_parse_features (char *str, const aarch64_feature_set **opt_p,
> + char *ext)
The new parameter here is being used as a boolean flag, represent it
with a bfd_boolean rather than a char *.
> {
> /* We insist on extensions being added before being removed. We achieve
> this by using the ADDING_VALUE variable to indicate whether we are
> @@ -7267,16 +7270,18 @@ aarch64_parse_features (char *str, const
> while (str != NULL && *str != 0)
> {
> const struct aarch64_option_cpu_value_table *opt;
> - char *ext;
> int optlen;
>
> - if (*str != '+')
> + if (!ext)
> {
> - as_bad (_("invalid architectural extension"));
> - return 0;
> - }
> + if (*str != '+')
> + {
> + as_bad (_("invalid architectural extension"));
> + return 0;
> + }
>
> - str++;
> + str++;
> + }
> ext = strchr (str, '+');
The logic here is odd. I don;t think we want this in the case when ext
!= NULL. The effect is that:
.arch_extension +crc
...will give a "missing extension" rather than an "unknown extension"
error message.
Cheers
/Marcus
More information about the Binutils
mailing list