This is the mail archive of the gcc-bugs@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]

c/497: gcc generates wrong code for Motorola M*Core



>Number:         497
>Category:       c
>Synopsis:       gcc generates wrong code for Motorola M*Core
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          wrong-code
>Submitter-Id:   net
>Arrival-Date:   Wed Aug 30 13:46:00 PDT 2000
>Closed-Date:
>Last-Modified:
>Originator:     Jukka Marin
>Release:        gcc version 2.96 20000814 (experimental)
>Organization:
>Environment:
NetBSD 1.4.2/i386, cross-gcc for Motorola M*Core CPU
>Description:
The function exit time, gcc forgets to pull M*Core registers
off the stack and adjust the stack pointer.  It seems this
happens when optimization is enabled AND the function has
several exit points (return statements).

A more detailed description with code snippets is included.
>How-To-Repeat:
Compile the sample functions.
>Fix:
Not known - disabling optimization seems to "fix" the
problem, but the code generated without -On looks quite
horrible at times.. :-)
>Release-Note:
>Audit-Trail:
>Unformatted:
----gnatsweb-attachment----
Content-Type: application/octet-stream; name="bug"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="bug"

SSB0aGluayBnY2MgcHJvZHVjZXMgaW5jb3JyZWN0IGNvZGUuICBTZWUgdGhpczoKCmludCB0ZXN0
MSh1X2ludDMyX3QgbWVvdykKewogIGludCBpLCBqLCBrOwoKICBkZWIoKTsKICBpZiAobWVvdyA+
IDgpIHJldHVybigtMSk7CiAgcmV0dXJuKDE8PChtZW93JjB4MDcpKTsKCn0KCmludCB0ZXN0Mih1
X2ludDMyX3QgbWVvdykKewogIGludCBpLCBqLCBrOwoKICBkZWIoKTsKICBpZiAobWVvdyA+IDgp
IG1lb3cgPSAwOwogIHJldHVybigxPDwobWVvdyYweDA3KSk7Cgp9CgoKMDAwMDA4M2MgPHRlc3Qx
PjoKIDgzYzogICAyNDcwICAgICAgICAgICAgc3ViaSAgICByMCwgOAogODNlOiAgIDAwN2UgICAg
ICAgICAgICBzdG0gICAgIHIxNC1yMTUsIChyMCkKIDg0MDogICAxMjJlICAgICAgICAgICAgbW92
ICAgICByMTQsIHIyCiA4NDI6ICAgN2YwYSAgICAgICAgICAgIGpzcmkgICAgMHgwICAgICAvLyBm
cm9tIGFkZHJlc3MgcG9vbCBhdCAweDg2YwogODQ0OiAgIDYwODcgICAgICAgICAgICBtb3ZpICAg
IHI3LCA4CiA4NDY6ICAgMGNlNyAgICAgICAgICAgIGNtcGhzICAgcjcsIHIxNAogODQ4OiAgIGUw
MDIgICAgICAgICAgICBidCAgICAgIDB4ODRlCiA4NGE6ICAgMmMwMiAgICAgICAgICAgIGJtYXNr
aSAgcjIsIDAKIDg0YzogICAwMGNmICAgICAgICAgICAgam1wICAgICByMTUKIDg0ZTogICAyZTdl
ICAgICAgICAgICAgYW5kaSAgICByMTQsIDcKIDg1MDogICAxM2UyICAgICAgICAgICAgYmdlbnIg
ICByMiwgcjE0CiA4NTI6ICAgMDBjZiAgICAgICAgICAgIGptcCAgICAgcjE1CgowMDAwMDg1NCA8
dGVzdDI+OgogODU0OiAgIDI0NzAgICAgICAgICAgICBzdWJpICAgIHIwLCA4CiA4NTY6ICAgMDA3
ZSAgICAgICAgICAgIHN0bSAgICAgcjE0LXIxNSwgKHIwKQogODU4OiAgIDEyMmUgICAgICAgICAg
ICBtb3YgICAgIHIxNCwgcjIKIDg1YTogICA3ZjA0ICAgICAgICAgICAganNyaSAgICAweDAgICAg
IC8vIGZyb20gYWRkcmVzcyBwb29sIGF0IDB4ODZjCiA4NWM6ICAgNjA4NyAgICAgICAgICAgIG1v
dmkgICAgcjcsIDgKIDg1ZTogICAwY2U3ICAgICAgICAgICAgY21waHMgICByNywgcjE0CiA4NjA6
ICAgMDFkZSAgICAgICAgICAgIGNscmYgICAgcjE0CiA4NjI6ICAgMmU3ZSAgICAgICAgICAgIGFu
ZGkgICAgcjE0LCA3CiA4NjQ6ICAgMTNlMiAgICAgICAgICAgIGJnZW5yICAgcjIsIHIxNAogODY2
OiAgIDAwNmUgICAgICAgICAgICBsZG0gICAgIHIxNC1yMTUsIChyMCkKIDg2ODogICAyMDcwICAg
ICAgICAgICAgYWRkaSAgICByMCwgOAogODZhOiAgIDAwY2YgICAgICAgICAgICBqbXAgICAgIHIx
NQoKQXQgdGhlIGJlZ2lubmluZyBvZiBlYWNoIHJvdXRpbmUsIGdjYyBwdXNoZXMgcjE0IGFuZCBy
MTUgb24gc3RhY2sgKHIxNSBpcwpwdXNoZWQgYmVjYXVzZSBpdCdzIHVzZWQgYXMgdGhlIHJldHVy
biBhZGRyZXNzIHJlZ2lzdGVyIGJ5IG1jb3JlIGFuZCBJIGNhbGwKdGhlIGRlYigpIGZ1bmN0aW9u
LCBzbyByMTUgaGFzIHRvIGJlIHB1c2hlZCkuICA4IGJ5dGVzIGFyZSBhbGxvY2F0ZWQgb24Kc3Rh
Y2sgZm9yIHRoZSB0d28gcmVnaXN0ZXJzLCB0aGlzIGlzIGZpbmUuCgpCVVQhICBPbmx5IHRlc3Qy
KCkgcmVzdG9yZXMgdGhlIHIxNCBhbmQgcjE1IHJlZ2lzdGVycyBhbmQgZGVhbGxvY2F0ZXMgdGhl
CnN0YWNrIHNwYWNlLiAgVGhlIG9ubHkgZGlmZmVyZW5jZSBpbiB0aGUgcm91dGluZXMgaXMgdGhl
ICJleHRyYSIgcmV0dXJuKCkKaW4gdGhlIGNvZGUuICBJIHNlZSB0aGUgc2FtZSBwaGVub21lbm9u
IGluIG15ICJyZWFsIiBjb2RlIC0gaXQgd29ya2VkIE9LCnVudGlsIEkgYWRkZWQgYW5vdGhlciBy
ZXR1cm4gcG9pbnQgaW4gdGhlIGZ1bmN0aW9uLgoKSSdtIHVzaW5nIHRoZSBlZ2NzIHNvdXJjZSBm
cm9tIDAwMDgxNCBhbmQgdGhlIGZvbGxvd2luZyBjb21waWxlciBvcHRpb25zOgoKbWNvcmUtZWxm
LWdjYyAtV2FsbCAtYyAtTzYgLW1iaWctZW5kaWFuIC1tMjEwIC1mbm8tYnVpbHRpbiAtSS4uL2lu
Y2x1ZGUKYm9vdC5jIC1vIGJvb3QubwptY29yZS1lbGYtZ2NjIC1XbCwtTWFwLGJvb3QubWFwLC1U
LGJvb3QubG5rIC1ub3N0ZGxpYiAgLW9mb3JtYXQ9c3JlYyBzdHViLm8KYm9vdC5vIC1vYm9vdC5z
MTkgLWxnY2MKCkkgZG9uJ3Qgd2FudCB0byBiZWxpZXZlIHRoYXQgZ2NjIHByb2R1Y2VzIGJyb2tl
biBjb2RlLCBidXQgdGhhdCdzIGhvdyBpdApsb29rcyB0byBtZS4uCg==

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