This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC 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: 3.1 m68k/coldfire code gen problem!!


Joel Sherrill wrote :

> bash-2.05$ m68k-rtems-gcc -m5200 -O4 -c testcase.c 
> /tmp/ccQJLRmU.s: Assembler messages:
> /tmp/ccQJLRmU.s:90: Error: operands mismatch -- statement `ext.l %a1'
> ignored

I have checked the m68k.md patterns to find where a "r" constraint was used
for an ext.l operand and I think the culprit is the `tablejump+2' pattern.
(look for `ASM_OUTPUT_CASE_LABEL')

A simple hack would be to replace the "r" constraint with a "d" constraint,
but that would lead to code pessimization for non-coldfire m68k processors.

The real fix would be to differentiate the pattern for coldfire (with "d"
constraint) and non-coldfire (with "r" constraint) cases.

I hope this helps

Philippe

Philippe De Muyter  phdm@macqel.be  Tel +32 27029044
Macq Electronique SA  rue de l'Aeronef 2  B-1140 Bruxelles  Fax +32 27029077


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