loongarch_instruction
#define LOONGARCH_INSN_SIZE sizeof(union loongarch_instruction)
static inline bool is_break_ins(union loongarch_instruction *ip)
static inline bool is_pc_ins(union loongarch_instruction *ip)
static inline bool is_branch_ins(union loongarch_instruction *ip)
static inline bool is_ra_save_ins(union loongarch_instruction *ip)
static inline bool is_stack_alloc_ins(union loongarch_instruction *ip)
static inline bool is_self_loop_ins(union loongarch_instruction *ip, struct pt_regs *regs)
void simu_pc(struct pt_regs *regs, union loongarch_instruction insn);
void simu_branch(struct pt_regs *regs, union loongarch_instruction insn);
bool insns_not_supported(union loongarch_instruction insn);
bool insns_need_simulation(union loongarch_instruction insn);
void arch_simulate_insn(union loongarch_instruction insn, struct pt_regs *regs);
static inline void emit_##NAME(union loongarch_instruction *insn, \
static inline void emit_##NAME(union loongarch_instruction *insn, \
static inline void emit_##NAME(union loongarch_instruction *insn, \
static inline void emit_##NAME(union loongarch_instruction *insn, \
static inline void emit_##NAME(union loongarch_instruction *insn, \
static inline void emit_##NAME(union loongarch_instruction *insn, \
static inline void emit_##NAME(union loongarch_instruction *insn, \
static inline void emit_##NAME(union loongarch_instruction *insn, \
static inline void emit_##NAME(union loongarch_instruction *insn, \
static inline void emit_jirl(union loongarch_instruction *insn,
static inline void emit_##NAME(union loongarch_instruction *insn, \
static inline void emit_##NAME(union loongarch_instruction *insn, \
static inline void emit_##NAME(union loongarch_instruction *insn, \
typedef union loongarch_instruction larch_inst;
static int __init_or_module copy_alt_insns(union loongarch_instruction *buf,
union loongarch_instruction *dest, union loongarch_instruction *src, int nr)
static void *__init_or_module text_poke_early(union loongarch_instruction *insn,
union loongarch_instruction *buf, unsigned int nr)
union loongarch_instruction *instr, *replacement;
union loongarch_instruction insnbuf[MAX_PATCH_SIZE];
union loongarch_instruction *_buf = buf; \
static void __init_or_module add_nops(union loongarch_instruction *insn, int count)
static void __init_or_module recompute_jump(union loongarch_instruction *buf,
union loongarch_instruction *dest, union loongarch_instruction *src,
union loongarch_instruction *insn;
insn = (union loongarch_instruction *)insn_addr;
bool insns_not_supported(union loongarch_instruction insn)
void simu_pc(struct pt_regs *regs, union loongarch_instruction insn)
bool insns_need_simulation(union loongarch_instruction insn)
void arch_simulate_insn(union loongarch_instruction insn, struct pt_regs *regs)
union loongarch_instruction insn;
union loongarch_instruction insn;
union loongarch_instruction insn;
union loongarch_instruction insn;
union loongarch_instruction insn;
union loongarch_instruction insn;
union loongarch_instruction insn;
union loongarch_instruction insn;
union loongarch_instruction insn;
union loongarch_instruction insn;
void simu_branch(struct pt_regs *regs, union loongarch_instruction insn)
union loongarch_instruction *ip = (union loongarch_instruction *)pc;
union loongarch_instruction insn;
union loongarch_instruction insn;
union loongarch_instruction *insn = (union loongarch_instruction *)location;
union loongarch_instruction *insn = (union loongarch_instruction *)location;
union loongarch_instruction *insn = (union loongarch_instruction *)location;
union loongarch_instruction *insn = (union loongarch_instruction *)location;
union loongarch_instruction *insn = (void *)p->pc;
union loongarch_instruction insn;
union loongarch_instruction *ip = (union loongarch_instruction *)pc;
union loongarch_instruction insn;
union loongarch_instruction *ip, *ip_end;
ip = (union loongarch_instruction *)(pc - offset);
ip_end = (union loongarch_instruction *)pc;
union loongarch_instruction insn;
union loongarch_instruction insn;
union loongarch_instruction insn;
ctx.image = (union loongarch_instruction *)insns;
ctx.image = (union loongarch_instruction *)image;
ctx.ro_image = (union loongarch_instruction *)ro_image;
ctx.image = (union loongarch_instruction *)image_ptr;
ctx.ro_image = (union loongarch_instruction *)ro_image_ptr;
union loongarch_instruction *image;
union loongarch_instruction *ro_image;
static inline void emit_nop(union loongarch_instruction *insn)
union loongarch_instruction *insn = &ctx->image[ctx->idx]; \
#define LOONGARCH_INSN_SIZE sizeof(union loongarch_instruction)
static inline void emit_##NAME(union loongarch_instruction *insn, \
static bool decode_insn_reg1i21_fomat(union loongarch_instruction inst,
static bool decode_insn_reg2i12_fomat(union loongarch_instruction inst,
static bool decode_insn_reg2i14_fomat(union loongarch_instruction inst,
static bool decode_insn_reg2i16_fomat(union loongarch_instruction inst,
static bool decode_insn_reg3_fomat(union loongarch_instruction inst,
union loongarch_instruction inst;
inst = *(union loongarch_instruction *)(sec->data->d_buf + offset);
emit_jirl((union loongarch_instruction *)&ret, LOONGARCH_GPR_RA, LOONGARCH_GPR_ZERO, 0);
static bool decode_insn_reg0i26_fomat(union loongarch_instruction inst,