mirror of
https://github.com/radareorg/radare2.git
synced 2025-02-08 23:07:17 +00:00
Honor asm.cpu for asm.arch=ppc.gnu ##disasm (#18543)
This commit is contained in:
parent
e5248e97ed
commit
c150dc489f
@ -40,8 +40,9 @@ DECLARE_GENERIC_PRINT_ADDRESS_FUNC()
|
|||||||
DECLARE_GENERIC_FPRINTF_FUNC()
|
DECLARE_GENERIC_FPRINTF_FUNC()
|
||||||
|
|
||||||
static int disassemble(RAsm *a, RAsmOp *op, const ut8 *buf, int len) {
|
static int disassemble(RAsm *a, RAsmOp *op, const ut8 *buf, int len) {
|
||||||
|
char options[64];
|
||||||
struct disassemble_info disasm_obj;
|
struct disassemble_info disasm_obj;
|
||||||
if (len<4) {
|
if (len < 4) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
buf_global = &op->buf_asm;
|
buf_global = &op->buf_asm;
|
||||||
@ -50,7 +51,14 @@ static int disassemble(RAsm *a, RAsmOp *op, const ut8 *buf, int len) {
|
|||||||
|
|
||||||
/* prepare disassembler */
|
/* prepare disassembler */
|
||||||
memset (&disasm_obj, '\0', sizeof (struct disassemble_info));
|
memset (&disasm_obj, '\0', sizeof (struct disassemble_info));
|
||||||
disasm_obj.disassembler_options = (a->bits==64)?"64":"";
|
*options = 0;
|
||||||
|
if (!R_STR_ISEMPTY (a->cpu)) {
|
||||||
|
snprintf (options, sizeof (options), "%s,%s",
|
||||||
|
(a->bits == 64)? "64": "", a->cpu);
|
||||||
|
} else if (a->bits == 64){
|
||||||
|
r_str_ncpy (options, "64", sizeof (options));
|
||||||
|
}
|
||||||
|
disasm_obj.disassembler_options = options;
|
||||||
disasm_obj.buffer = bytes;
|
disasm_obj.buffer = bytes;
|
||||||
disasm_obj.read_memory_func = &ppc_buffer_read_memory;
|
disasm_obj.read_memory_func = &ppc_buffer_read_memory;
|
||||||
disasm_obj.symbol_at_address_func = &symbol_at_address;
|
disasm_obj.symbol_at_address_func = &symbol_at_address;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user