18115 Commits

Author SHA1 Message Date
dragonmacher
14cda3de4b Test fixes 2026-06-23 15:32:51 -04:00
Daven Du
3c7e4d1503 Properly iterate through resolvemap when remove resolve ranges 2026-06-23 19:21:46 +00:00
caheckman
376ac1a0a0 GP-6995 SLEIGH decode checks 2026-06-23 18:05:16 +00:00
caheckman
3fa2c8041d GP-6994 Fix tests 2026-06-23 17:18:56 +00:00
Luke Serné
12806006b5 Add custom printRaw implementation for TypeOps with ambiguous printRaw
This adds a `printRaw` implementation to 13 TypeOps, similar in implementation
to `TypeOpIntSright::printRaw`.
2026-06-23 17:17:16 +00:00
Ryan Kurtz
01e43c1a82 Merge remote-tracking branch
'origin/GP-3040-dragonmacher-demangle-all-symbols--SQUASHED'
(Closes #4494)
2026-06-23 12:54:35 -04:00
Ryan Kurtz
931461fa8b Merge remote-tracking branch 'origin/GP-6938_Dan_moreTerminal--SQUASHED' 2026-06-23 12:51:23 -04:00
Dan
c2d0dd08a3 GP-3938: Several improvements to the Terminal. 2026-06-23 16:47:41 +00:00
Ryan Kurtz
f25cff1d6e Merge remote-tracking branch 'origin/GP-1-dragonmacher-decompiler-refresh-fix' 2026-06-23 12:47:04 -04:00
Ryan Kurtz
42dbe2d1af Merge branch 'GP-6991_ryanmkurtz_mz-fix' 2026-06-23 12:22:25 -04:00
Ryan Kurtz
626255c15f GP-6991: Fixing PE and NE files triggering the MzLoader 2026-06-23 12:21:55 -04:00
caheckman
05c8a9c312 GP-6985 Send back consistent function symbol or hole 2026-06-23 16:13:54 +00:00
Ryan Kurtz
ac190bcdd5 Merge remote-tracking branch 'origin/patch' 2026-06-23 09:53:01 -04:00
Ryan Kurtz
a1caa9124d Merge remote-tracking branch
'origin/GP-6934_Dan_fixCmdMetacharIssues--SQUASHED' into patch
(Closes #9283)
2026-06-23 09:48:55 -04:00
Dan
1541f3a78b GP-6934: Implement OS/shell-dependent escaping. 2026-06-23 13:30:09 +00:00
Ryan Kurtz
082f7fe96b GP-0: Fixed potential NPE in ImageCor20Header.java (Closes #2246) 2026-06-23 07:25:17 -04:00
Ryan Kurtz
3e9b429513 GP-0: Fixing potential NPE in User.java (Closes #1739) 2026-06-23 05:30:48 -04:00
Ryan Kurtz
a25f23b640 GP-0: Removing unnecessary DMG NPE check, and some cleanup
(Closes #1740)
2026-06-23 05:10:22 -04:00
Ryan Kurtz
8711646775 Merge remote-tracking branch 'origin/GP-6732_ryanmkurtz_batch--SQUASHED'
(Closes #1934)
2026-06-22 13:30:32 -04:00
Ryan Kurtz
ac2d4047d9 GP-6732: Batch Importer can now import with any language/compiler spec 2026-06-22 13:27:37 -04:00
Ryan Kurtz
ef70780544 Merge remote-tracking branch 'origin/patch' 2026-06-22 12:33:49 -04:00
Ryan Kurtz
c16c4c6545 Merge remote-tracking branch 'origin/GP-2907_ghidorahrex_v850e3_update'
into patch (Closes #4788)
2026-06-22 12:30:53 -04:00
ghidorahrex
6f5fa3192c GP-2907: Added v850e3 language variant instructions 2026-06-22 16:24:44 +00:00
Ryan Kurtz
008ac6af82 Merge remote-tracking branch 'origin/GP-6977_James_improve_escaping_bsimcontrollaunchable' into patch 2026-06-22 12:04:16 -04:00
Ryan Kurtz
09f298a51c Merge remote-tracking branch 'origin/GP-6974_Dan_fixForGdb17'
(Closes #9254)
2026-06-22 11:58:53 -04:00
jibee
891826dbc9 68000: movem.w always uses 2 increments
movem exists in 2 symmetrical variants, register to memory (save to stack) and memory to register (pull from stack).
Per 68000 manual, when in word mode, increment (respectively decrement) is 2, and 4 in long mode.
For word mode, the various registers masks are handled by m2rfw0, r2mbw0, and r2mfw0. 

This patch corrects the pointer increment for r2mbw0 to 2, aligning it to  m2rfw0 and r2mfw0.
2026-06-22 15:49:40 +00:00
Ryan Kurtz
d70f969e8e GP-6773: Fallback loader fix for batch importer 2026-06-22 05:14:04 -04:00
dragonmacher
2517de24d5 Fixed Decompiler message area not going away when changing functions 2026-06-18 22:39:45 -04:00
Ryan Kurtz
5931088767 Merge remote-tracking branch 'origin/GP-6979_caheckman_ThumbPointers'
(Closes #8990, Closes #8471))
2026-06-18 13:54:12 -04:00
Ryan Kurtz
7714c29d98 Merge remote-tracking branch
'origin/GP-6975-dragonmacher-window-min-size' (Closes #9260)
2026-06-18 13:47:08 -04:00
Ryan Kurtz
3fbc53f39c Merge remote-tracking branch 'origin/GP-6906-dragonmacher-analysis-panel-nav--SQUASHED' 2026-06-18 13:44:23 -04:00
Ryan Kurtz
5b98619bea Merge remote-tracking branch 'origin/GP-6946_caheckman_ThunkCheck' 2026-06-18 13:42:48 -04:00
Ryan Kurtz
df8d7f151d Merge remote-tracking branch 'origin/patch' 2026-06-18 13:41:48 -04:00
Ryan Kurtz
30802d883f Merge remote-tracking branch 'origin/GP-6896_ryanmkurtz_import-file--SQUASHED' into patch 2026-06-18 13:38:16 -04:00
ghidra1
81a379c09a GP-1 ProgramLoader javadoc update 2026-06-18 12:56:24 -04:00
ghidra1
f60a0152e7 Merge remote-tracking branch 'origin/patch' 2026-06-18 12:17:21 -04:00
dragonmacher
5237c36975 GP-3040 - Demangler - Demangle all mangled symbols at an address 2026-06-18 11:22:13 -04:00
Ryan Kurtz
ef20124903 GP-6896: ImporterDialog 'Program Name' to 'Name' label change 2026-06-18 09:49:57 -04:00
caheckman
86f4daefc5 Handle TYPE_CODE in isPtrsubMatching 2026-06-18 00:18:15 +00:00
Nicolas Iooss
7cfdb50315 Do not apply rule ptrsubundo for pointers targeting ARM Thumb functions
In ARM Thumb, function pointers are used with an offset. For example,
let's consider this C program:

    static void fn(void) {}

    __attribute__((noinline, optimize("O0")))
    static void call_function(void (*callback)(void)) {
        callback();
    }

    void call_fn_through_reference(void) {
        call_function(fn);
    }

Function call_fn_through_reference actually gives the address fn + 1 in
the first parameter of call_function, when this code is compiled in ARM
Thumb mode. In such a situation, Ghidra's decompiler produced:

    void call_fn_through_reference(void)
    {
      call_function((void *)0x10189);
      return;
    }

The rules which were applied included both:

- rule constantptr, which converted the constant 0x10189 to
  (#0x0 -> #0x10188) + #0x1 (opcodes PTRSUB and INT_ADD) ;
- rule ptrsubundo, which converted this expression to
  (#0x0 + #0x10188) + #0x1 (later simplified to #0x10189).

The second rule cancelled the first one. In this case, rule ptrsubundo
should not be applied as the expression involving PTRSUB targets a valid
location.

Nevertheless, TypePointer::isPtrsubMatching(off=0x10188, extra=1, multiplier=0)
returned false. This is due to the fact that even though the size of
symbol fn was adjusted to be 2 (in method DecompileCallback::encodeFunction in
Ghidra/Features/Decompiler/src/main/java/ghidra/app/decompiler/DecompileCallback.java
), the actual type is "pointer to a TypeCode which size is 1", so
extra >= subType->getSize() and the method returned false.

Fix TypePointer::isPtrsubMatching to return true when a pointer to some
code is encountered with extra >= 0. This makes Ghidra's decompiler now
produce:

    void call_fn_through_reference(void)
    {
      call_function(fn + 1);
      return;
    }

Fixes: https://github.com/NationalSecurityAgency/ghidra/issues/8471
Fixes: 34adcff830 ("GP-4782 Refactor RulePtrsubUndo")
2026-06-18 00:16:02 +00:00
dragonmacher
e685e2c839 GP-6906 - Accessibility - Options fixes for Tab key traversal and for jumping between the options tree to the editor pane using Ctrl-E 2026-06-17 16:16:55 -04:00
Ryan Kurtz
4a802292a1 Merge remote-tracking branch 'origin/GP-0_Dan_fixTests-2026-06-17-1' 2026-06-17 14:28:47 -04:00
Dan
4f6ecbf983 GP-0: Fix tests and clean up. 2026-06-17 18:24:48 +00:00
James
da1ad47350 GP-6977 improve escaping in BSimControlLaunchable 2026-06-17 13:20:13 -04:00
Ryan Kurtz
3a8dc77d40 GP-0: Correcting gradle-wrapper.properties location 2026-06-17 11:00:53 -04:00
Ryan Kurtz
38196bedf9 Merge remote-tracking branch 'origin/GP-6967_caheckman_ScopeDelimiter' 2026-06-17 10:52:46 -04:00
Ryan Kurtz
67bae973e9 Merge remote-tracking branch 'origin/GP-6957_caheckman_RelBranchToNextInst' 2026-06-17 10:50:26 -04:00
Ryan Kurtz
47e7ca9cc2 Merge remote-tracking branch 'origin/patch' 2026-06-17 10:49:32 -04:00
ghidra1
2ad4bdcae5 Merge branch 'GP-1_ghidra1_HeadlessURLFix' into patch 2026-06-17 10:48:57 -04:00
Ryan Kurtz
190949f267 GP-0: Upping gradle wrapper to 9.5.1 2026-06-17 10:45:56 -04:00