Skip to content

Commit ff43d80

Browse files
authored
Add ppc base register tests (#12)
1 parent 45d71d8 commit ff43d80

File tree

3 files changed

+68
-10
lines changed

3 files changed

+68
-10
lines changed

MachRegister/base_registers/CMakeLists.txt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,12 @@ target_include_directories(basereg_ppc64 PRIVATE ${UNIT_TESTS_INCLUDES})
2424
target_link_libraries(basereg_ppc64 PRIVATE Dyninst::common)
2525
add_test(NAME machregister_basereg_ppc64 COMMAND basereg_ppc64)
2626

27+
add_executable(basereg_ppc32 ppc32.cpp)
28+
target_compile_options(basereg_ppc32 PRIVATE ${UNIT_TESTS_WARNING_FLAGS})
29+
target_include_directories(basereg_ppc32 PRIVATE ${UNIT_TESTS_INCLUDES})
30+
target_link_libraries(basereg_ppc32 PRIVATE Dyninst::common)
31+
add_test(NAME machregister_basereg_ppc32 COMMAND basereg_ppc32)
32+
2733

2834
# These are disabled until we can decide on how to represent base registers for AMDGPU
2935
add_executable(basereg_amdgpu_gfx908 amdgpu_gfx908.cpp)
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
#include "basereg_check.h"
2+
#include "registers/ppc32_regs.h"
3+
4+
int main() {
5+
BASEREG_CHECK(ppc32::fsr0, ppc32::fpr0);
6+
BASEREG_CHECK(ppc32::fsr31, ppc32::fpr31);
7+
8+
BASEREG_CHECK(ppc32::fpr0, ppc32::fpr0);
9+
BASEREG_CHECK(ppc32::fpr31, ppc32::fpr31);
10+
11+
BASEREG_CHECK(ppc32::cr, ppc32::cr);
12+
BASEREG_CHECK(ppc32::cr0, ppc32::cr);
13+
BASEREG_CHECK(ppc32::cr0l, ppc32::cr);
14+
BASEREG_CHECK(ppc32::cr0g, ppc32::cr);
15+
BASEREG_CHECK(ppc32::cr0e, ppc32::cr);
16+
BASEREG_CHECK(ppc32::cr0s, ppc32::cr);
17+
BASEREG_CHECK(ppc32::cr7, ppc32::cr);
18+
BASEREG_CHECK(ppc32::cr7l, ppc32::cr);
19+
BASEREG_CHECK(ppc32::cr7g, ppc32::cr);
20+
BASEREG_CHECK(ppc32::cr7e, ppc32::cr);
21+
BASEREG_CHECK(ppc32::cr7s, ppc32::cr);
22+
23+
24+
BASEREG_CHECK(ppc32::fpscw, ppc32::fpscw);
25+
BASEREG_CHECK(ppc32::fpscw0, ppc32::fpscw);
26+
BASEREG_CHECK(ppc32::fpscw1, ppc32::fpscw);
27+
BASEREG_CHECK(ppc32::fpscw2, ppc32::fpscw);
28+
BASEREG_CHECK(ppc32::fpscw3, ppc32::fpscw);
29+
BASEREG_CHECK(ppc32::fpscw4, ppc32::fpscw);
30+
BASEREG_CHECK(ppc32::fpscw5, ppc32::fpscw);
31+
BASEREG_CHECK(ppc32::fpscw6, ppc32::fpscw);
32+
BASEREG_CHECK(ppc32::fpscw7, ppc32::fpscw);
33+
34+
return EXIT_SUCCESS;
35+
}

MachRegister/base_registers/ppc64.cpp

Lines changed: 27 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,37 @@
22
#include "registers/ppc64_regs.h"
33

44
int main() {
5-
// Dyninst doesn't currently have any aliased registers for ppc64, so
6-
// just make sure the round-trip is valid.
5+
BASEREG_CHECK(ppc64::fsr0, ppc64::vsr32);
6+
BASEREG_CHECK(ppc64::fsr31, ppc64::vsr63);
77

8-
BASEREG_CHECK(ppc64::r0, ppc64::r0);
9-
BASEREG_CHECK(ppc64::r31, ppc64::r31);
10-
11-
BASEREG_CHECK(ppc64::fpr0, ppc64::fpr0);
12-
BASEREG_CHECK(ppc64::fpr31, ppc64::fpr31);
13-
14-
BASEREG_CHECK(ppc64::fsr0, ppc64::fsr0);
15-
BASEREG_CHECK(ppc64::fsr31, ppc64::fsr31);
8+
BASEREG_CHECK(ppc64::fpr0, ppc64::vsr32);
9+
BASEREG_CHECK(ppc64::fpr31, ppc64::vsr63);
1610

1711
BASEREG_CHECK(ppc64::vsr0, ppc64::vsr0);
12+
BASEREG_CHECK(ppc64::vsr31, ppc64::vsr31);
1813
BASEREG_CHECK(ppc64::vsr63, ppc64::vsr63);
1914

15+
BASEREG_CHECK(ppc64::cr, ppc64::cr);
16+
BASEREG_CHECK(ppc64::cr0, ppc64::cr);
17+
BASEREG_CHECK(ppc64::cr0l, ppc64::cr);
18+
BASEREG_CHECK(ppc64::cr0g, ppc64::cr);
19+
BASEREG_CHECK(ppc64::cr0e, ppc64::cr);
20+
BASEREG_CHECK(ppc64::cr0s, ppc64::cr);
21+
BASEREG_CHECK(ppc64::cr7, ppc64::cr);
22+
BASEREG_CHECK(ppc64::cr7l, ppc64::cr);
23+
BASEREG_CHECK(ppc64::cr7g, ppc64::cr);
24+
BASEREG_CHECK(ppc64::cr7e, ppc64::cr);
25+
BASEREG_CHECK(ppc64::cr7s, ppc64::cr);
26+
27+
BASEREG_CHECK(ppc64::fpscw, ppc64::fpscw);
28+
BASEREG_CHECK(ppc64::fpscw0, ppc64::fpscw);
29+
BASEREG_CHECK(ppc64::fpscw1, ppc64::fpscw);
30+
BASEREG_CHECK(ppc64::fpscw2, ppc64::fpscw);
31+
BASEREG_CHECK(ppc64::fpscw3, ppc64::fpscw);
32+
BASEREG_CHECK(ppc64::fpscw4, ppc64::fpscw);
33+
BASEREG_CHECK(ppc64::fpscw5, ppc64::fpscw);
34+
BASEREG_CHECK(ppc64::fpscw6, ppc64::fpscw);
35+
BASEREG_CHECK(ppc64::fpscw7, ppc64::fpscw);
36+
2037
return EXIT_SUCCESS;
2138
}

0 commit comments

Comments
 (0)