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: [PATCH] x86: fix operand size checking


>>> On 14.07.18 at 15:07, <hjl.tools@gmail.com> wrote:
> On Fri, Jul 13, 2018 at 7:19 AM, Jan Beulich <JBeulich@suse.com> wrote:
>> Currently mov to/from control, debug, and test register insns accept any
>> size GPR operand (general pattern: templates with D set and both
>> operands being registers in distinct register files). This is due to
>> improper checking of the reverse case, including not informing the
>> caller whether a straight and/or reverse match was successful.
>>
>> The helper functions need to be told two indexes: One to index the given
>> operand types array, and the other to index the template one. The caller
>> must attempt a further straight match only if the function reported a
>> straight match (and respectively for reverse matches).
>>
>> gas/
>> 2018-07-13  Jan Beulich  <jbeulich@suse.com>
>>
>>         * config/tc-i386.c (match_reg_size): Split second parameter
>>         into two.
>>         (match_simd_size): Likewise.
>>         (match_mem_size): Likewise.
>>         (MATCH_STRAIGHT, MATCH_REVERSE): Define.
>>         (operand_size_match): Change return type. New local variable
>>         "match". Always check for reverse match when opcode_modifier.d
>>         is set.
>>         (match_template) New local variable "size_match". Skip further
>>         matching if operand_size_match() did not report a respective
>>         match.
>>         * testsuite/gas/i386/inval.s: Add control register reads/writes.
>>         * testsuite/gas/i386/inval.l: Adjust expectations.
> 
> OK.

Thanks. This is one of the prereqs to the further template folding (and
other fixes/improvements) series that I have pending, and that I would
want to get flushed out. The other is the pre-processing (or not) patch
that I've inquired about on last Wednesday: Could you respond there,
or do you expect me to send out the entire about 20 patch series, just
to find again that you're not happy with the approach taken in the very
first patch?

Thanks, Jan



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