Track stack slot kinds.

Add a StackSlotKind enumeration to help keep track of the different
kinds of stack slots supported:

- Incoming and outgoing function arguments on the stack.
- Spill slots and locals.

Change the text format syntax for declaring a stack slot to use a kind
keyword rather than just 'stack_slot'.
This commit is contained in:
Jakob Stoklund Olesen
2017-06-16 10:35:01 -07:00
parent 66bc0a9c8b
commit 91d919c11a
9 changed files with 110 additions and 38 deletions

View File

@@ -96,8 +96,10 @@ ebb0(v90: i32, v91: f32):
; Stack slot references
function %stack() {
ss10 = stack_slot 8
ss2 = stack_slot 4
ss10 = spill_slot 8
ss2 = local 4
ss3 = incoming_arg 4
ss4 = outgoing_arg 4
ebb0:
v1 = stack_load.i32 ss10
@@ -106,8 +108,10 @@ ebb0:
stack_store v2, ss2
}
; sameln: function %stack() {
; nextln: $ss10 = stack_slot 8
; nextln: $ss2 = stack_slot 4
; nextln: $ss10 = spill_slot 8
; nextln: $ss2 = local 4
; nextln: $ss3 = incoming_arg 4
; nextln: $ss4 = outgoing_arg 4
; check: ebb0:
; nextln: $v1 = stack_load.i32 $ss10