ETISS 0.8.0
Extendable Translating Instruction Set Simulator (version 0.8.0)
RV32IMACFDFuncs.h
Go to the documentation of this file.
1 
7 #ifndef __RV32IMACFD_FUNCS_H
8 #define __RV32IMACFD_FUNCS_H
9 
10 #ifdef __cplusplus
11 extern "C" {
12 #endif
13 
14 #include "RV32IMACFD.h"
15 #include "etiss/jit/CPU.h"
16 #include "etiss/jit/System.h"
17 #include "etiss/jit/ReturnCode.h"
18 
19 
20 void leave(etiss_int32 priv_lvl);
21 
23 
24 etiss_uint8 RV32IMACFD_extension_enabled(ETISS_CPU * const cpu, ETISS_System * const system, void * const * const plugin_pointers, etiss_int8 extension);
25 
27 
29 
31 
33 
35 
37 
39 
41 
43 
45 
47 
49 
51 
53 
54 etiss_uint8 RV32IMACFD_get_rm(ETISS_CPU * const cpu, ETISS_System * const system, void * const * const plugin_pointers, etiss_uint8 rm);
55 
57 
59 
61 
63 
65 
67 
69 
71 
73 
75 
77 
79 
81 
82 etiss_uint64 etiss_get_cycles(ETISS_CPU * const cpu, ETISS_System * const system, void * const * const plugin_pointers);
83 
85 
86 etiss_uint64 etiss_get_instret(ETISS_CPU * const cpu, ETISS_System * const system, void * const * const plugin_pointers);
87 
88 etiss_uint32 RV32IMACFD_sstatus_mask(ETISS_CPU * const cpu, ETISS_System * const system, void * const * const plugin_pointers);
89 
90 etiss_uint32 RV32IMACFD_mstatus_mask(ETISS_CPU * const cpu, ETISS_System * const system, void * const * const plugin_pointers);
91 
92 etiss_uint32 RV32IMACFD_csr_read(ETISS_CPU * const cpu, ETISS_System * const system, void * const * const plugin_pointers, etiss_uint32 csr);
93 
94 void RV32IMACFD_csr_write(ETISS_CPU * const cpu, ETISS_System * const system, void * const * const plugin_pointers, etiss_uint32 csr, etiss_uint32 val);
95 
97 
99 
101 
102 void RV32IMACFD_raise(ETISS_CPU * const cpu, ETISS_System * const system, void * const * const plugin_pointers, etiss_int32 irq, etiss_uint32 mcause);
103 
104 void RV32IMACFD_translate_exc_code(ETISS_CPU * const cpu, ETISS_System * const system, void * const * const plugin_pointers, etiss_int32 cause);
105 
106 etiss_uint32 RV32IMACFD_calc_irq_mcause(ETISS_CPU * const cpu, ETISS_System * const system, void * const * const plugin_pointers);
107 
108 void RV32IMACFD_check_irq(ETISS_CPU * const cpu, ETISS_System * const system, void * const * const plugin_pointers);
109 
111 
112 etiss_int64 etiss_semihost(ETISS_CPU * const cpu, ETISS_System * const system, void * const * const plugin_pointers, etiss_uint32 XLEN, etiss_uint64 operation, etiss_uint64 parameter);
113 
114 #ifdef __cplusplus
115 }
116 #endif
117 
118 #endif
char flag
Definition: 386-GCC.h:75
etiss_uint32 fcvt_64_32(etiss_uint64, etiss_uint32, etiss_uint8)
etiss_uint64 fadd_d(etiss_uint64, etiss_uint64, etiss_uint8)
etiss_uint32 fconv_d2f(etiss_uint64, etiss_uint8)
void leave(etiss_int32 priv_lvl)
Generated on Wed, 08 May 2024 17:36:07 +0200.
etiss_uint64 fsqrt_d(etiss_uint64, etiss_uint8)
void RV32IMACFD_translate_exc_code(ETISS_CPU *const cpu, ETISS_System *const system, void *const *const plugin_pointers, etiss_int32 cause)
etiss_uint32 fsqrt_s(etiss_uint32, etiss_uint8)
etiss_uint32 fcmp_s(etiss_uint32, etiss_uint32, etiss_uint32)
etiss_uint64 RV32IMACFD_get_field(etiss_uint64 reg, etiss_uint64 mask)
etiss_uint32 fdiv_s(etiss_uint32, etiss_uint32, etiss_uint8)
etiss_uint64 fcmp_d(etiss_uint64, etiss_uint64, etiss_uint32)
etiss_uint32 fcvt_s(etiss_uint32, etiss_uint32, etiss_uint8)
etiss_uint32 unbox_s(etiss_uint64)
etiss_uint64 etiss_get_instret(ETISS_CPU *const cpu, ETISS_System *const system, void *const *const plugin_pointers)
Definition: CSRCounters.cpp:26
void wait(etiss_int32 flag)
void RV32IMACFD_check_irq(ETISS_CPU *const cpu, ETISS_System *const system, void *const *const plugin_pointers)
etiss_uint64 RV32IMACFD_set_field(etiss_uint64 reg, etiss_uint64 mask, etiss_uint64 val)
void RV32IMACFD_csr_write(ETISS_CPU *const cpu, ETISS_System *const system, void *const *const plugin_pointers, etiss_uint32 csr, etiss_uint32 val)
etiss_uint64 fconv_f2d(etiss_uint32, etiss_uint8)
etiss_uint64 etiss_get_time()
Definition: CSRCounters.cpp:18
etiss_uint8 RV32IMACFD_ctz(etiss_uint64 val)
etiss_uint64 fsub_d(etiss_uint64, etiss_uint64, etiss_uint8)
etiss_uint8 RV32IMACFD_get_rm(ETISS_CPU *const cpu, ETISS_System *const system, void *const *const plugin_pointers, etiss_uint8 rm)
etiss_uint8 etiss_semihost_enabled()
Checks whether semihosting is enabled in the config.
Definition: semihost.cpp:43
etiss_uint32 fsub_s(etiss_uint32, etiss_uint32, etiss_uint8)
etiss_uint64 fmadd_d(etiss_uint64, etiss_uint64, etiss_uint64, etiss_uint32, etiss_uint8)
etiss_uint32 fclass_s(etiss_uint32)
etiss_uint32 RV32IMACFD_sstatus_mask(ETISS_CPU *const cpu, ETISS_System *const system, void *const *const plugin_pointers)
etiss_uint64 etiss_get_cycles(ETISS_CPU *const cpu, ETISS_System *const system, void *const *const plugin_pointers)
Definition: CSRCounters.cpp:13
etiss_uint32 RV32IMACFD_mstatus_mask(ETISS_CPU *const cpu, ETISS_System *const system, void *const *const plugin_pointers)
etiss_uint32 fget_flags()
etiss_uint64 fcvt_d(etiss_uint64, etiss_uint32, etiss_uint8)
etiss_uint64 fsel_d(etiss_uint64, etiss_uint64, etiss_uint32)
etiss_uint8 RV32IMACFD_extension_enabled(ETISS_CPU *const cpu, ETISS_System *const system, void *const *const plugin_pointers, etiss_int8 extension)
Generated on Wed, 08 May 2024 17:36:07 +0200.
etiss_uint32 fadd_s(etiss_uint32, etiss_uint32, etiss_uint8)
etiss_uint32 fmul_s(etiss_uint32, etiss_uint32, etiss_uint8)
etiss_uint32 RV32IMACFD_calc_irq_mcause(ETISS_CPU *const cpu, ETISS_System *const system, void *const *const plugin_pointers)
etiss_uint64 fmul_d(etiss_uint64, etiss_uint64, etiss_uint8)
void RV32IMACFD_raise(ETISS_CPU *const cpu, ETISS_System *const system, void *const *const plugin_pointers, etiss_int32 irq, etiss_uint32 mcause)
etiss_uint32 fsel_s(etiss_uint32, etiss_uint32, etiss_uint32)
etiss_int64 etiss_semihost(ETISS_CPU *const cpu, ETISS_System *const system, void *const *const plugin_pointers, etiss_uint32 XLEN, etiss_uint64 operation, etiss_uint64 parameter)
Executes the semihosting call based on the operation number.
Definition: semihost.cpp:48
etiss_uint64 fclass_d(etiss_uint64)
etiss_uint64 unbox_d(etiss_uint64)
etiss_uint64 fcvt_32_64(etiss_uint32, etiss_uint32, etiss_uint8)
etiss_uint64 fdiv_d(etiss_uint64, etiss_uint64, etiss_uint8)
etiss_uint32 RV32IMACFD_csr_read(ETISS_CPU *const cpu, ETISS_System *const system, void *const *const plugin_pointers, etiss_uint32 csr)
etiss_uint32 fmadd_s(etiss_uint32, etiss_uint32, etiss_uint32, etiss_uint32, etiss_uint8)
uint64_t etiss_uint64
Definition: types.h:96
uint32_t etiss_uint32
Definition: types.h:93
int64_t etiss_int64
Definition: types.h:95
int8_t etiss_int8
Definition: types.h:86
uint8_t etiss_uint8
Definition: types.h:87
int32_t etiss_int32
Definition: types.h:92
basic cpu state structure needed for execution of any cpu architecture.
Definition: CPU.h:89
memory access and time synchronization functions.
Definition: System.h:78