xref: /aosp_15_r20/external/capstone/arch/EVM/EVMInstPrinter.c (revision 9a0e4156d50a75a99ec4f1653a0e9602a5d45c18)
1*9a0e4156SSadaf Ebrahimi /* Capstone Disassembly Engine */
2*9a0e4156SSadaf Ebrahimi /* By Nguyen Anh Quynh, 2018 */
3*9a0e4156SSadaf Ebrahimi 
4*9a0e4156SSadaf Ebrahimi #include "EVMInstPrinter.h"
5*9a0e4156SSadaf Ebrahimi #include "EVMMapping.h"
6*9a0e4156SSadaf Ebrahimi 
7*9a0e4156SSadaf Ebrahimi 
EVM_printInst(MCInst * MI,struct SStream * O,void * PrinterInfo)8*9a0e4156SSadaf Ebrahimi void EVM_printInst(MCInst *MI, struct SStream *O, void *PrinterInfo)
9*9a0e4156SSadaf Ebrahimi {
10*9a0e4156SSadaf Ebrahimi 	SStream_concat(O, EVM_insn_name((csh)MI->csh, MI->Opcode));
11*9a0e4156SSadaf Ebrahimi 
12*9a0e4156SSadaf Ebrahimi 	if (MI->Opcode >= EVM_INS_PUSH1 && MI->Opcode <= EVM_INS_PUSH32) {
13*9a0e4156SSadaf Ebrahimi 		unsigned int i;
14*9a0e4156SSadaf Ebrahimi 
15*9a0e4156SSadaf Ebrahimi 		SStream_concat0(O, "\t");
16*9a0e4156SSadaf Ebrahimi 		for (i = 0; i < MI->Opcode - EVM_INS_PUSH1 + 1; i++) {
17*9a0e4156SSadaf Ebrahimi 			SStream_concat(O, "%02x", MI->evm_data[i]);
18*9a0e4156SSadaf Ebrahimi 		}
19*9a0e4156SSadaf Ebrahimi 	}
20*9a0e4156SSadaf Ebrahimi }
21