Changeset 106757 in vbox for trunk/src/VBox/Disassembler
- Timestamp:
- Oct 28, 2024 2:59:05 PM (3 months ago)
- Location:
- trunk/src/VBox/Disassembler
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Disassembler/DisasmTables-armv8-a64-ld-st.cpp.h
r106756 r106757 292 292 293 293 294 /* SIMD STR/LDR */ 295 DIS_ARMV8_DECODE_INSN_CLASS_DEFINE_DECODER(LdStRegImmPreIndexSimd) 296 DIS_ARMV8_INSN_DECODE(kDisParmParseSimdRegSize, 30, 2, DIS_ARMV8_INSN_PARAM_UNSET), 297 DIS_ARMV8_INSN_DECODE(kDisParmParseSimdRegScalar, 0, 5, 0 /*idxParam*/), 298 DIS_ARMV8_INSN_DECODE(kDisParmParseAddrGprSp, 5, 5, 1 /*idxParam*/), 299 DIS_ARMV8_INSN_DECODE(kDisParmParseSImmMemOffUnscaled, 12, 9, 1 /*idxParam*/), 300 DIS_ARMV8_INSN_DECODE(kDisParmParseSetPreIndexed, 0, 0, 1 /*idxParam*/), 301 DIS_ARMV8_DECODE_INSN_CLASS_DEFINE_DECODER_ALTERNATIVE(LdStRegImmPreIndexSimd128) 302 DIS_ARMV8_INSN_DECODE(kDisParmParseSimdRegSize128, 0, 0, DIS_ARMV8_INSN_PARAM_UNSET), 303 DIS_ARMV8_INSN_DECODE(kDisParmParseSimdRegScalar, 0, 5, 0 /*idxParam*/), 304 DIS_ARMV8_INSN_DECODE(kDisParmParseAddrGprSp, 5, 5, 1 /*idxParam*/), 305 DIS_ARMV8_INSN_DECODE(kDisParmParseSImmMemOffUnscaled, 12, 9, 1 /*idxParam*/), 306 DIS_ARMV8_INSN_DECODE(kDisParmParseSetPreIndexed, 0, 0, 1 /*idxParam*/), 307 DIS_ARMV8_DECODE_INSN_CLASS_DEFINE_BEGIN(LdStRegImmPreIndexSimd) 308 DIS_ARMV8_OP( 0x3c000c00, "str", OP_ARMV8_A64_STR, DISOPTYPE_HARMLESS), 309 DIS_ARMV8_OP( 0x3c400c00, "ldr", OP_ARMV8_A64_LDR, DISOPTYPE_HARMLESS), 310 DIS_ARMV8_OP_ALT_DECODE(0x3c800c00, "str", OP_ARMV8_A64_STR, DISOPTYPE_HARMLESS, LdStRegImmPreIndexSimd128), /** @todo size == 0. */ 311 DIS_ARMV8_OP_ALT_DECODE(0x3cc00c00, "ldr", OP_ARMV8_A64_LDR, DISOPTYPE_HARMLESS, LdStRegImmPreIndexSimd128), /** @todo size == 0. */ 312 DIS_ARMV8_DECODE_INSN_CLASS_DEFINE_END(LdStRegImmPreIndexSimd, 0x3fe00c00 /*fFixedInsn*/, 313 kDisArmV8OpcDecodeNop, 314 RT_BIT_32(22) | RT_BIT_32(23), 22); 315 316 294 317 /* 295 318 * C4.1.94.28 - Loads and Stores - Load/Store register (immediate pre-indexed) variants … … 304 327 DIS_ARMV8_DECODE_MAP_DEFINE_BEGIN(LdStRegImmPreIndex) 305 328 DIS_ARMV8_DECODE_MAP_ENTRY(LdStRegImmPreIndexGpr), 306 DIS_ARMV8_DECODE_MAP_ INVALID_ENTRY, /** @todo */329 DIS_ARMV8_DECODE_MAP_ENTRY(LdStRegImmPreIndexSimd), 307 330 DIS_ARMV8_DECODE_MAP_DEFINE_END(LdStRegImmPreIndex, RT_BIT_32(26), 26); 308 331 -
trunk/src/VBox/Disassembler/testcase/tstDisasmArmv8-1-asm.S
r106756 r106757 1603 1603 1604 1604 1605 ldr b0, [x28, #0]! 1606 ldr b0, [x28, #-256]! 1607 ldr b0, [x28, #255]! 1608 1609 ldr b31, [sp, #0]! 1610 ldr b31, [sp, #-256]! 1611 ldr b31, [sp, #255]! 1612 1613 ldr h0, [x28, #0]! 1614 ldr h0, [x28, #-256]! 1615 ldr h0, [x28, #255]! 1616 1617 ldr h31, [sp, #0]! 1618 ldr h31, [sp, #-256]! 1619 ldr h31, [sp, #255]! 1620 1621 ldr s0, [x28, #0]! 1622 ldr s0, [x28, #-256]! 1623 ldr s0, [x28, #255]! 1624 1625 ldr s31, [sp, #0]! 1626 ldr s31, [sp, #-256]! 1627 ldr s31, [sp, #255]! 1628 1629 ldr d0, [x28, #0]! 1630 ldr d0, [x28, #-256]! 1631 ldr d0, [x28, #255]! 1632 1633 ldr d31, [sp, #0]! 1634 ldr d31, [sp, #-256]! 1635 ldr d31, [sp, #255]! 1636 1637 ldr q0, [x28, #0]! 1638 ldr q0, [x28, #-256]! 1639 ldr q0, [x28, #255]! 1640 1641 ldr q31, [sp, #0]! 1642 ldr q31, [sp, #-256]! 1643 ldr q31, [sp, #255]! 1644 1645 1605 1646 ; SIMD memory stores 1606 1647 str b0, [x0] … … 1833 1874 str q31, [sp], #-256 1834 1875 str q31, [sp], #255 1876 1877 1878 str b0, [x28, #0]! 1879 str b0, [x28, #-256]! 1880 str b0, [x28, #255]! 1881 1882 str b31, [sp, #0]! 1883 str b31, [sp, #-256]! 1884 str b31, [sp, #255]! 1885 1886 str h0, [x28, #0]! 1887 str h0, [x28, #-256]! 1888 str h0, [x28, #255]! 1889 1890 str h31, [sp, #0]! 1891 str h31, [sp, #-256]! 1892 str h31, [sp, #255]! 1893 1894 str s0, [x28, #0]! 1895 str s0, [x28, #-256]! 1896 str s0, [x28, #255]! 1897 1898 str s31, [sp, #0]! 1899 str s31, [sp, #-256]! 1900 str s31, [sp, #255]! 1901 1902 str d0, [x28, #0]! 1903 str d0, [x28, #-256]! 1904 str d0, [x28, #255]! 1905 1906 str d31, [sp, #0]! 1907 str d31, [sp, #-256]! 1908 str d31, [sp, #255]! 1909 1910 str q0, [x28, #0]! 1911 str q0, [x28, #-256]! 1912 str q0, [x28, #255]! 1913 1914 str q31, [sp, #0]! 1915 str q31, [sp, #-256]! 1916 str q31, [sp, #255]! 1835 1917 1836 1918
Note:
See TracChangeset
for help on using the changeset viewer.