target/901: Illegal instruction generated in libgcc2.a for a m68k target

panto@intracom.gr panto@intracom.gr
Mon Nov 27 02:46:00 GMT 2000


>Number:         901
>Category:       target
>Synopsis:       Illegal instruction generated in libgcc2.a for a m68k target
>Confidential:   no
>Severity:       critical
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          wrong-code
>Submitter-Id:   net
>Arrival-Date:   Mon Nov 27 02:46:00 PST 2000
>Closed-Date:
>Last-Modified:
>Originator:     panto@intracom.gr
>Release:        gcc version 2.95.2 19991024 (release)
>Organization:
>Environment:
Linux 2.2.18 i386, Linux 2.2.18 ppc
>Description:
The library code for libgcc2.a and various other code
fragments in the config/m68k directory contain
calls to jbsr, which incorrectly translate to 
brsl instruction *EVEN* when the code is targeted to 
a lower than a m68020 processor; this instruction
is valid only on a higher than a m68020 cpu.
This is a very serious bug, since the code bombs with
an illegal instruction violation.

The actual target is m68k-unknown-coff, and the
code is targeted to a 68302 cpu.

Actually the culprit could be gas since it is arguable
that the correct definition of jbsr should be jsr in 
the case of a lower than a 68020 cpu, but this hits gcc
pretty badly.
>How-To-Repeat:
./configure --target=m68k-unknown-coff
>Fix:
The diff file fixes the problem at least for me 
>Release-Note:
>Audit-Trail:
>Unformatted:
----gnatsweb-attachment----
Content-Type: application/octet-stream; name="gcc-2.95.2-m68k-jsbr-fix.diff"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="gcc-2.95.2-m68k-jsbr-fix.diff"

ZGlmZiAtciAtQzIgZ2NjLTIuOTUuMi1vcmlnL2djYy9jb25maWcvbTY4ay9sYjFzZjY4LmFzbSBn
Y2MtMi45NS4yL2djYy9jb25maWcvbTY4ay9sYjFzZjY4LmFzbQoqKiogZ2NjLTIuOTUuMi1vcmln
L2djYy9jb25maWcvbTY4ay9sYjFzZjY4LmFzbQlNb24gTWFyICAxIDE3OjA2OjQ0IDE5OTkKLS0t
IGdjYy0yLjk1LjIvZ2NjL2NvbmZpZy9tNjhrL2xiMXNmNjguYXNtCU1vbiBOb3YgMjcgMTI6NDI6
MDYgMjAwMAoqKioqKioqKioqKioqKioKKioqIDg4LDkxICoqKioKLS0tIDg4LDk2IC0tLS0KICAj
ZGVmaW5lIHNwIFJFRyAoc3ApCiAgCisgLyogb25seSBvdXRwdXQgamJzciB3aGVuIHRoZSB0YXJn
ZXQgaXMgYWJsZSB0byBoYW5kbGUgaXQgKi8KKyAjaWYgIWRlZmluZWQoX19tNjgwMjBfXykgJiYg
IWRlZmluZWQoX19tY2Y1MjAwX18pCisgI2RlZmluZSBqYnNyCWpzcgorICNlbmRpZgorIAogICNp
ZmRlZiBMX2Zsb2F0ZXgKICAKZGlmZiAtciAtQzIgZ2NjLTIuOTUuMi1vcmlnL2djYy9jb25maWcv
bTY4ay9tNjhrLm1kIGdjYy0yLjk1LjIvZ2NjL2NvbmZpZy9tNjhrL202OGsubWQKKioqIGdjYy0y
Ljk1LjItb3JpZy9nY2MvY29uZmlnL202OGsvbTY4ay5tZAlUaHUgQXVnICA1IDA5OjIyOjA1IDE5
OTkKLS0tIGdjYy0yLjk1LjIvZ2NjL2NvbmZpZy9tNjhrL202OGsubWQJTW9uIE5vdiAyNyAxMjo0
MjowNiAyMDAwCioqKioqKioqKioqKioqKgoqKiogNjgxMCw2ODE0ICoqKioKICAgIHJldHVybiBc
ImpzciAlMFwiOwogICNlbHNlCiEgICByZXR1cm4gXCJqYnNyICUwXCI7CiAgI2VuZGlmCiAgIikK
LS0tIDY4MTAsNjgxNiAtLS0tCiAgICByZXR1cm4gXCJqc3IgJTBcIjsKICAjZWxzZQohICAgaWYg
KFRBUkdFVF82ODAyMCB8fCBUQVJHRVRfNTIwMCkJLyogZW1pdCBqYnNyIHdoZW4gdGFyZ2V0IGlz
IGNhcGFibGUgb2YgaGFuZGxpbmcgaXQgKi8KISAJICByZXR1cm4gXCJqYnNyICUwXCI7CiEgICBy
ZXR1cm4gXCJqc3IgJTBcIjsKICAjZW5kaWYKICAiKQoqKioqKioqKioqKioqKioKKioqIDY4NzMs
Njg3NyAqKioqCiAgICByZXR1cm4gXCJqc3IgJTFcIjsKICAjZWxzZQohICAgcmV0dXJuIFwiamJz
ciAlMVwiOwogICNlbmRpZgogICIpCi0tLSA2ODc1LDY4ODEgLS0tLQogICAgcmV0dXJuIFwianNy
ICUxXCI7CiAgI2Vsc2UKISAgIGlmIChUQVJHRVRfNjgwMjAgfHwgVEFSR0VUXzUyMDApCS8qIGVt
aXQgamJzciB3aGVuIHRhcmdldCBpcyBjYXBhYmxlIG9mIGhhbmRsaW5nIGl0ICovCiEgCSAgcmV0
dXJuIFwiamJzciAlMVwiOwohICAgcmV0dXJuIFwianNyICUxXCI7CiAgI2VuZGlmCiAgIikK


More information about the Gcc-bugs mailing list