// 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_conv, 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";
}
