+#elif __riscv && __WORDSIZE == 64
+ struct {
+ /* Hash table for constants to be resolved and patched */
+ struct {
+ jit_const_t **table; /* very simple hash table */
+ jit_word_t size; /* number of vectors in table */
+ jit_word_t count; /* number of distinct entries */
+ } hash;
+ struct {
+ jit_const_t **ptr; /* keep a single pointer */
+ jit_const_t *list; /* free list */
+ jit_word_t length; /* length of pool */
+ } pool;
+ /* Linear list for constants that cannot be encoded easily */
+ struct {
+ jit_word_t *instrs; /* list of direct movi instructions */
+ jit_word_t *values; /* list of direct movi constants */
+ jit_word_t offset; /* offset in instrs/values vector */
+ jit_word_t length; /* length of instrs/values vector */
+ } vector;
+ } consts;