diff options
author | bd <bdunahu@operationnull.com> | 2025-05-11 22:42:50 -0400 |
---|---|---|
committer | bd <bdunahu@operationnull.com> | 2025-05-11 22:42:50 -0400 |
commit | bb7de0c564309a52ff34fed7a8904552c4616492 (patch) | |
tree | 4cc60cf326a744ac86b4367d3be0f77c1bfc56eb /input/dominative-functions.asm | |
parent | 0c81e5b481db57e14ccd0b2841b24baae15d30f9 (diff) |
Diffstat (limited to 'input/dominative-functions.asm')
-rw-r--r-- | input/dominative-functions.asm | 88 |
1 files changed, 44 insertions, 44 deletions
diff --git a/input/dominative-functions.asm b/input/dominative-functions.asm index 2ff242a..16cf094 100644 --- a/input/dominative-functions.asm +++ b/input/dominative-functions.asm @@ -3,62 +3,62 @@ ;;; uses a stack-based paradigm with a base pointer to manage argument passing .data - answer 0 + answer 0 .text MAIN: - addi $5 $2 0x0 ; establish frame pointer + addi $5 $2 0x0 ; establish frame pointer - addi $6 $0 -11 + addi $6 $0 -11 - push $6 - jal SUB23 - pop $6 - store $6 answer($0) - nop - nop - nop - quot $0 $0 $0 + push $6 + jal SUB23 + pop $6 + store $6 answer($0) + nop + nop + nop + quot $0 $0 $0 SUB23: - push $5 ; push old frame pointer - addi $5 $2 0x0 - subi $2 $2 0x1 + push $5 ; push old frame pointer + addi $5 $2 0x0 + subi $2 $2 0x1 - addi $6 $0 -23 - store $6 -1($5) + addi $6 $0 -23 + store $6 -1($5) - load $7 +1($5) ; access argument - load $6 -1($5) + load $7 +1($5) ; access argument + load $6 -1($5) - add $6 $6 $7 - push $1 ; save off our old ret - push $6 - jal ADD76 - pop $6 ; retrieve and pass along - pop $1 ; restore our old ret - store $6 +1($5) + add $6 $6 $7 + push $1 ; save off our old ret + push $6 + jal ADD76 + pop $6 ; retrieve and pass along + pop $1 ; restore our old ret + store $6 +1($5) - addi $2 $5 0x0 ; restore stack pointer - pop $5 ; restore frame pointer - ret + addi $2 $5 0x0 ; restore stack pointer + pop $5 ; restore frame pointer + ret ADD76: - push $5 - addi $5 $2 0x0 - subi $2 $2 0x1 + push $5 + addi $5 $2 0x0 + subi $2 $2 0x1 - addi $6 $0 +76 - store $6 -1($5) + addi $6 $0 +76 + store $6 -1($5) - load $7 +1($5) ; access argument - load $6 -1($5) + load $7 +1($5) ; access argument + load $6 -1($5) - add $6 $6 $7 - store $6 +1($5) + add $6 $6 $7 + store $6 +1($5) - addi $2 $5 0x0 - pop $5 - ret - nop - nop - nop - nop + addi $2 $5 0x0 + pop $5 + ret + nop + nop + nop + nop |