#include "fail.h"
#include "uart.h"
#include "riscv.h"
#include "time.h"

void fail() {
  // Get address that led to failure
  register uint64_t addr;
  asm volatile ("mv %0, ra" : "=r"(addr) : : "memory"); 

  // Print message
  print_time();
  println_with_addr("Failed at: 0x", addr);
  
  // Loop forever
  while(1) {

  }
}