[PATCH] config/tc-aarch64.c: Avoid trying to parse a vector mov as immediate.

Yufeng Zhang Yufeng.Zhang@arm.com
Fri Nov 1 09:41:00 GMT 2013


Hi Will,

Thanks for fixing this.  Can you please add a gas test for it?

Thanks,
Yufeng

On 11/01/13 00:27, Will Newton wrote:
>
> Parsing a vector mov instruction currently leads to a phantom undefined
> symbol being added to the symbol table. e.g.:
>
>         .text
>         mov     x0, v0.D[0]
>
> Produces an undefined symbol called "v0.D".
>
> 2013-10-31  Will Newton<will.newton@linaro.org>
>
> 	* config/tc-aarch64.c (parse_operands): Avoid trying to
> 	parse a vector register as an immediate.
> ---
>   gas/config/tc-aarch64.c | 3 ++-
>   1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/gas/config/tc-aarch64.c b/gas/config/tc-aarch64.c
> index 14ffdad..02fe4de 100644
> --- a/gas/config/tc-aarch64.c
> +++ b/gas/config/tc-aarch64.c
> @@ -4810,7 +4810,8 @@ parse_operands (char *str, const aarch64_opcode *opcode)
>   	case AARCH64_OPND_IMM_MOV:
>   	  {
>   	    char *saved = str;
> -	    if (reg_name_p (str, REG_TYPE_R_Z_SP))
> +	    if (reg_name_p (str, REG_TYPE_R_Z_SP) ||
> +		reg_name_p (str, REG_TYPE_VN))
>   	      goto failure;
>   	    str = saved;
>   	    po_misc_or_fail (my_get_expression (&inst.reloc.exp,&str,




More information about the Binutils mailing list