ghidra/Ghidra/Processors
flk0 3c11e8f59f Correct errors in the MSP430 SLEIGH specification
This patch modifies the SLEIGH specification of MSP430 (but not the MSP430X extension) to produce pcode that more accurately reflects the actual behaviour of the instruction set. These changes were derived by testing the Ghidra emulation of MSP430 instructions against the behaviour of an MSP430FR5994 dev board.

The changes include:
    Unaligned (odd) word memory accesses and writes now properly round down rather than accessing unaligned memory. This affects instructions that depend on the stack pointer, which can be misaligned.

    The PC register can now never become misaligned (it's low bit is effectively zero).

    Accesses of the PC register now properly reflect the address of the next instruction.

    Instructions that use the status register (SR) as a general source register have been modified to prevent changes to the status codes (embedded in SR) to clobber the value of SR prior to its use in the operation. There is more work to be done to correct the behaviour of instructions where SR is used as the destination register.

    Instructions of the form MNEM @reg+ X(reg) where the source and dest use the same register now accurately reflect the source increment in the calculation of the dest value. [These instruction behaves as: fetch source, increment source, fetch dest]

    The implementation of the V flag for ADDC, SUBC, and related emulated instructions now reflects comparing the src and dest signs (without the carry) with the result sign (which includes the carry). [The original implementation adds the carry to either the source or dest prior to scarry]

    Added an implementation of the decimal add instructions that may be clunky, but accurately performs the operations.

    The RRC instruction now clears the V flag.

    A new table has been added for single operand instructions, as tbl_bzero was incorrectly applied (single operand instructions use the as (not ad) token for the dest).

    The carry flag was inverted for DEC and DECD.

    Corrections for corner case instructions: PUSH/POP SP, PUSH/CALL X(SP), BR @reg+.
2024-03-15 20:00:10 +00:00
..
6502 fix to TSX instruction 2023-05-31 13:14:48 +00:00
8048 GP-3009 Setting of context for correct disassembly in either bank. Set 2023-06-08 18:50:04 +00:00
8051 GP-0 corrected syntax error in mx51.pspec 2022-12-02 08:22:49 -05:00
8085 GP-0: Fixing the remainder of the "psuedo" spellings (#4601) 2022-09-20 01:02:00 -04:00
68000 GP-3838: Add qemu+gdb launcher. 2024-03-01 12:36:13 -05:00
AARCH64 Add issing ELF reloc 2024-03-05 22:19:27 -06:00
ARM Merge remote-tracking branch 'origin/patch' 2024-03-08 08:54:02 -05:00
Atmel Add issing ELF reloc 2024-03-05 22:19:27 -06:00
BPF GP-2257: Fixing Processor BPF ldef issue 2023-05-01 08:07:32 -04:00
CP1600 Updated certification headers 2021-03-17 18:22:50 -04:00
CR16 GP-0 Removed use of obsolete MODULE DEPENDENCY from Module.manifest 2023-10-27 18:22:40 -04:00
Dalvik GP-1633/GP-2308 Added ProgramArchitecture to datatype managers. 2023-04-20 14:01:39 -04:00
DATA GP-849: Gradle 7 support 2021-05-12 13:45:16 -04:00
eBPF GP-4398 minor formatting 2024-03-06 10:58:27 -05:00
HCS08 GP-3181: Fixed HC05 ldefs and calling conventions for HC05/HCS08 2023-12-22 18:36:28 +00:00
HCS12 GP-4104: Fixed address offset in HCS12 PPAGE calculation 2024-01-05 10:10:55 -05:00
JVM GP-2109 Golang analyzer improvements, gostrings. 2023-11-30 18:59:13 +00:00
Loongarch Add issing ELF reloc 2024-03-05 22:19:27 -06:00
M8C GP-653 added support for user-defined compiler spec extensions 2021-04-29 16:17:25 -04:00
MC6800 GP-3889: Fixed 6x09 clr instruction not clearing carry flag 2024-01-25 14:45:04 +00:00
MCS96 Corrected various language errors (PPC, SPARC, MCS96) 2021-05-04 23:24:56 -04:00
MIPS Merge remote-tracking branch 'origin/GP-4125_ghidra1_ArtificialBlockAttribute--SQUASHED' 2024-03-07 08:50:41 -05:00
PA-RISC Remove < and > encodings 2024-02-29 16:32:45 +00:00
PIC GP-4239 Transitioned to new AbstractElfRelocationHandler implementation which uses ElfRelocationType enums specific to each handler. 2024-02-12 10:52:25 -05:00
PowerPC Merge remote-tracking branch 'origin/patch' 2024-03-14 12:53:10 -04:00
RISCV GP-4398 minor formatting 2024-03-06 10:58:27 -05:00
Sparc GP-4398 minor formatting 2024-03-06 10:58:27 -05:00
SuperH GP-4049 removed incorrect dependence on PC having a value in superh and 2023-11-30 01:36:50 +00:00
SuperH4 Add issing ELF reloc 2024-03-05 22:19:27 -06:00
TI_MSP430 Correct errors in the MSP430 SLEIGH specification 2024-03-15 20:00:10 +00:00
Toy GP-2966: Consider aliases in debugger register mapping. 2023-01-19 12:48:01 -05:00
tricore Merge remote-tracking branch 'origin/patch' 2024-03-13 09:41:45 -04:00
V850 GP-2565: Broke apart long bitstring in V850 sleigh module 2023-01-09 18:02:50 +00:00
x86 Merge remote-tracking branch 2024-03-08 09:03:08 -05:00
Xtensa GP-3838: Add qemu+gdb launcher. 2024-03-01 12:36:13 -05:00
Z80 #2247 bug 2024-01-30 16:10:33 +00:00