  .section .text

exception_handler:
  jal x0, exception_handler

default_irq_handler:
  jal x0, default_irq_handler

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

  /* stack initilization */
  la   x2, _stack_start

_start:
  .global _start

  /* clear BSS */
  la x26, _bss_start
  la x27, _bss_end

  bge x26, x27, zero_loop_end

zero_loop:
  sw x0, 0(x26)
  addi x26, x26, 4
  ble x26, x27, zero_loop
zero_loop_end:


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  */

  .section .vectors, "ax"
  .option norvc;

  // exception handler
  .org 0x00
  jal x0, exception_handler

  /* use the same default handler for all interrupts */
  // software interrupt handler
  .org 0x0c
  jal x0, default_irq_handler

  // timer interrupt handler
  .org 0x1c
  jal x0, default_irq_handler

  // external interrupt handler
  .org 0x2c
  jal x0, default_irq_handler

  // fast interrupts 0 - 14
  .org 0x40
  .rept 14
  nop
  .endr
  jal x0, default_irq_handler

  // non-maskable interrupt handler
  .org 0x7c
  jal x0, default_irq_handler

  // reset vector
  .org 0x80
  jal x0, reset_handler
