This is the mail archive of the binutils@sources.redhat.com 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 Intel syntax


Patch update attached. Rebuilt and tests re-run on i686-pc-linux-gnu and
x86_64-unknown-linux-gnu.

>>>> Alan Modra <amodra@bigpond.net.au> 29.07.04 08:30:57 >>>
>On Fri, Jul 23, 2004 at 03:22:50PM +0200, Jan Beulich wrote:
>> This is an update to the earlier posted x86 (dis)assembler Intel
syntax
>
>You'd find patches get reviewed quicker if you break them up.. 
Please
>also add 'p' to your diff options.

I try to do so where possible. But I also try to keep together what (to
me) seems to belong together...

>> 	(intel_float_operand): Add fourth return value indicating math
control
>> 	operations. Make classification more precise.
>
>I'd prefer if you left intel_float_operand as is, and moved the new
>classification tests into intel_e09_1, which I believe is the only
>place you use the new value.

No, it's really used in two places (parse_insn and intel_e09_1, with
the former perhaps even being the more important one).

>> 	* gas/i386/prefix.[sd]: Remove illegal 'fstsw %eax' (which
should
>> 	actually be rejected, but currently isn't due to the way the
>> 	accumulator is beaing dealt with.
>
>Please don't.  We want to ensure gas continues to accept this insn,
>since some versions of gcc emit it.

Undone. A slight change to the opcode tables was necessary instead.

>> 	* i386.h (sldx_Suf): Remove.
>> 	(FP, l_FP, sl_FP, x_FP): Don't imply IgnoreSize.
>
>This looks wrong too.  Please check that something like
>
> .code16
> fldl %st(1)
>
>does not use a size prefix.

Indeed, a couple more IgnoreSize additions (fld, fst, fcom) additions
were necessary.

>>  /* Upper case letters in the instruction names here are macros.
>>     'A' => print 'b' if no register operands or suffix_always is
true
>>     'B' => print 'b' if suffix_always is true
>> +   'C' -> print 's' or 'l'
>
>This isn't what 'C' does.  Wrong doco is worse than no doco.

Extended comment.

>>     'E' => print 'e' if 32-bit form of jcxz
>>     'F' => print 'w' or 'l' depending on address size prefix (loop
insns)
>>     'H' => print ",pt" or ",pn" branch hint
>> +   'I' => honor following macro letter even in Intel mode
>> +   'J' => print 'l'
>
>Same here.

Dito for 'I'. 'J' seems fine (because all of the other descriptions
also don't make special mention of not applying to Intel mode.

Jan

Attachment: binutils-mainline-x86-intel-syntax.patch
Description: Binary data


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