Beispiel #1
0
void test_reg_reg_uses_source_defines_target(void)
{
	assert_uses_r0_defines_r1(reg_reg_insn(INSN_MOV_REG_REG, &r0, &r1));
	assert_uses_r0_defines_r1(reg_reg_insn(INSN_SAR_REG_REG, &r0, &r1));
	assert_uses_r0_defines_r1(reg_reg_insn(INSN_SHL_REG_REG, &r0, &r1));
	assert_uses_r0_defines_r1(reg_reg_insn(INSN_SHR_REG_REG, &r0, &r1));
}
Beispiel #2
0
void test_emit_cmp_reg_reg(void)
{
	assert_emit_insn_2(0x39, 0xc3, reg_reg_insn(INSN_CMP_REG_REG, &VAR_EAX, &VAR_EBX));
	assert_emit_insn_2(0x39, 0xd8, reg_reg_insn(INSN_CMP_REG_REG, &VAR_EBX, &VAR_EAX));
	assert_emit_insn_2(0x39, 0xca, reg_reg_insn(INSN_CMP_REG_REG, &VAR_ECX, &VAR_EDX));
}
Beispiel #3
0
void test_emit_or_reg_reg(void)
{
	assert_emit_insn_2(0x0b, 0xc1, reg_reg_insn(INSN_OR_REG_REG, &VAR_ECX, &VAR_EAX));
	assert_emit_insn_2(0x0b, 0xd9, reg_reg_insn(INSN_OR_REG_REG, &VAR_ECX, &VAR_EBX));
}
Beispiel #4
0
void test_emit_shr_reg_reg(void)
{
	assert_emit_insn_2(0xd3, 0xe8, reg_reg_insn(INSN_SHR_REG_REG, &VAR_ECX, &VAR_EAX));
	assert_emit_insn_2(0xd3, 0xeb, reg_reg_insn(INSN_SHR_REG_REG, &VAR_ECX, &VAR_EBX));
}
Beispiel #5
0
void test_emit_sar_reg_reg(void)
{
	assert_emit_insn_2(0xd3, 0xf8, reg_reg_insn(INSN_SAR_REG_REG, &VAR_ECX, &VAR_EAX));
	assert_emit_insn_2(0xd3, 0xfb, reg_reg_insn(INSN_SAR_REG_REG, &VAR_ECX, &VAR_EBX));
}
Beispiel #6
0
void test_emit_shl_reg_reg(void)
{
	assert_emit_insn_2(0xd3, 0xe0, reg_reg_insn(INSN_SHL_REG_REG, &VAR_ECX, &VAR_EAX));
	assert_emit_insn_2(0xd3, 0xe3, reg_reg_insn(INSN_SHL_REG_REG, &VAR_ECX, &VAR_EBX));
}
Beispiel #7
0
void test_emit_cltd(void)
{
	assert_emit_insn_1(0x99, reg_reg_insn(INSN_CLTD_REG_REG, &VAR_EAX, &VAR_EDX));
}
Beispiel #8
0
void test_emit_add_reg_reg(void)
{
	assert_emit_insn_2(0x03, 0xc3, reg_reg_insn(INSN_ADD_REG_REG, &VAR_EBX, &VAR_EAX));
}
Beispiel #9
0
void test_emit_movsx_8_reg_reg(void)
{
	assert_emit_insn_3(0x0f, 0xbe, 0xc2, reg_reg_insn(INSN_MOVSX_8_REG_REG, &VAR_EDX, &VAR_EAX));
	assert_emit_insn_3(0x0f, 0xbe, 0xcb, reg_reg_insn(INSN_MOVSX_8_REG_REG, &VAR_EBX, &VAR_ECX));
}
Beispiel #10
0
void test_emit_mov_reg_reg(void)
{
	assert_emit_insn_2(0x89, 0xd0, reg_reg_insn(INSN_MOV_REG_REG, &VAR_EDX, &VAR_EAX));
	assert_emit_insn_2(0x89, 0xd9, reg_reg_insn(INSN_MOV_REG_REG, &VAR_EBX, &VAR_ECX));
}
Beispiel #11
0
void test_mul_defines_eax_edx(void)
{
	assert_def_fixed_mask(1, 0, 1, reg_reg_insn(INSN_MUL_REG_EAX, &r2, &r2));
}
Beispiel #12
0
void test_cltd_defines_edx_and_eax_and_uses_eax(void)
{
	assert_uses_r0_defines_r0_and_r1(reg_reg_insn(INSN_CLTD_REG_REG, &r0, &r1));
}