/* Basic integer 3-address register format: * mnemonic %rs1,%rs2,%rd */ static void int_12d(std::ostream &stream, char *mnemonic, uint32_t pc, uint32_t insn) { /* Possibly prefix shrd with 'd.' */ if (((insn & 0xfc000000) == 0xb0000000) && (insn & 0x200)) util::stream_format(stream, "d.%s\t%%r%d,%%r%d,%%r%d", mnemonic, get_isrc1 (insn), get_isrc2 (insn), get_idest (insn)); else util::stream_format(stream, "%s\t%%r%d,%%r%d,%%r%d", mnemonic, get_isrc1 (insn), get_isrc2 (insn), get_idest (insn)); }
/* Basic integer 3-address register format: * mnemonic %rs1,%rs2,%rd */ static void int_12d(char *buf, char *mnemonic, UINT32 pc, UINT32 insn) { /* Possibly prefix shrd with 'd.' */ if (((insn & 0xfc000000) == 0xb0000000) && (insn & 0x200)) sprintf(buf, "d.%s\t%%r%d,%%r%d,%%r%d", mnemonic, get_isrc1 (insn), get_isrc2 (insn), get_idest (insn)); else sprintf(buf, "%s\t%%r%d,%%r%d,%%r%d", mnemonic, get_isrc1 (insn), get_isrc2 (insn), get_idest (insn)); }
/* Basic integer 3-address imm16 format: * mnemonic #imm16,%rs2,%rd */ static void int_i2d(std::ostream &stream, char *mnemonic, uint32_t pc, uint32_t insn) { /* Sign extend the 16-bit immediate. Print as hex for the bitwise operations. */ int upper_6bits = (insn >> 26) & 0x3f; if (upper_6bits >= 0x30 && upper_6bits <= 0x3f) util::stream_format(stream, "%s\t0x%04x,%%r%d,%%r%d", mnemonic, (uint32_t)(get_imm16 (insn)), get_isrc2 (insn), get_idest (insn)); else util::stream_format(stream, "%s\t%d,%%r%d,%%r%d", mnemonic, sign_ext(get_imm16 (insn), 16), get_isrc2 (insn), get_idest (insn)); }
/* Basic integer 3-address imm16 format: * mnemonic #imm16,%rs2,%rd */ static void int_i2d(char *buf, char *mnemonic, UINT32 pc, UINT32 insn) { /* Sign extend the 16-bit immediate. Print as hex for the bitwise operations. */ int upper_6bits = (insn >> 26) & 0x3f; if (upper_6bits >= 0x30 && upper_6bits <= 0x3f) sprintf(buf, "%s\t0x%04x,%%r%d,%%r%d", mnemonic, (UINT32)(get_imm16 (insn)), get_isrc2 (insn), get_idest (insn)); else sprintf(buf, "%s\t%d,%%r%d,%%r%d", mnemonic, sign_ext(get_imm16 (insn), 16), get_isrc2 (insn), get_idest (insn)); }
/* Integer (mixed) 2-address csrc2,idest. */ static void int_cd(std::ostream &stream, char *mnemonic, uint32_t pc, uint32_t insn) { util::stream_format(stream, "%s\t%%%s,%%r%d", mnemonic, cr2str[get_creg (insn)], get_idest (insn)); }
/* Integer (mixed) 2-address csrc2,idest. */ static void int_cd(char *buf, char *mnemonic, UINT32 pc, UINT32 insn) { sprintf(buf, "%s\t%%%s,%%r%d", mnemonic, cr2str[get_creg (insn)], get_idest (insn)); }