Adding tests for branch/carry and logging disasm on test failure.
This commit is contained in:
41
src/xenia/cpu/frontend/test/sequence_branch_carry.s
Normal file
41
src/xenia/cpu/frontend/test/sequence_branch_carry.s
Normal file
@@ -0,0 +1,41 @@
|
||||
test_equiv_1:
|
||||
#_ REGISTER_IN r11 0x9E2A83C1
|
||||
lis r9, -0x61D6 # 0x9E2A83C1
|
||||
ori r30, r9, 0x83C1 # 0x9E2A83C1
|
||||
subf r8, r11, r30
|
||||
addic r7, r8, -1
|
||||
subfe. r31, r7, r8
|
||||
beq .test_equiv_1_good
|
||||
li r12, 0
|
||||
blr
|
||||
.test_equiv_1_good:
|
||||
li r12, 1
|
||||
blr
|
||||
#_ REGISTER_OUT r7 0xfffffffeffffffff
|
||||
#_ REGISTER_OUT r8 0xffffffff00000000
|
||||
#_ REGISTER_OUT r9 0xffffffff9e2a0000
|
||||
#_ REGISTER_OUT r30 0xffffffff9e2a83c1
|
||||
#_ REGISTER_OUT r31 0
|
||||
#_ REGISTER_OUT r11 0x000000009e2a83c1
|
||||
#_ REGISTER_OUT r12 1
|
||||
|
||||
test_equiv_2:
|
||||
#_ REGISTER_IN r11 0xffffffff9e2a83c1
|
||||
lis r9, -0x61D6 # 0x9E2A83C1
|
||||
ori r30, r9, 0x83C1 # 0x9E2A83C1
|
||||
subf r8, r11, r30
|
||||
addic r7, r8, -1
|
||||
subfe. r31, r7, r8
|
||||
beq .test_equiv_2_good
|
||||
li r12, 0
|
||||
blr
|
||||
.test_equiv_2_good:
|
||||
li r12, 1
|
||||
blr
|
||||
#_ REGISTER_OUT r7 0xffffffffffffffff
|
||||
#_ REGISTER_OUT r8 0xffffffff00000000
|
||||
#_ REGISTER_OUT r9 0xffffffff9e2a0000
|
||||
#_ REGISTER_OUT r30 0xffffffff9e2a83c1
|
||||
#_ REGISTER_OUT r31 0
|
||||
#_ REGISTER_OUT r11 0xffffffff9e2a83c1
|
||||
#_ REGISTER_OUT r12 1
|
||||
@@ -177,6 +177,7 @@ class TestRunner {
|
||||
|
||||
processor.reset(new Processor(memory.get(), nullptr, nullptr));
|
||||
processor->Setup();
|
||||
processor->set_debug_info_flags(DebugInfoFlags::kDebugInfoAll);
|
||||
}
|
||||
|
||||
~TestRunner() {
|
||||
@@ -228,6 +229,10 @@ class TestRunner {
|
||||
|
||||
// Assert test state expectations.
|
||||
bool result = CheckTestResults(test_case);
|
||||
if (!result) {
|
||||
// Also dump all disasm/etc.
|
||||
fn->debug_info()->Dump();
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -208,6 +208,7 @@
|
||||
<None Include="instr_vupkd3d128.s" />
|
||||
<None Include="instr_vupkhsh.s" />
|
||||
<None Include="instr_vupklsh.s" />
|
||||
<None Include="sequence_branch_carry.s" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="..\..\..\base\main.h" />
|
||||
|
||||
@@ -94,6 +94,7 @@
|
||||
<None Include="instr_vupkd3d128.s" />
|
||||
<None Include="instr_vupkhsh.s" />
|
||||
<None Include="instr_fnabs.s" />
|
||||
<None Include="sequence_branch_carry.s" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Filter Include="src">
|
||||
|
||||
Reference in New Issue
Block a user