xref: /aosp_15_r20/external/capstone/cstool/cstool_evm.c (revision 9a0e4156d50a75a99ec4f1653a0e9602a5d45c18)
1*9a0e4156SSadaf Ebrahimi #include <stdio.h>
2*9a0e4156SSadaf Ebrahimi #include <stdlib.h>
3*9a0e4156SSadaf Ebrahimi 
4*9a0e4156SSadaf Ebrahimi #include <capstone/capstone.h>
5*9a0e4156SSadaf Ebrahimi 
6*9a0e4156SSadaf Ebrahimi void print_string_hex(char *comment, unsigned char *str, size_t len);
7*9a0e4156SSadaf Ebrahimi 
print_insn_detail_evm(csh handle,cs_insn * ins)8*9a0e4156SSadaf Ebrahimi void print_insn_detail_evm(csh handle, cs_insn *ins)
9*9a0e4156SSadaf Ebrahimi {
10*9a0e4156SSadaf Ebrahimi 	cs_evm *evm;
11*9a0e4156SSadaf Ebrahimi 
12*9a0e4156SSadaf Ebrahimi 	// detail can be NULL on "data" instruction if SKIPDATA option is turned ON
13*9a0e4156SSadaf Ebrahimi 	if (ins->detail == NULL)
14*9a0e4156SSadaf Ebrahimi 		return;
15*9a0e4156SSadaf Ebrahimi 
16*9a0e4156SSadaf Ebrahimi 	evm = &(ins->detail->evm);
17*9a0e4156SSadaf Ebrahimi 
18*9a0e4156SSadaf Ebrahimi 	if (evm->pop)
19*9a0e4156SSadaf Ebrahimi 		printf("\tPop:     %u\n", evm->pop);
20*9a0e4156SSadaf Ebrahimi 
21*9a0e4156SSadaf Ebrahimi 	if (evm->push)
22*9a0e4156SSadaf Ebrahimi 		printf("\tPush:    %u\n", evm->push);
23*9a0e4156SSadaf Ebrahimi 
24*9a0e4156SSadaf Ebrahimi 	if (evm->fee)
25*9a0e4156SSadaf Ebrahimi 		printf("\tGas fee: %u\n", evm->fee);
26*9a0e4156SSadaf Ebrahimi }
27