libn64/os: Don't crash if bss size is 0.
authorTyler J. Stachecki <stachecki.tyler@gmail.com>
Wed, 29 Nov 2017 21:50:55 +0000 (16:50 -0500)
committerTyler J. Stachecki <stachecki.tyler@gmail.com>
Wed, 29 Nov 2017 21:50:55 +0000 (16:50 -0500)
Signed-off-by: Tyler J. Stachecki <stachecki.tyler@gmail.com>
libn64/os/asm/boot.s

index 1a11374..e71e2cf 100644 (file)
@@ -106,6 +106,7 @@ libn64_init_pi_wait:
 # Clear BSS; leave it in the cache in case libn64_main needs it.
   la $at, __bss_start
   addiu $a1, $v0, -0xC00
+  beql $at, $a1, libn64_init_bss_clear_skip
 
 libn64_init_bss_clear:
   cache 0xD, 0x0($at)
@@ -116,6 +117,7 @@ libn64_init_bss_clear:
 
 # Write out the address of the thread table (it's above the stack).
 # Done from the ASM side of things; off to C to continue init'ing.
+libn64_init_bss_clear_skip:
   lui $at,0x8000
   sw $sp, 0x420($at)