From e093c21ed880ac3eb72119be15093ee04f8ce299 Mon Sep 17 00:00:00 2001 From: Rusty Wagner Date: Tue, 5 Mar 2024 19:50:13 -0500 Subject: Move architecture modules into the API repo --- arch/arm64/disassembler/gofer.c | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 arch/arm64/disassembler/gofer.c (limited to 'arch/arm64/disassembler/gofer.c') diff --git a/arch/arm64/disassembler/gofer.c b/arch/arm64/disassembler/gofer.c new file mode 100644 index 00000000..7f0df371 --- /dev/null +++ b/arch/arm64/disassembler/gofer.c @@ -0,0 +1,28 @@ +#include +#include +#include +#include +#include + +#include "decode.h" +#include "format.h" + +void disassemble(uint64_t addr, uint8_t *data, int len, char *result, bool verbose) +{ + Instruction instr; + memset(&instr, 0, sizeof(instr)); + + aarch64_decompose(*(uint32_t *)data, &instr, addr); + + aarch64_disassemble(&instr, result, 1024); +} + +uint32_t get_encoding(uint8_t *data) +{ + Instruction instr; + //printf("sizeof(instr): %lu\n", sizeof(instr)); + //printf("sizeof(instr.encoding): %lu\n", sizeof(instr.encoding)); + memset(&instr, 0, sizeof(instr)); + aarch64_decompose(*(uint32_t *)data, &instr, 0); + return instr.encoding; +} -- cgit v1.3.1