Add an offset to StackSlotData.

The offset is relative to the stack pointer in the calling function, so
it excludes the return address pushed by the call instruction itself on
Intel ISAs.

Change the ArgumentLoc::Stack offset to an i32, so it matches the stack
slot offsets.
This commit is contained in:
Jakob Stoklund Olesen
2017-06-28 14:05:11 -07:00
parent 1d20c92ffe
commit ed3157f508
7 changed files with 54 additions and 17 deletions

View File

@@ -98,7 +98,7 @@ ebb0(v90: i32, v91: f32):
function %stack() {
ss10 = spill_slot 8
ss2 = local 4
ss3 = incoming_arg 4
ss3 = incoming_arg 4, offset 8
ss4 = outgoing_arg 4
ebb0:
@@ -110,7 +110,7 @@ ebb0:
; sameln: function %stack() {
; nextln: $ss10 = spill_slot 8
; nextln: $ss2 = local 4
; nextln: $ss3 = incoming_arg 4
; nextln: $ss3 = incoming_arg 4, offset 8
; nextln: $ss4 = outgoing_arg 4
; check: ebb0: