From 364c82b15129b5f168e450356ee0abd0e62ffa15 Mon Sep 17 00:00:00 2001 From: Jacob Bramley Date: Fri, 24 Aug 2018 17:51:52 +0100 Subject: Make disassembly of FC* more precise. FCADD and FCMLA both span multiple opcodes, so it is not easy to represent them with the Fixed/FMask/Mask structure that we usually use. In particular, the Disassembler and Simulator would handle some unallocated encodings as FCADD instructions. This patch makes disassembly precise. Change-Id: Ia0bda19489b2a1744b52a717ee7d6dc1b309184d --- test/aarch64/test-disasm-aarch64.cc | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'test/aarch64') diff --git a/test/aarch64/test-disasm-aarch64.cc b/test/aarch64/test-disasm-aarch64.cc index 64be553d..426319ff 100644 --- a/test/aarch64/test-disasm-aarch64.cc +++ b/test/aarch64/test-disasm-aarch64.cc @@ -4735,6 +4735,12 @@ TEST(neon_3same_extra_fcadd) { COMPARE_MACRO(Fcmla(v21.V2D(), v22.V2D(), v23.V2D(), 0), "fcmla v21.2d, v22.2d, v23.2d, #0"); + // The FC* instructions span multiple opcodes, so they have special cases in + // the disassembler. Verify that similar encodings don't get disassembled as + // FC* instructions. + COMPARE(dci(0x2e00ec00), "unallocated (Unallocated)"); // opcode = 0x1101 + COMPARE(dci(0x2e00fc00), "unallocated (Unallocated)"); // opcode = 0x1111 + CLEANUP(); } -- cgit v1.2.3