Lines Matching +full:machine +full:- +full:mode
1 // SPDX-License-Identifier: GPL-2.0
13 #include "machine.h"
16 #include "dump-insn.h"
24 for (int i = 0; i < sample->insn_len; i++) { in sample__fprintf_insn_raw()
25 printed += fprintf(fp, "%02x", (unsigned char)sample->insn[i]); in sample__fprintf_insn_raw()
26 if (sample->insn_len - i > 1) in sample__fprintf_insn_raw()
35 int capstone_init(struct machine *machine, csh *cs_handle, bool is64, bool disassembler_style);
37 int capstone_init(struct machine *machine, csh *cs_handle, bool is64, bool disassembler_style) in capstone_init() argument
40 cs_mode mode; in capstone_init() local
42 if (machine__is(machine, "x86_64") && is64) { in capstone_init()
44 mode = CS_MODE_64; in capstone_init()
45 } else if (machine__normalized_is(machine, "x86")) { in capstone_init()
47 mode = CS_MODE_32; in capstone_init()
48 } else if (machine__normalized_is(machine, "arm64")) { in capstone_init()
50 mode = CS_MODE_ARM; in capstone_init()
51 } else if (machine__normalized_is(machine, "arm")) { in capstone_init()
53 mode = CS_MODE_ARM + CS_MODE_V8; in capstone_init()
54 } else if (machine__normalized_is(machine, "s390")) { in capstone_init()
56 mode = CS_MODE_BIG_ENDIAN; in capstone_init()
58 return -1; in capstone_init()
61 if (cs_open(arch, mode, cs_handle) != CS_ERR_OK) { in capstone_init()
63 return -1; in capstone_init()
66 if (machine__normalized_is(machine, "x86")) { in capstone_init()
90 if (insn->detail && insn->detail->x86.op_count == 1) { in print_insn_x86()
91 cs_x86_op *op = &insn->detail->x86.operands[0]; in print_insn_x86()
94 if (op->type == X86_OP_IMM && in print_insn_x86()
95 thread__find_symbol(thread, cpumode, op->imm, &al)) { in print_insn_x86()
99 printed += fprintf(fp, " [%#" PRIx64 "]", op->imm); in print_insn_x86()
110 static bool is64bitip(struct machine *machine, struct addr_location *al) in is64bitip() argument
112 const struct dso *dso = al->map ? map__dso(al->map) : NULL; in is64bitip()
117 return machine__is(machine, "x86_64") || in is64bitip()
118 machine__normalized_is(machine, "arm64") || in is64bitip()
119 machine__normalized_is(machine, "s390"); in is64bitip()
122 ssize_t fprintf_insn_asm(struct machine *machine, struct thread *thread, u8 cpumode, in fprintf_insn_asm() argument
133 ret = capstone_init(machine, &cs_handle, is64bit, true); in fprintf_insn_asm()
139 if (machine__normalized_is(machine, "x86")) in fprintf_insn_asm()
144 *lenp = insn->size; in fprintf_insn_asm()
147 printed = -1; in fprintf_insn_asm()
155 struct machine *machine, FILE *fp, in sample__fprintf_insn_asm() argument
158 bool is64bit = is64bitip(machine, al); in sample__fprintf_insn_asm()
161 printed = fprintf_insn_asm(machine, thread, sample->cpumode, is64bit, in sample__fprintf_insn_asm()
162 (uint8_t *)sample->insn, sample->insn_len, in sample__fprintf_insn_asm()
163 sample->ip, NULL, 0, fp); in sample__fprintf_insn_asm()
172 struct machine *machine __maybe_unused, in sample__fprintf_insn_asm()