// This file define the kelvin isa for mpact-sim. For more info on mpact-sim isa
// format, check: go/mpact-sim-codelabs-riscv-instruction-decoder

// First disasm field is 18 char wide and left justified.
disasm widths = {-18};

int global_latency = 0;

isa Kelvin {
  namespace kelvin::sim::isa32;
  slots { kelvin; }
}

#include "sim/kelvin_base.isa"
#include "sim/kelvin_arith.isa"
#include "sim/kelvin_shift.isa"
#include "sim/kelvin_memory.isa"
#include "sim/kelvin_mul.isa"

// Combining all kelvin instruction sets.
slot kelvin : riscv32i, riscv32m, zicsr, zfencei, privileged, kelvin_arith,
    kelvin_log, kelvin_memory, kelvin_mul, kelvin_shift, kelvin_vector_memory {
  includes {
    #include "sim/kelvin_instructions.h"
  }
  default opcode =
    disasm: "Illegal instruction at 0x%(@:08x)",
    semfunc: "&KelvinIllegalInstruction";
}
