Beispiel #1
0
void test_emit_push_reg(void)
{
	assert_emit_insn_1(0x50, reg_insn(INSN_PUSH_REG, &VAR_EAX));
	assert_emit_insn_1(0x53, reg_insn(INSN_PUSH_REG, &VAR_EBX));
	assert_emit_insn_1(0x51, reg_insn(INSN_PUSH_REG, &VAR_ECX));
	assert_emit_insn_1(0x52, reg_insn(INSN_PUSH_REG, &VAR_EDX));
	assert_emit_insn_1(0x55, reg_insn(INSN_PUSH_REG, &VAR_EBP));
	assert_emit_insn_1(0x54, reg_insn(INSN_PUSH_REG, &VAR_ESP));
}
Beispiel #2
0
void test_emit_neg_reg(void)
{
	assert_emit_insn_2(0xf7, 0xd8, reg_insn(INSN_NEG_REG, &VAR_EAX));
	assert_emit_insn_2(0xf7, 0xdb, reg_insn(INSN_NEG_REG, &VAR_EBX));
}
Beispiel #3
0
void test_emit_indirect_call(void)
{
	assert_emit_insn_2(0xff, 0x10, reg_insn(INSN_CALL_REG, &VAR_EAX));
	assert_emit_insn_2(0xff, 0x13, reg_insn(INSN_CALL_REG, &VAR_EBX));
	assert_emit_insn_2(0xff, 0x11, reg_insn(INSN_CALL_REG, &VAR_ECX));
}
Beispiel #4
0
void test_push_reg_uses_operand(void)
{
	assert_uses_r0(reg_insn(INSN_PUSH_REG, &r0));
}
Beispiel #5
0
void test_neg_reg_uses_and_defines_operand(void)
{
	assert_uses_r0_defines_r0(reg_insn(INSN_NEG_REG, &r0));
}
Beispiel #6
0
void test_call_defines_caller_saved(void)
{
	assert_defines_caller_saved(reg_insn(INSN_CALL_REG, &r0));
	assert_defines_caller_saved(rel_insn(INSN_CALL_REL, 0x12345678));
}
Beispiel #7
0
void test_call_reg_uses_operand(void)
{
	assert_uses_r0(reg_insn(INSN_CALL_REG, &r0));
}