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 02/10] x86: drop stray W


On Wed, Aug 7, 2019 at 12:43 AM Jan Beulich <jbeulich@suse.com> wrote:
>
> On 06.08.2019 21:37,  H.J. Lu  wrote:
> > On Tue, Aug 6, 2019 at 7:25 AM Jan Beulich <jbeulich@suse.com> wrote:
> >>
> >> The flag is used to indicate opcodes which can be switched between byte
> >> and word/dword/qword forms (in a "canonical" way). Obviously it's quite
> >> odd then to see it on insns not allowing for byte operands in the first
> >> place. As a result the opcode bytes need to be adjusted accordingly,
> >> which includes comparisons done in optimize_encoding().
> >
> > These encodings do allow byte operand.
>
> By "encodings" I assume you mean the opcodes, not the templates. The
> templates modified here all clearly don't allow byte operands, and
> that's what counts when considering whether W is applicable.

i.tm.opcode_modifier.w is checked only in process_suffix.  This part

      /* It's not a byte, select word/dword operation.  */
      if (i.tm.opcode_modifier.w)
        {
          if (i.tm.opcode_modifier.shortform)
            i.tm.base_opcode |= 8;
          else
            i.tm.base_opcode |= 1;
        }

applies to encoding.  Even if we can't merge entries in i386-opc.tbl,
W still makes senses.   Will keeping W cause any issues?

> >  The reason why they are in
> > a separate entry is Cpu64.  Can they be merged without Cpu64?
>
> I don't think they can, let me got through:
>


-- 
H.J.


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