aboutsummaryrefslogtreecommitdiff
path: root/test/aarch64
diff options
context:
space:
mode:
authorTatWai Chong <tatwai.chong@arm.com>2018-12-25 17:49:56 -0800
committerTatWai Chong <tatwai.chong@arm.com>2019-01-24 10:26:42 -0800
commit684f5f7f4cd3a9279fb0502d0a73fbb45da3517b (patch)
tree00837b4ffeac244ee227ec316fae0d2a9a36f3e5 /test/aarch64
parent91fea40cc9ac4ca26f5fd26e2393aafe383f66cd (diff)
downloadvixl-684f5f7f4cd3a9279fb0502d0a73fbb45da3517b.tar.gz
Add support for DC CVADP instruction.
DC CVADP is one of the data cache maintenance instruction(DC). It clean data cache by virtual address to Point of Deep Persistence. Change-Id: I5e9d62b8591ca3dc5053dfbebcd1ba24b9d5408f
Diffstat (limited to 'test/aarch64')
-rw-r--r--test/aarch64/test-assembler-aarch64.cc17
-rw-r--r--test/aarch64/test-disasm-aarch64.cc3
2 files changed, 20 insertions, 0 deletions
diff --git a/test/aarch64/test-assembler-aarch64.cc b/test/aarch64/test-assembler-aarch64.cc
index 0a57ade6..5def1293 100644
--- a/test/aarch64/test-assembler-aarch64.cc
+++ b/test/aarch64/test-assembler-aarch64.cc
@@ -22885,6 +22885,23 @@ TEST(system_dcpop) {
TEARDOWN();
}
+TEST(system_dccvadp) {
+ SETUP_WITH_FEATURES(CPUFeatures::kDCCVADP);
+ const char* msg = "DCCVADP test!";
+ uintptr_t msg_addr = reinterpret_cast<uintptr_t>(msg);
+
+ START();
+ __ Mov(x20, msg_addr);
+ __ Dc(CVADP, x20);
+ END();
+
+#ifdef VIXL_INCLUDE_SIMULATOR_AARCH64
+ RUN();
+ ASSERT_EQUAL_64(msg_addr, x20);
+#endif
+
+ TEARDOWN();
+}
TEST(neon_2regmisc_xtn) {
SETUP_WITH_FEATURES(CPUFeatures::kNEON);
diff --git a/test/aarch64/test-disasm-aarch64.cc b/test/aarch64/test-disasm-aarch64.cc
index 65909bf3..cdddf860 100644
--- a/test/aarch64/test-disasm-aarch64.cc
+++ b/test/aarch64/test-disasm-aarch64.cc
@@ -3274,6 +3274,8 @@ TEST(system_sys) {
COMPARE(sys(0x3, 0x7, 0xa, 0x1, x2), "dc cvac, x2");
COMPARE(sys(0x3, 0x7, 0xb, 0x1, x3), "dc cvau, x3");
COMPARE(sys(0x3, 0x7, 0xe, 0x1, x4), "dc civac, x4");
+ COMPARE(sys(0x3, 0x7, 0xc, 0x1, x5), "dc cvap, x5");
+ COMPARE(sys(0x3, 0x7, 0xd, 0x1, x6), "dc cvadp, x6");
COMPARE(sys(0x3, 0x7, 0x4, 0x1, x0), "dc zva, x0");
COMPARE(sys(0x0, 0x0, 0x0, 0x0, x0), "sys #0, C0, C0, #0, x0");
COMPARE(sys(0x1, 0x2, 0x5, 0x2, x5), "sys #1, C2, C5, #2, x5");
@@ -3303,6 +3305,7 @@ TEST(system_dc) {
COMPARE(dc(CVAU, x3), "dc cvau, x3");
COMPARE(dc(CVAP, x4), "dc cvap, x4");
COMPARE(dc(CIVAC, x5), "dc civac, x5");
+ COMPARE(dc(CVADP, x6), "dc cvadp, x6");
COMPARE(dc(ZVA, x0), "dc zva, x0");
COMPARE(dc(ZVA, xzr), "dc zva, xzr");