type typ1ExtndMnics … type typ2ExtndMnics … type typ3ExtndMnics … type typ4ExtndMnics … type typ5ExtndMnics … // "func Handleextndmnemonic" - This is the function where the extended mnemonic logic // is implemented. This function defines various structures to keep a list of base // instructions and their extended mnemonic strings. These structure will also have // M-field values and offset values defined, based on their type. // HandleExtndMnemonic takes "inst" structure as the input variable. // Inst structure will have all the details related to an instruction. Based on the // opcode base string, a switch-case statement is executed. In that, based on the // M-field value and the offset value of that particular M-field, extended mnemonic // string is either searched or constructed by adding couple of extra strings to the base // opcode string from one of the structure defined below. func HandleExtndMnemonic(inst *Inst) string { … } // This is the function that is called to print the disassembled instruction // in the GNU (AT&T) syntax form. func GNUSyntax(inst Inst, pc uint64) string { … } // removeArg removes the arg in inst.Args[index]. func removeArg(inst *Inst, index int8) { … }