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: Thumb32 assembler (58/69)


On Tue, 2005-04-26 at 17:32, Paul Brook wrote:
> On Tuesday 26 April 2005 11:01, Zack Weinberg wrote:
> > More ARM/Thumb syntax compatibility: teach the ARM encoders to handle
> > an omitted second oprand, and adjust the way three-operand Thumb MUL
> > works (it's the third, not the second, operand that needs to equal the
> > first).
> 
> Unfortunately gcc (incorrectly) outputs the three argument form
> mul rd, rd, rm
> I'll fix gcc, but I guess we want to support this for backwards compatibility.
> 
> Paul

I think the restriction should be just lifted entirely for Thumb[1].

The ARMv6 ARM says that all known implementations of v4t and later can
handle any register overlap for MUL, so I'm inclined to just relax the
compiler and assembler constraints entirely.

R.

[1] The restriction came about because of the way the multiplier was
implemented on the first ARM devices, making use of the barrel shifter
and multiple iterations through the ALU.  With the addition of a
dedicated mulitplier unit in the arm7m this restriction effectively went
away.  All Thumb devices have been implemented with a dedicated multiply
unit.


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