1887 Commits

Author SHA1 Message Date
ghidra1 c18a58b2af Merge remote-tracking branch 'origin/GP-6501_ghidorahrex_mips32_save_restore--SQUASHED' into patch 2026-02-27 20:28:01 -05:00
ghidorahrex cbc000b2a0 GP-6501: Fixed up mfc0/mtc0 semantics. Added MIPS32 save/restore instructions 2026-02-27 23:01:19 +00:00
Ryan Kurtz 456fde450b Merge remote-tracking branch 'origin/GP-6489_ghidorahrex_mips16_sdbbp16_fix' into patch 2026-02-25 12:48:05 -05:00
ghidorahrex 2ad8259a29 GP-6489: Fixed opcode for MIPS sdbbp16 instruction 2026-02-25 13:24:42 +00:00
Ryan Kurtz 0079da9835 Merge remote-tracking branch 'origin/GP-6080_ghidorahrex_Xtensa_bigendian_fix' into patch 2026-02-25 04:48:00 -05:00
Ryan Kurtz 96564d1be5 Merge remote-tracking branch
'origin/GP-6448_ghidorahrex_AARCH64_CSSC_instructions--SQUASHED' into
patch (Closes #8973, Closes #8979)
2026-02-24 12:41:59 -05:00
ghidorahrex ea52a687b2 GP-6448: Added AARCH64 CSSC instructions 2026-02-24 10:49:41 -05:00
Ryan Kurtz 823993e9e1 Merge remote-tracking branch
'origin/GP-6473_ghidorahrex_PR-6467_Sleigh-InSPECtor_aa64_ldar_ld_size'
into patch (Closes #6467, Closes #8014)
2026-02-23 10:20:11 -05:00
Sleigh-InSPECtor 3fbe33860b AA64: fix ldar load size for 32bit variant 2026-02-23 14:53:22 +00:00
Sleigh-InSPECtor bbe8d7ca93 AA64: fix ldpsw increment size to match load 2026-02-20 18:17:38 +00:00
Ryan Kurtz a71300ffdf Merge remote-tracking branch
'origin/GP-6181_ghidorahrex_PR-8716_Jomosoto_cr16c-tbit' into patch
(Closes #8716)
2026-02-12 12:53:37 -05:00
Ryan Kurtz c0fe936573 Merge remote-tracking branch
'origin/GP-6004_ghidorahrex_PR-8501_robbederks_pic18-fix-incdec' into
patch (Closes #3342, Closes #8501)
2026-02-11 05:52:27 -05:00
Ryan Kurtz aa8e098ad5 Merge remote-tracking branch
'origin/GP-6268_ghidorahrex_PR-8821_0dinD_altivec-vadduws' into patch
(Closes #8821)
2026-02-11 05:45:54 -05:00
Ryan Kurtz 53beea47b3 Merge remote-tracking branch
'origin/GP-6182_ghidorahrex_PR-8721_niooss-ledger_ebpf-fix-disassembly-atomic-instructions'
into patch (Closes #8721)
2026-02-11 05:43:51 -05:00
Ryan Kurtz 2b20282f44 Merge remote-tracking branch 'origin/GP-6419_ghidorahrex_MIPS16_pcodetest_fix' into patch 2026-02-09 11:43:03 -05:00
Ryan Kurtz adbd7fcfed Merge remote-tracking branch
'origin/GP-5905_ghidorahrex_80251_fix_SPX_instructions' into patch
(Closes #8395)
2026-02-09 11:21:37 -05:00
ghidorahrex 1660b9ca47 GP-6419: Fixed MIPS16 pcodetest failures 2026-02-09 15:33:05 +00:00
Ryan Kurtz 08c8a507b6 Merge remote-tracking branch
'origin/GP-4501_ghidorahrex_PR-6398_Sleigh-InSPECtor_aa64_sha1h_rotate'
into patch (Closes #6398)
2026-01-30 13:24:20 -05:00
Sleigh-InSPECtor c9be1860c1 AArch32: fixed ldrexd
* fixed addr src register aliased as first dest register of a double word load causing second word load at the value of first load
2026-01-27 17:28:22 +00:00
Goatman13 c0bc9a882b PowerPC VLE: Fix se_blrl flow
Opcode se_blrl is branch link register and link. Treating it as a return break flow and is wrong. Non VLE is already correct.
2026-01-26 19:28:15 +00:00
Sleigh-InSPECtor b5fb4d36ed AA64: Add ls_data8 to ldapr 2026-01-22 13:31:11 +00:00
ghidra1 fe35e34add GP-6329 Corrected PowerPC-32 ELF Relocation processing for
R_PPC_ADDR16_LO and R_PPC_ADDR16_HA
2026-01-13 17:16:14 -05:00
ghidra1 6208df2d50 GP-1 Corrected RISCV import opinion file 2026-01-13 10:44:59 -05:00
Jonas Bewig e94681701a CR16: fix CR16C TBIT instruction 2025-12-29 20:10:09 +00:00
Nicolas Iooss af8a370421 Fix eBPF compare-and-exchange instruction
Linux kernel's documentation tells in
https://www.kernel.org/doc/html/v6.0/bpf/instruction-set.html#atomic-operations

> The BPF_CMPXCHG operation atomically compares the value addressed by
> dst_reg + off with R0. If they match, the value addressed by
> dst_reg + off is replaced with src_reg. In either case, the value that
> was at dst_reg + off before the operation is zero-extended and loaded
> back to R0.

If the values don't match, *(dst_reg + off) is not supposed to be
modified.

Moreover, register R0 is always modified and the 32-bit instruction
truncates its value (with a zero-extension). This is also clear in the
implementation of BPF_CMPXCHG in
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/kernel/bpf/core.c?h=v6.18#n2186

    case BPF_CMPXCHG:
            if (BPF_SIZE(insn->code) == BPF_W)
                    BPF_R0 = (u32) atomic_cmpxchg(
                            (atomic_t *)(unsigned long) (DST + insn->off),
                            (u32) BPF_R0, (u32) SRC);
            else if (BPF_SIZE(insn->code) == BPF_DW)
                    BPF_R0 = (u64) atomic64_cmpxchg(
                            (atomic64_t *)(unsigned long) (DST + insn->off),
                            (u64) BPF_R0, (u64) SRC);

Fix the semantic of the compare-and-exchange instruction accordingly.
2025-12-29 19:49:13 +00:00
Nicolas Iooss ff6eb2213b Fix disassembly of eBPF atomic instructions
eBPF ISA v3 introduced atomic instructions:
https://www.kernel.org/doc/html/v6.0/bpf/instruction-set.html#atomic-operations

These instructions are encoded using BPF_ATOMIC | BPF_W  | BPF_STX
and BPF_ATOMIC | BPF_DW | BPF_STX for 32-bit and 64-bit operations,
with:

    BPF_ATOMIC = 0xc0
    BPF_DW = 0x18
    BPF_W = 0
    BPF_STX = 0x03

While Ghidra's semantic section is constructed correctly (atomic add
uses an addition ; atomic or uses or ; ...), the disassembly always
displays STXXADDW and STXXADDDW. These mnemonics come from the
deprecated name BPF_XADD = BPF_ATOMIC | BPF_ADD = 0xc0.

Replace the confusing mnemonics with the ones used by binutils and
documented in
https://sourceware.org/git/?p=binutils-gdb.git;a=blob;f=gas/doc/c-bpf.texi;h=003cb92a457985038a9abc1ffbf347f636eb0586;hb=2bc7af1ff7732451b6a7b09462a815c3284f9613#l745
2025-12-29 19:49:12 +00:00
Odin Dahlström c1f97cde08 Fix missing Altivec vadduws instruction 2025-12-23 13:21:07 +00:00
ghidorahrex c981c0b5dd GP-6004: Refactored out duplicated constructors 2025-12-16 20:07:56 +00:00
ghidra1 ba9c648374 GP-6229 Updated EmulateInstructionStateModifier.executeCallOther to drop first input for consistency with all other code that invokes OpBehaviorOther.evaluate method and Corrected OpBehaviorOther regression errors with various implementations 2025-12-15 15:20:37 -05:00
ghidorahrex 78859d55fd GP-5905: Fixed issue with 80251 instructions referencing SPX register 2025-12-12 14:52:29 +00:00
Ryan Kurtz b4ecdc6d9e Merge remote-tracking branch
'origin/GP-5334_ghidorahrex_m68k_addrmode_operand_fix' into patch
(Closes #4358)
2025-12-09 14:04:27 -05:00
ghidorahrex 27b06c83a6 GP-5334: Corrected operand count for m68k addressing modes 2025-12-09 19:01:17 +00:00
Ryan Kurtz 6504c296b2 Merge remote-tracking branch
'origin/GP-6109_ghidorahrex_powerpc_vle_assembly_fix' into patch
(Closes #8624)
2025-12-09 12:32:36 -05:00
ghidra1 d0f88bf902 GP-6007 Remove Decompiler dependency 2025-12-04 12:28:50 -05:00
ghidra1 923ceb52d4 GP-6007 use -l sleigh compile option with NDS32 2025-12-04 11:25:54 -05:00
emteere ddf4ad1182 GP-6007 minor fixes for Andestar v5 2025-12-03 22:06:38 +00:00
emteere 2efa886f5c GP-6007 minor fixes for mfusr, mtusr and csreg space as global in cspec 2025-12-03 21:36:18 +00:00
ghidorahrex df6e4049d4 GP-6007: Added additional floating point config instructions 2025-12-02 20:34:41 +00:00
ghidorahrex 9bdd19cc08 GP-6007: Added CSR space and CSRs 2025-12-02 15:49:55 +00:00
ghidorahrex ed4ae8bfa1 GP-6007: Added stubs for nds32 FPU instructions 2025-11-26 20:19:40 +00:00
ghidorahrex 71cd33572c GP-6007: Updated NDS32 analyzer and elf relocation handler and test
fixups
2025-11-26 15:59:55 +00:00
Timothée COCAULT fa7c3b1fec [NDS32] Add support for the NDS32 Processor 2025-11-26 15:59:54 +00:00
Ryan Kurtz 9499199f83 Merge remote-tracking branch 'origin/GP-6120_emteere_PPC64ThunkPatterns' into Ghidra_12.0 2025-11-26 05:01:09 -05:00
Ryan Kurtz e1f6642c77 Merge remote-tracking branch
'origin/GP-6121_ghidorahrex_PR-8625_dt-12345_aarch64_fmadd' into
Ghidra_12.0 (Closes #8625, Closes #8454)
2025-11-24 14:01:25 -05:00
Ryan Kurtz 00978223d3 Merge remote-tracking branch
'origin/GP-4650_ghidorahrex_PR-6544_Sleigh-InSPECtor_aarch32_vmvn' into
Ghidra_12.0 (Closes #6544)
2025-11-24 13:58:19 -05:00
emteere 88ff4b2008 GP-6120_emteere_FixThunkDetectionMarkupPPC64 2025-11-24 18:25:40 +00:00
MetalliC 22a5a22d82 PowerPC: fix condition check in bd*f* opcodes 2025-11-20 12:39:15 -05:00
Sleigh-InSPECtor 0982753437 AArch32: fixed vmvn
* fixed incorrect shift offset (bytes given in place of bits) and double word order
2025-11-20 15:19:00 +00:00
dt-12345 c4c7f11d1c fix AArch64 fmadd operand ordering for 32-bit case 2025-11-14 17:07:20 +00:00
caheckman 5857e63741 GP-6118 Fix for specialized ARM cpy pc,lr 2025-11-13 20:31:53 +00:00