pike.git / src / code / riscv.h

version» Context lines:

pike.git/src/code/riscv.h:27:      void riscv_flush_codegen_state(void);   #define FLUSH_CODE_GENERATOR_STATE() riscv_flush_codegen_state()      void riscv_flush_instruction_cache(void *addr, size_t len);   #define FLUSH_INSTRUCTION_CACHE(ADDR,LEN) riscv_flush_instruction_cache(ADDR,LEN)      /* Size of the prologue added by INS_ENTRY() (in PIKE_OPCODE_T's). */   #ifdef __riscv_compressed    /* All the prologue instructions can be compressed */ -  #define ENTRY_PROLOGUE_SIZE 7 +  #define ENTRY_PROLOGUE_SIZE 9   #else    /* No compression available */ -  #define ENTRY_PROLOGUE_SIZE (7*2) +  #define ENTRY_PROLOGUE_SIZE (9*2)   #endif      void riscv_start_function(int no_pc);   void riscv_end_function(int no_pc);      #define START_NEW_FUNCTION riscv_start_function   #define END_FUNCTION riscv_end_function      void riscv_ins_entry(void);   #define INS_ENTRY() riscv_ins_entry()
pike.git/src/code/riscv.h:91:   int riscv_read_f_jump(INT32 offset);      void riscv_ins_f_byte(unsigned int opcode);   void riscv_ins_f_byte_with_arg(unsigned int a, INT32 b);   void riscv_ins_f_byte_with_2_args(unsigned int a, INT32 c, INT32 b);      #define ins_f_byte(opcode) riscv_ins_f_byte(opcode)   #define ins_f_byte_with_arg(a, b) riscv_ins_f_byte_with_arg(a, b)   #define ins_f_byte_with_2_args(a, b, c) riscv_ins_f_byte_with_2_args(a, b, c)    + extern void riscv_jumptable(void); +    #define CALL_MACHINE_CODE(PC) do { \ -  return ((int (*)(struct Pike_interpreter_struct *))(pc)) (Pike_interpreter_pointer); \ +  return ((int (*)(struct Pike_interpreter_struct *, void *))(pc)) (Pike_interpreter_pointer, (void*)riscv_jumptable); \   } while(0)      #define DISASSEMBLE_CODE riscv_disassemble_code      void riscv_disassemble_code(PIKE_OPCODE_T *addr, size_t bytes);      #define INIT_INTERPRETER_STATE riscv_init_interpreter_state   void riscv_init_interpreter_state(void);