#ifndef SOFTRVV_H
#define SOFTRVV_H

#include <stddef.h>
#include <stdint.h>

#include "encoding.h"
#include "softrvv_internal.h"
#include "softrvv_vadd.h"
#include "softrvv_vand.h"
#include "softrvv_vdiv.h"
#include "softrvv_vfadd.h"
#include "softrvv_vfdiv.h"
#include "softrvv_vfmax.h"
#include "softrvv_vfmin.h"
#include "softrvv_vfmul.h"
#include "softrvv_vfsub.h"
#include "softrvv_vmadd_vnmsub.h"
#include "softrvv_vmacc.h"
#include "softrvv_vmax.h"
#include "softrvv_vmfeq.h"
#include "softrvv_vmfge.h"
#include "softrvv_vmfgt.h"
#include "softrvv_vmfle.h"
#include "softrvv_vmflt.h"
#include "softrvv_vmfne.h"
#include "softrvv_vmin.h"
#include "softrvv_vmseq.h"
#include "softrvv_vmsge.h"
#include "softrvv_vmsgt.h"
#include "softrvv_vmsle.h"
#include "softrvv_vmslt.h"
#include "softrvv_vmsne.h"
#include "softrvv_vmul_vmulh.h"
#include "softrvv_vmv_s_x.h"
#include "softrvv_vnsra.h"
#include "softrvv_vnsrl.h"
#include "softrvv_vor.h"
#include "softrvv_vredsum.h"
#include "softrvv_vrem.h"
#include "softrvv_vsext_vzext.h"
#include "softrvv_vsll.h"
#include "softrvv_vsra.h"
#include "softrvv_vsrl.h"
#include "softrvv_vsub.h"
#include "softrvv_vwadd.h"
#include "softrvv_vwsub.h"
#include "softrvv_vxor.h"

namespace softrvv {

const uint32_t MSTATUS_VS_FS_ENABLE_BIT =
    (MSTATUS_VS & (MSTATUS_VS >> 1)) | (MSTATUS_FS & (MSTATUS_FS >> 1));

inline void disable_rvv() {
  __asm__ volatile(
      "li t0, %[MSTATUS_VS_BITS]\n\t"
      "csrc mstatus, t0" ::[MSTATUS_VS_BITS] "n"(MSTATUS_VS_FS_ENABLE_BIT));
}

inline void enable_rvv() {
  __asm__ volatile(
      "li t0, %[MSTATUS_VS_BITS]\n\t"
      "csrs mstatus, t0" ::[MSTATUS_VS_BITS] "n"(MSTATUS_VS_FS_ENABLE_BIT));
}

}  // namespace softrvv

#endif  // SOFTRVV_H
