- 25 Feb, 2018 1 commit
-
-
Jeffrey Lee authored
Detail: actions/ARMv8FP_AArch32, Makefile - Add disasembly for the ARMv8 VFP/NEON instructions actions/ARMv7_ASIMD, actions/ARMv7_VFP - Fix incorrect disassembly of VCLS, VMOVN, VRSUBHN, VFNMA, VFNMS c/util - Add disassembly for MVFR2 register s/ARM - Tweak coprocessor instruction decoding logic; ARMv8 uses some of the CDP2 instructions for VFP/NEON cache/vfp - Updated decgen cache file Test/c/testbed - Improve fopen/system error checking. Add some more rules to deal with (expected) differences between Debugger/dis2 and decaof. Admin: Tested on Raspberry Pi 3 Disassembly for new instructions (+ some nearby values) checked against BASIC 1.74 + decaof 5.18 Requires Library-1_92 Version 2.02. Tagged as 'Debugger-2_02'
-
- 11 Nov, 2016 1 commit
-
-
Robert Sprowson authored
Opcodes for CRC32/HLT/SEVL/LDA/STL/LDAEX/STLEX and DMB/DSB options. Makefile: Add ARMv8_AArch32 actions and encodings to dis2. actions/ARMv7,dis2.h: Extend the DMS/DSB decoding to warn about ARMv8 specific ones (previously undefined) ARM.s/ARMv6.s: Slot in decode. CGlue.s/Debugger.s/Messages New token for "ARMv8 or later" warnings. Tested by brute force all 256M instructions in NV space and 256M conditionals, comparing the output against dis2. Currently missing the new VFP and SIMD opcodes. Version 1.98. Tagged as 'Debugger-1_98'
-
- 11 Jun, 2016 1 commit
-
-
Robert Sprowson authored
Line 332: Fix typo in R13_hyp table entry (was R12) Line 158: A missing comma meant the arch warning table was one entry too short, so any XScale media instructions would cause a NULL pointer access actions/ARMv7 Add missing pre-UAL forms of LDRHT LDRSBT LDRSHT STRHT, assuming they take the form [LD|ST]RccSUFFIX Fix decoding of banked MRS/MSR SYSm field, this is defined as m:m1, so m needs shifting up more Fix opcode for banked MSR, copy paste fumble Tested using 'testbed', not tagged.
-
- 28 Nov, 2013 1 commit
-
-
Jeffrey Lee authored
Detail: This change adds up-to-date VFP & NEON disassembly to the module, by way of a partially machine-generated disassembler written in C. It's also possible to build a standalone disassembler utility (dubbed 'dis2') which is 100% C and has support for all ARM instructions (including some obscure stuff the assembler disassembler currently lacks, e.g. XScale DSP instructions). One day this may completely replace the assembler disassembler, but at the moment it's a bit bulky and probably has a few bugs left to squash. The disassembler is also fairly flexible, supporting various output formatting options. Main changes: - Makefile - Rewritten to switch over to using the CModule makefile fragment instead of AAsmModule, to allow the C code to be included in the component. Also added 'dis2' as an alternative component to build as. - Resources/UK/Messages, Resources/Germany/Messages - Updated with new disassembler messages - s/Debugger - Add new UseCVFPNEON switch to allow control over whether the module builds with the C VFP/NEON disassembler or the original assembler VFP disassembler - s/CGlue - Glue code used with the C disassembler to bridge the gap between the assembler world and the C world - actions/* - A set of decgen action files describing what to do for each instruction the new disassembler supports. These are basically just blocks of C code - although they need to match up with the encoding names in Library/Misc/decgen/encodings - cache/* - Folder for decgen to cache decision trees in. Building the decision tree for the disassembler is currently a lengthy process, but caching the trees reduces the build time to a fraction of the full time. - c/head - Stub C file that decgen prepends to the code it generates - c/main - main frontend for the standalone version of the disassembler - c/support - Reimplementation of the standard C library functions required for the disassembler. This allows us to avoid a runtime dependency on the shared C library, and also allows us to deal with control-terminated strings from messagetrans where relevant. For convenience this file also has the main entry point that's called from assembler. - c/util - Utility code for outputting various forms of instruction, decoding immediate constants, etc. - h/dis2 - Header file for the C code - Test/c/testbed - Simple C testbed app to allow the output of dis2 to be compared against the Debugger module and decaof - !MkDis2,fd7 - Script to allow easy building of the standalone 'dis2' disassembler Bugfixes: - s/ARMv6 - Change 'ROR#' to 'ROR #' for UXTAB, etc. disassembly. Fix bitfield extract & clear instructions to detect unpredictable/invalid bitfield definitions Misc other changes: - s/* - Source files updated so s/Debugger contains a list of GETs instead of each source file LNK'ing to the next Admin: Tested in ROM form on BB-xM, and as softload on Iyonix German messages are in need of translation Requires Library-1_65 and BuildSys-6_34 Version 1.85. Tagged as 'Debugger-1_85'
-