From mboxrd@z Thu Jan 1 00:00:00 1970 From: grubba@roxen.com To: gcc-gnats@gcc.gnu.org Cc: grubba@roxen.com Subject: c/2394: -O2 -mcpu=ultrasparc can generate std's to non-8-byte aligned stack offsets Date: Mon, 26 Mar 2001 10:36:00 -0000 Message-id: <20010326183530.1667.qmail@sourceware.cygnus.com> X-SW-Source: 2001-03/msg00276.html List-Id: >Number: 2394 >Category: c >Synopsis: -O2 -mcpu=ultrasparc can generate std's to non-8-byte aligned stack offsets >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Mon Mar 26 10:36:01 PST 2001 >Closed-Date: >Last-Modified: >Originator: Henrik Grubbström >Release: gcc version 2.95.2 19991024 (release) >Organization: >Environment: $ uname -svrmip SunOS 5.8 Generic_108528-04 sun4u sparc SUNW,Ultra-80 >Description: Compilation of the attached file generates the following code: ... .stabn 68,0,86,.LLM74-gccbug .LLM74: .LLBE7: mov %l1, %o1 mov %l0, %o0 std %f2, [%sp+92] mov %l2, %o2 mov %l3, %o3 st %i1, [%sp+100] mov %l4, %o4 call gccbug_1, 0 mov 0, %o5 ... Note the std %f2, [%sp+92]. 92 (0x5c) is not a multiple of 8, the std will thus cause a SIGBUS. >How-To-Repeat: Compile the attached file with $ gcc -g -mcpu=ultrasparc -O2 -S gccbug.c -o gccbug.s Search for the code following the stab for line 86. >Fix: >Release-Note: >Audit-Trail: >Unformatted: ----gnatsweb-attachment---- Content-Type: application/x-c-code; name="gccbug.c" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="gccbug.c" CnN0cnVjdCBsaW5lX2xpc3QKewogICBzdHJ1Y3QgdmVydGV4ICphYm92ZSwqYmVsb3c7CiAgIGRv dWJsZSBkeCwgZHk7CiAgIHN0cnVjdCBsaW5lX2xpc3QgKm5leHQ7CiAgIGRvdWJsZSB4bWluLCB4 bWF4LCB5eG1pbiwgeXhtYXg7IC8qIHRlbXBvcmFyeSBzdG9yYWdlICovCn07CgpzdHJ1Y3QgdmVy dGV4CnsKICAgZG91YmxlIHgsIHk7CiAgIHN0cnVjdCB2ZXJ0ZXggKm5leHQ7ICAgIC8qIHRvdGFs IGxpc3QsIHNvcnRlZCBkb3dud2FyZHMgKi8KICAgc3RydWN0IGxpbmVfbGlzdCAqYmVsb3csKmFi b3ZlOyAvKiBjaGlsZHMgKi8KICAgaW50IGRvbmU7Cn07Cgp2b2lkIGdjY2J1Z18yKGRvdWJsZSAq YnVmLAoJICAgICAgZG91YmxlIHhtaW4sIGRvdWJsZSB4bWF4LAoJICAgICAgZG91YmxlIGFkZCkK ewogICBpbnQgaTsKICAgaW50IHhtaW5faSA9IChpbnQpeG1pbjsKICAgaW50IHhtYXhfaSA9IChp bnQpeG1heDsKICAgaWYgKHhtaW4+PTApCiAgIHsKICAgICAgYnVmW3htaW5faV0gKz0gKDEtKHht aW4tKChkb3VibGUpeG1pbl9pKSkpKmFkZDsKICAgICAgZm9yIChpPXhtaW5faSsxOyBpPHhtYXhf aTsgaSsrKSBidWZbaV0rPWFkZDsKICAgICAgYnVmW3htYXhfaV0gKz0gYWRkKih4bWF4LSgoZG91 YmxlKXhtYXhfaSkpOwogICB9CiAgIGVsc2UKICAgewogICAgICBmb3IgKGk9MDsgaTx4bWF4X2k7 IGkrKykgYnVmW2ldKz1hZGQ7CiAgICAgIGJ1Zlt4bWF4X2ldICs9IGFkZCooeG1heC0oKGZsb2F0 KXhtYXhfaSkpOwogICB9Cn0KCmludCBnY2NidWdfMShkb3VibGUgeG1pbiwKCSAgICAgZG91Ymxl IHhtYXgsCgkgICAgIHN0cnVjdCBsaW5lX2xpc3QgKipwbGwsCgkgICAgIGludCB0b2csCgkgICAg IGRvdWJsZSB5cCwKCSAgICAgZG91YmxlICpidWYpCnsKICAgc3RydWN0IGxpbmVfbGlzdCAqbGw9 KnBsbDsKICAgaW50IG10b2c7CgogICB3aGlsZSAobGwpCiAgIHsKICAgICAgaWYgKCAobGwtPmFi b3ZlLT55IDwgeXApICYmCgkgICAoIChsbC0+eG1heD09eG1pbiAmJiBsbC0+eXhtYXg9PXlwKSB8 fAoJICAgICAobGwtPnhtaW49PXhtaW4gJiYgbGwtPnl4bWluPT15cCkgKSApCiAgICAgIHsKCSB0 b2c9IXRvZzsKICAgICAgfQogICAgICBsbD1sbC0+bmV4dDsKICAgfQoKCiAgIGlmICh0b2cpCiAg IHsKICAgICAgZ2NjYnVnXzIoYnVmLHhtaW4seG1heCwxLjApOwogICB9CgogICByZXR1cm4gdG9n Owp9Cgp2b2lkIGdjY2J1ZyhzdHJ1Y3QgbGluZV9saXN0ICpsbCwgICAgZG91YmxlICpidWYpCnsK ICAgaW50IHk9MDsKICAgCiAgIHdoaWxlICgxKQogICB7CiAgICAgIGRvdWJsZSB5cCA9IHk7CiAg ICAgIHN0cnVjdCBsaW5lX2xpc3QgKmM7CiAgICAgIGRvdWJsZSB4bWluLCB4bWF4OwogICAgICBp bnQgdG9nPTA7CgogICAgICBjPWxsOwogICAgICB3aGlsZSAoYykKICAgICAgewoJIGM9Yy0+bmV4 dDsKICAgICAgfQoKCiAgICAgIHRvZyA9IGdjY2J1Z18xKHhtaW4seG1heCwmbGwsdG9nLHlwLGJ1 Zik7IC8qKioqKioqKioqKioqLwogICAgICB5Kys7CiAgIH0KfQo=