This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: x86: correct operand type checks


On Thu, Dec 14, 2017 at 12:43 AM, Jan Beulich <JBeulich@suse.com> wrote:
> Again these look to be typos: No template currently allows for any two
> (or all three) of RegXMM, RegYMM, and RegZMM in a single operand. Quite
> clearly ! are missing, after the addition of which the checks for the
> first and (if present) second operands also fully match up.
>
> gas/
> 2017-12-14  Jan Beulich  <jbeulich@suse.com>
>
>         * config/tc-i386.c (match_template): Add missing ! to
>         reg{x,y,z}mm checks in q- and l-suffix handling.
>
> --- a/gas/config/tc-i386.c
> +++ b/gas/config/tc-i386.c
> @@ -4968,9 +4968,9 @@ match_template (char mnem_suffix)
>                && !operand_types[0].bitfield.regymm
>                && !operand_types[0].bitfield.regzmm)
>               || (!operand_types[t->operands > 1].bitfield.regmmx
> -                 && operand_types[t->operands > 1].bitfield.regxmm
> -                 && operand_types[t->operands > 1].bitfield.regymm
> -                 && operand_types[t->operands > 1].bitfield.regzmm))
> +                 && !operand_types[t->operands > 1].bitfield.regxmm
> +                 && !operand_types[t->operands > 1].bitfield.regymm
> +                 && !operand_types[t->operands > 1].bitfield.regzmm))
>           && (t->base_opcode != 0x0fc7
>               || t->extension_opcode != 1 /* cmpxchg8b */))
>         continue;
> @@ -4985,7 +4985,7 @@ match_template (char mnem_suffix)
>                && ((!operand_types[0].bitfield.regmmx
>                     && !operand_types[0].bitfield.regxmm)
>                    || (!operand_types[t->operands > 1].bitfield.regmmx
> -                      && operand_types[t->operands > 1].bitfield.regxmm)))
> +                      && !operand_types[t->operands > 1].bitfield.regxmm)))
>         continue;
>
>        /* Do not verify operands when there are none.  */
>
>
>

OK.

Thanks.

-- 
H.J.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]