1*61046927SAndroid Build Coastguard Worker /*
2*61046927SAndroid Build Coastguard Worker * Copyright © 2023 Igalia S.L.
3*61046927SAndroid Build Coastguard Worker * SPDX-License-Identifier: MIT
4*61046927SAndroid Build Coastguard Worker */
5*61046927SAndroid Build Coastguard Worker
6*61046927SAndroid Build Coastguard Worker #include <stdio.h>
7*61046927SAndroid Build Coastguard Worker
8*61046927SAndroid Build Coastguard Worker #include "util/os_file.h"
9*61046927SAndroid Build Coastguard Worker
10*61046927SAndroid Build Coastguard Worker #include "etnaviv-isa.h"
11*61046927SAndroid Build Coastguard Worker
12*61046927SAndroid Build Coastguard Worker static void
pre_instr_cb(void * d,unsigned n,void * instr)13*61046927SAndroid Build Coastguard Worker pre_instr_cb(void *d, unsigned n, void *instr)
14*61046927SAndroid Build Coastguard Worker {
15*61046927SAndroid Build Coastguard Worker uint32_t *dwords = (uint32_t *)instr;
16*61046927SAndroid Build Coastguard Worker printf("%03d [%08x %08x %08x %08x] ", n, dwords[0], dwords[1], dwords[2], dwords[3]);
17*61046927SAndroid Build Coastguard Worker }
18*61046927SAndroid Build Coastguard Worker
19*61046927SAndroid Build Coastguard Worker int
main(int argc,char * argv[])20*61046927SAndroid Build Coastguard Worker main(int argc, char *argv[])
21*61046927SAndroid Build Coastguard Worker {
22*61046927SAndroid Build Coastguard Worker size_t sz;
23*61046927SAndroid Build Coastguard Worker void *raw = os_read_file(argv[1], &sz);
24*61046927SAndroid Build Coastguard Worker
25*61046927SAndroid Build Coastguard Worker etnaviv_isa_disasm(raw, sz, stdout,
26*61046927SAndroid Build Coastguard Worker &(struct isa_decode_options){
27*61046927SAndroid Build Coastguard Worker .show_errors = true,
28*61046927SAndroid Build Coastguard Worker .branch_labels = true,
29*61046927SAndroid Build Coastguard Worker .pre_instr_cb = pre_instr_cb,
30*61046927SAndroid Build Coastguard Worker });
31*61046927SAndroid Build Coastguard Worker
32*61046927SAndroid Build Coastguard Worker return 0;
33*61046927SAndroid Build Coastguard Worker }
34