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:
parent
54b0a63759
commit
e65ff9bae6
|
@ -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
|
||||||
|
|
Loading…
Reference in New Issue
Block a user