-
Notifications
You must be signed in to change notification settings - Fork 15.2k
Closed
Labels
backend:SystemZbugzillaIssues migrated from bugzillaIssues migrated from bugzillawontfixIssue is real, but we can't or won't fix it. Not invalidIssue is real, but we can't or won't fix it. Not invalid
Description
| Bugzilla Link | 9134 |
| Resolution | WONTFIX |
| Resolved on | Nov 25, 2011 14:14 |
| Version | trunk |
| OS | Linux |
| Attachments | test case |
| Reporter | LLVM Bugzilla Contributor |
| CC | @asl,@d0k |
Extended Description
When registers are spilled around call sites, the first spill is to the wrong stack offset.
The result of the test code produced by "llc -march=systemz" is:
zalloc: # @zalloc
stmg %r14, %r15, 112(%r15)
stg %r2, 168(%r15) # <--exceeds frame size
# spills to old %r15
aghi %r15, -184 # expand frame 160+24
brasl %r14, malloc
stg %r2, 160(%r15) # superfluous but OK
lg %r4, 168(%r15) # <--reload from new r15
lghi %r3, 0
brasl %r14, memset
lg %r1, 160(%r15)
stg %r1, 176(%r15)
lg %r2, 176(%r15)
lmg %r14, %r15, 296(%r15)
br %r14
Metadata
Metadata
Assignees
Labels
backend:SystemZbugzillaIssues migrated from bugzillaIssues migrated from bugzillawontfixIssue is real, but we can't or won't fix it. Not invalidIssue is real, but we can't or won't fix it. Not invalid