Exemplo n.º 1
0
/* 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));
}
Exemplo n.º 2
0
/* 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));
}
Exemplo n.º 3
0
/* 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));
}
Exemplo n.º 4
0
/* 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));
}
Exemplo n.º 5
0
/* 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));
}
Exemplo n.º 6
0
/* 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));
}