1
0
Fork 0
mirror of https://github.com/notwa/mm synced 2024-06-17 17:03:06 -07:00

use new stack instructions

This commit is contained in:
Connor Olding 2015-12-17 08:52:48 -08:00
parent 54b0a63759
commit e65ff9bae6

View File

@ -24,13 +24,10 @@
[cosf]: 0x80091F40 [cosf]: 0x80091F40
main: main:
subi sp, sp, 20 push ra, a0, s1, s3, s4
sw ra, 0(sp) // s1: current actor ptr
sw a0, 4(sp) // s3: current actor type ptr
sw s1, 8(sp) // current actor ptr // s4: current actor type index
sw s3, 12(sp) // current actor type ptr
sw s4, 16(sp) // current actor type index
li t0, @global_context li t0, @global_context
addi s3, t0, @actorlist_offset addi s3, t0, @actorlist_offset
li s4, 0 li s4, 0
@ -73,21 +70,14 @@ continue:
bne s4, t0, typeloop bne s4, t0, typeloop
addi s3, s3, @actorlist_dead_space addi s3, s3, @actorlist_dead_space
lw ra, 0(sp) jpop ra, a0, s1, s3, s4
lw a0, 4(sp)
lw s1, 8(sp)
lw s3, 12(sp)
lw s4, 16(sp)
jr
addi sp, sp, 20
process_actor: // args: a0. returns nothing. process_actor: // args: a0. returns nothing.
// TODO: ignore bomb explosions, they share the same type // TODO: ignore bomb explosions, they share the same type
subi sp, sp, 16 push r0, ra, s0, s1
// 0(sp) reserved for sinf/cosf // 0(sp) reserved for sinf/cosf
sw ra, 4(sp) // s0: result of sin
sw s0, 8(sp) // result of sin // s1: result of cos
sw s1, 12(sp) // result of cos
lh t0, 0(a0) lh t0, 0(a0)
subiu t0, t0, @at_bomb subiu t0, t0, @at_bomb
bne t0, r0, process_actor_return bne t0, r0, process_actor_return
@ -138,11 +128,7 @@ process_actor: // args: a0. returns nothing.
sw t5, current_rotation sw t5, current_rotation
process_actor_return: process_actor_return:
lw ra, 4(sp) jpop r0, ra, s0, s1
lw s0, 8(sp)
lw s1, 12(sp)
jr
addi sp, sp, 16
rotations: rotations:
.word 0x00000000 // pi*0/6 .word 0x00000000 // pi*0/6