[Bug target/57865] New: Broken _save64gpr and _rest64gpr usage
sebastian.huber@embedded-brains.de
gcc-bugzilla@gcc.gnu.org
Tue Jul 9 11:38:00 GMT 2013
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57865
Bug ID: 57865
Summary: Broken _save64gpr and _rest64gpr usage
Product: gcc
Version: 4.8.1
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: target
Assignee: unassigned at gcc dot gnu.org
Reporter: sebastian.huber@embedded-brains.de
Created attachment 30483
--> http://gcc.gnu.org/bugzilla/attachment.cgi?id=30483&action=edit
Test case.
The 64-bit GPR save and restore sequence is broken and destroys the link
register saved on the stack:
powerpc-eabi-gcc -mcpu=8540 -mspe -mabi=spe -mfloat-gprs=double -Os -S test.c
diff -u test-4.7.2.s test-4.8.1.s
--- test-4.7.2.s 2013-07-09 13:09:56.418360402 +0200
+++ test-4.8.1.s 2013-07-09 13:31:59.097519823 +0200
@@ -6,7 +6,7 @@
f:
stwu 1,-56(1)
mflr 0
- addi 11,1,-88
+ addi 11,1,-80
stw 0,60(1)
bl _save64gpr_29
mr 29,3
@@ -15,16 +15,16 @@
stw 6,24(1)
bl g
lwz 5,16(1)
+ lwz 6,24(1)
+ evmergelo 31,3,4
stw 3,8(1)
stw 4,12(1)
mr 3,29
- lwz 6,24(1)
mr 4,30
- evldd 31,8(1)
bl h
- addi 11,1,-88
+ addi 11,1,-80
efdctsiz 3,31
b _rest64gpr_29_x
.size f, .-f
- .ident "GCC: (GNU) 4.7.2"
+ .ident "GCC: (GNU) 4.8.1"
.gnu_attribute 4, 2
More information about the Gcc-bugs
mailing list