31 #if INTEL_PT_INSN_BUF_SZ < MAX_INSN_SIZE || INTEL_PT_INSN_BUF_SZ > MAX_INSN 32 #error Instruction buffer size too small 43 intel_pt_insn->
rel = 0;
138 intel_pt_insn->
op = op;
139 intel_pt_insn->
branch = branch;
144 #if __BYTE_ORDER == __BIG_ENDIAN 157 intel_pt_insn->
rel = 0;
184 u8 *inbuf,
int inlen,
int *lenp)
196 left =
sizeof(x->
out);
197 n = snprintf(x->
out, left,
"insn: ");
199 for (i = 0; i < insn.
length; i++) {
200 n += snprintf(x->
out + n, left,
"%02x ", inbuf[i]);
227 switch (intel_pt_insn->
branch) {
230 return snprintf(buf, buf_len,
"%s %s%d",
232 intel_pt_insn->
rel > 0 ?
"+" :
"",
236 return snprintf(buf, buf_len,
"%s",
const char * branch_name[]
#define INTEL_PT_INSN_BUF_SZ
int intel_pt_insn_type(enum intel_pt_insn_op op)
void insn_init(struct insn *insn, const void *kaddr, int buf_len, int x86_64)
enum intel_pt_insn_branch branch
unsigned char buf[INTEL_PT_INSN_BUF_SZ]
void insn_get_length(struct insn *insn)
static int insn_complete(struct insn *insn)
struct insn_field immediate
int intel_pt_insn_desc(const struct intel_pt_insn *intel_pt_insn, char *buf, size_t buf_len)
const char * intel_pt_insn_name(enum intel_pt_insn_op op)
int intel_pt_get_insn(const unsigned char *buf, size_t len, int x86_64, struct intel_pt_insn *intel_pt_insn)
x86 movsq based memcpy() in arch/x86/lib/memcpy_64.S") MEMCPY_FN(memcpy_erms
static void intel_pt_insn_decoder(struct insn *insn, struct intel_pt_insn *intel_pt_insn)
const char * dump_insn(struct perf_insn *x, uint64_t ip __maybe_unused, u8 *inbuf, int inlen, int *lenp)
static int insn_is_avx(struct insn *insn)