[sw] Cleanup boot_rom/crt0.S.

This change makes crt0.S conform to the uncontentious parts of the
assembly style guide proposed in #1067.

Signed-off-by: Miguel Young de la Sota <mcyoung@google.com>
diff --git a/sw/device/boot_rom/crt0.S b/sw/device/boot_rom/crt0.S
index 35c6fc4..20ec43a 100644
--- a/sw/device/boot_rom/crt0.S
+++ b/sw/device/boot_rom/crt0.S
@@ -4,105 +4,121 @@
 
   .section .text
 
+/**
+ * Default exception handler; loops forever.
+ */
 exception_handler:
-  jal x0, exception_handler
+  j exception_handler
 
+/**
+ * Default interrupt handler; loops forever.
+ */
 default_irq_handler:
-  jal x0, default_irq_handler
+  j default_irq_handler
 
+/**
+ * Entry point after reset.
+ *
+ * Sets up the stack, then jumps to |_start|.
+ */
 reset_handler:
-  /* set all registers to zero */
-  mv  x1, x0
-  mv  x2, x1
-  mv  x3, x1
-  mv  x4, x1
-  mv  x5, x1
-  mv  x6, x1
-  mv  x7, x1
-  mv  x8, x1
-  mv  x9, x1
-  mv x10, x1
-  mv x11, x1
-  mv x12, x1
-  mv x13, x1
-  mv x14, x1
-  mv x15, x1
-  mv x16, x1
-  mv x17, x1
-  mv x18, x1
-  mv x19, x1
-  mv x20, x1
-  mv x21, x1
-  mv x22, x1
-  mv x23, x1
-  mv x24, x1
-  mv x25, x1
-  mv x26, x1
-  mv x27, x1
-  mv x28, x1
-  mv x29, x1
-  mv x30, x1
-  mv x31, x1
+  // Clobber all writeable registers.
+  li  x1, 0x0
+  li  x2, 0x0
+  li  x3, 0x0
+  li  x4, 0x0
+  li  x5, 0x0
+  li  x6, 0x0
+  li  x7, 0x0
+  li  x8, 0x0
+  li  x9, 0x0
+  li  x10, 0x0
+  li  x11, 0x0
+  li  x12, 0x0
+  li  x13, 0x0
+  li  x14, 0x0
+  li  x15, 0x0
+  li  x16, 0x0
+  li  x17, 0x0
+  li  x18, 0x0
+  li  x19, 0x0
+  li  x20, 0x0
+  li  x21, 0x0
+  li  x22, 0x0
+  li  x23, 0x0
+  li  x24, 0x0
+  li  x25, 0x0
+  li  x26, 0x0
+  li  x27, 0x0
+  li  x28, 0x0
+  li  x29, 0x0
+  li  x30, 0x0
+  li  x31, 0x0
 
-  /* stack initilization */
-  la   x2, _stack_start
+  // Set up the stack.
+  la  sp, _stack_start
 
+  // Explicit fall-through to |_start|.
+
+/**
+ * Callable entry point for the boot rom.
+ *
+ * Currently, this only zeroes the |.bss| section, and, as such, any code
+ * that currently uses the |.data| segment will not work.
+ */
 _start:
-  .global _start
+  .globl _start
 
-  /* clear BSS */
-  la x26, _bss_start
-  la x27, _bss_end
-
-  bge x26, x27, zero_loop_end
-
+  // Zero out the BSS segment.
+  la  t0, _bss_start
+  la  t1, _bss_end
+  bge t0, t1, zero_loop_end
 zero_loop:
-  sw x0, 0(x26)
-  addi x26, x26, 4
-  ble x26, x27, zero_loop
+  sw    zero, 0(t0)
+  addi  t0, t0, 0x4
+  ble   t0, t1, zero_loop
 zero_loop_end:
 
+  // Jump into the main program entry point.
+  li    a0, 0x0  // argc = 0
+  li    a1, 0x0  // argv = 0
+  call  main
 
-main_entry:
-  /* jump to main program entry point (argc = argv = 0) */
-  addi x10, x0, 0
-  addi x11, x0, 0
-  jal x1, main
-
-/* ====================== [ exceptions & interrupts ] =================== */
-/* This section has to be down here, since we have to disable rvc for it  */
-
+/**
+ * Exception and interrupt handlers.
+ *
+ * This must be a separate section, since we disable RVC for it.
+ */
   .section .vectors, "ax"
   .option norvc;
 
-  // exception handler
+  // Exception handler.
   .org 0x00
-  jal x0, exception_handler
+  j exception_handler
 
-  /* use the same default handler for all interrupts */
-  // software interrupt handler
+  // Software interrupt handler.
   .org 0x0c
-  jal x0, default_irq_handler
+  j default_irq_handler
 
-  // timer interrupt handler
+  // Timer interrupt handler.
   .org 0x1c
-  jal x0, default_irq_handler
+  j default_irq_handler
 
-  // external interrupt handler
+  // External interrupt handler
   .org 0x2c
-  jal x0, default_irq_handler
+  j default_irq_handler
 
-  // fast interrupts 0 - 14
+  // Fast interrupts, 0 through 14.
   .org 0x40
   .rept 14
   nop
   .endr
-  jal x0, default_irq_handler
+  j default_irq_handler
 
-  // non-maskable interrupt handler
+  // Non-maskable interrupt (NMI) handler.
   .org 0x7c
-  jal x0, default_irq_handler
+  j default_irq_handler
 
-  // reset vector
+  // Reset vector, the initial entry point after reset.
   .org 0x80
-  jal x0, reset_handler
+  j reset_handler