[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Bug gas/991] operands mismatch on correct m68040 instruction
From: |
tom at hukatronic dot cz |
Subject: |
[Bug gas/991] operands mismatch on correct m68040 instruction |
Date: |
3 Jun 2005 15:04:55 -0000 |
------- Additional Comments From tom at hukatronic dot cz 2005-06-03 15:04
-------
I believe that this bug is caused by two separate problems in
gas/config/tc-m68k.c file.
First problem is in operands matching against opcode table (function m68k_ip,
big for-loop around line
1216). Information in the_ins.operands array are in some cases modified during
operands matching
(case 'L' and case 'l' in big switch). Subsequently such modified operand fails
to match against correct
opcode operands and instruction is rejected.
Second problem is that function m68k_compare_opcode does not correctly compare
instructions with
the same name. The intension was that this function should honor order in
opcode table, but if op1 and
op2 has same names and op1 < op2 than m68k_compare_opcode return 0 instead of
1. Depending on
implementation of qsort this may produce different results. I believe that this
is reason why I cannot
reproduce this bug on i386-redhat-linux, because on i386-redhat-linux the order
of fmovem.l
opcodes is different from powerpc-apple-darwin and does not trigger the problem
with operands
matching.
Order of fmovem.l on powerpc:
IiL8~s
Iis8%s
Ii*lL8
order on i386-redhat-linux:
Iis8%s
IiL8~s
Ii*lL8
I will attach patches to fix both problems mentioned above.
--
http://sources.redhat.com/bugzilla/show_bug.cgi?id=991
------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.
- [Bug gas/991] New: operands mismatch on correct m68040 instruction, tom at hukatronic dot cz, 2005/06/03
- [Bug gas/991] operands mismatch on correct m68040 instruction, tom at hukatronic dot cz, 2005/06/03
- [Bug gas/991] operands mismatch on correct m68040 instruction,
tom at hukatronic dot cz <=
- [Bug gas/991] operands mismatch on correct m68040 instruction, tom at hukatronic dot cz, 2005/06/03
- [Bug gas/991] operands mismatch on correct m68040 instruction, tom at hukatronic dot cz, 2005/06/03
- [Bug gas/991] operands mismatch on correct m68040 instruction, tom at hukatronic dot cz, 2005/06/08
- [Bug gas/991] operands mismatch on correct m68040 instruction, nickc at redhat dot com, 2005/06/08