Commit graph

9722 commits

Author SHA1 Message Date
caheckman
d8b4f910ca GP-3266 Max jumptable entry option 2023-06-12 16:42:12 -04:00
Ryan Kurtz
3b62fdaa95 Merge remote-tracking branch 'origin/GP-3534_emteere_CPOOL_arguments'
into patch (Closes #2148)
2023-06-12 13:01:33 -04:00
Ryan Kurtz
2e87168082 Merge branch 'GP-3526_ryanmkurtz_macho-indirect' into patch 2023-06-09 15:38:30 -04:00
Ryan Kurtz
1e107554cf GP-3526: Restoring Mach-O indirect symbol creation when binding info is
absent
2023-06-09 15:37:49 -04:00
Ryan Kurtz
6b2bd61588 Merge remote-tracking branch 'origin/GP-3463_ghidra007_rtti_script_improve_find_internal_vtables--SQUASHED' into patch 2023-06-09 11:14:46 -04:00
Ryan Kurtz
9fd32d487d Merge remote-tracking branch
'origin/GP-3477_ghidragon_exiting_via_menu_doesn't_save_theme_changes'
into patch (Closes #5377)
2023-06-09 11:13:35 -04:00
ghidra007
0f66077ce2 GP-3463 RecoverClassesFromRTTIScript - improved finding of special vtables to account for ones in memory blocks that do not contain real bytes. 2023-06-09 15:09:00 +00:00
Ryan Kurtz
655012a964 Merge remote-tracking branch
'origin/GP-3528_ghidragon_macos_dark_mode_breaks_menu_bar_colors' into
patch (Closes #4454)
2023-06-09 08:46:06 -04:00
emteere
720dce335e GP-3534 Fixed cpool invalid error, added test for cpool arguments 2023-06-09 01:40:30 +00:00
ghidragon
11b9fdbe06 GP-3477 fixed issue where theme changes wern't save when exiting Ghidra
via menu action
2023-06-08 16:14:47 -04:00
ghidragon
157eef0ec9 GP-3528 fixing menu painting issues with Mac Aqua look and feel 2023-06-08 15:36:03 -04:00
emteere
ca697fcaaf GP-3009 Setting of context for correct disassembly in either bank. Set
Ports to volatile so they aren't simplified away in the decompiler.
2023-06-08 18:50:04 +00:00
Ryan Kurtz
be86c87cab GP-0: Updating GhidraDev instructions 2023-06-08 08:21:59 -04:00
ghidorahrex
7a145a75e4 GP-3524: Fixed ARM Thumb vdup instruction to use correct registers 2023-06-07 19:07:48 +00:00
Ryan Kurtz
be95714f86 Merge remote-tracking branch 'origin/GP-3481_ghidra007_fixIncrementerLocation' into patch 2023-06-07 05:46:05 -04:00
ghidra007
ec8d9f018b GP-3841 rtti script - fixed increment issue caused when fixing
incrementer
2023-06-06 22:34:57 +00:00
caheckman
603cf5523f GP-3518 Additional double precision checks 2023-06-06 12:11:06 -04:00
Ryan Kurtz
a31063dcb0 GP-3519: Fixed a bug that caused PE symbol .exports files to always get
deleted after import (Closes #5348)
2023-06-06 07:34:39 -04:00
Ryan Kurtz
69fa35638b Merge remote-tracking branch 'origin/GP-3481_ghidra007_addMissingIncrementerCausingInfLoop' into patch 2023-06-05 13:18:50 -04:00
ghidra007
4c7be8be0d GP-3481 added missing incrementer causing infinite loop in some cases 2023-06-05 17:15:47 +00:00
Ryan Kurtz
0d3d65de23 GP-3445: Fixed an IllegalStateException that could occur if both "Load
Local Libraries From Disk" and "Load System Libraries From Disk" options
are used during import, and the same library is found in both local and
system directories
2023-06-05 06:55:50 -04:00
Ryan Kurtz
adf7b18547 Merge remote-tracking branch 'origin/GP-0_d-millar_maint_info_sections_template--SQUASHED' into patch 2023-06-01 13:35:49 -04:00
Ryan Kurtz
6e4c0f3ca2 Merge remote-tracking branch
'origin/GP-0_d-millar_use_readUnsignedInt_for_dump_block_sizes' into
patch (Closes #5047)
2023-06-01 13:34:54 -04:00
d-millar
de3d53be90 GP-0: template for 'maint info sections'
GP-0: template for 'maint info sections'
2023-06-01 13:16:13 -04:00
d-millar
8632891f83 GP-0: use readUnsignedInt for dump memory blocks 2023-06-01 13:15:14 -04:00
Ryan Kurtz
dd5129daa8 Merge remote-tracking branch
'origin/GP-0_ghidorarex_BytesTracePcodeEm_fix' into patch
2023-06-01 11:58:22 -04:00
ghidorahrex
8a396dfd48 GP-0: Fixed test failures in BytesTracePcodeEmulatorTest 2023-06-01 15:56:18 +00:00
Ryan Kurtz
146cf6df33 Merge remote-tracking branch 'origin/GP-3508_DynamicHashPcodeOp' into
patch (Closes #5372)
2023-06-01 06:14:29 -04:00
Ryan Kurtz
bf3e3923e8 Merge remote-tracking branch 'origin/GP-3480_PPCSmallDataAreaPointer' into patch 2023-06-01 06:12:52 -04:00
Ryan Kurtz
ea5b5e4c28 Merge remote-tracking branch 'origin/GP-3481_ghidra007_' into patch 2023-06-01 06:10:12 -04:00
Ryan Kurtz
ffdec3a2e3 Merge remote-tracking branch 'origin/GP-3467_ghidra007_rtti_script_better_mangled_string_handling--SQUASHED' into patch 2023-06-01 06:07:08 -04:00
ghidra007
ecade19183 GP-3467 rtti script fixed issue clearing/creating mangled typeinfo-name mangled string of correct length. Was breaking when more than one existing dt in string range because was only clearing first one. 2023-05-31 18:01:55 +00:00
ghidra007
81ba94a3b8 GP-3481 Fixed incorrect checks of getData and getDataContaining in rtti script and replaced api versions with non-api versions and updated checks to work with new way. 2023-05-31 15:54:12 +00:00
Ryan Kurtz
e3429a57db Merge remote-tracking branch
'origin/GP-3102_ghidorahrex_x86-64_popf_pushf--SQUASHED' into patch
(Closes #4980)
2023-05-31 11:20:14 -04:00
Phlosioneer
058fa90387 Issue 4807 Fix movem PC instruction bug on 68000
The `movem` instruction's `(d16, PC)` addressing mode has an instruction
word, a mask word, and then an extension word. The addressing mode
uses the value of PC incremented to the extension word, in this case
`instr_start + 4`. The sleigh code incorrectly uses `instr_start + 2`.
The issue is present for both `movem.w` and `movem.l` variants. This
PR fixes the `PC` offset to `+4`.

See 68000 reference manual page 2-13 for PC indirect addressing mode,
and 4-128 for MOVEM documentation.

Partially addresses #4807.
2023-05-31 14:31:37 +00:00
ghidorahrex
af40b28931 GP-3102: Fixed disasm of default 64-bit addrsize instructions 2023-05-31 10:13:41 -04:00
ghidorahrex
70a50dfcc2 GP-3478: Fixed registers in aarch64 neon mla instruction 2023-05-31 14:08:47 +00:00
David Youd
2d497a0d5c fix to TSX instruction 2023-05-31 13:14:48 +00:00
Ryan Kurtz
1fcaf3c9cd Merge remote-tracking branch
'origin/GP-3509-dragonmacher-python-prompt-spacing' into patch
(Closes #5379)
2023-05-31 08:38:57 -04:00
fenugrec
2b05e1f5f2 8048 : improve display of JBx opcode
instead of e.g. "JB0x5", they will render as "JB5".
2023-05-31 12:34:24 +00:00
fenugrec
bb08f67417 8048: fix JMPP @A extra dereference
JMPP was doing two indirections : one in PData and then one again in
AddrInd, where there should only be one.

MCS-48 docs :

> The contents of the Program Memory location addressed by the
Accumulator
is used as the new page offset of the Program Counter.

i.e.
(PC 0 – 7) <- ((A))

Previous implementation caused disasm / decompiler errors such as
"Low-level Error: Could not find op at target address"

refs:
https://github.com/NationalSecurityAgency/ghidra/discussions/4818
2023-05-31 12:34:23 +00:00
fenugrec
97b0984426 8048: support > 4kB address space
MCS-48 just barely supports 12 bits of program counter space (4kB), but
many real-world applications use software banking to expand this,
e.g. via IO pins driving extra address lines to the external ROM.

This patch allows up to 16-bit addresses. To use this feature, simply
select the special instruction (typically ORL Pp or ANL Pp) and set a
manual Fallthrough address to the correct bank.
2023-05-31 12:34:22 +00:00
fenugrec
3fbf16b056 8048: make DBF a context register
See GH #2423

The SEL MB0/MB1 opcodes set a DBF register but this had no effect, therefore JMP and CALL
destinations didn't take into account DBF.
This is essentially @esaulenka 's patch from
3756e1bcee

but separated from the DFB->DBF typo change, and sets the width of the new
context register to be 1 bit (doesn't need to be 2 bits)

This greatly improves analysis. The only downside is that to manually
override DBF on a single instruction, it needs to be cleared first, then
disassembled again after setting the desired DBF.
2023-05-31 12:34:21 +00:00
fenugrec
7c2b8ca27d 8048: typo in "DFB" register name , should be DBF
MCS-48 Assembly language manual #9800255D :
'
DBF designate memory bank flip-flop
'
2023-05-31 12:34:20 +00:00
fenugrec
5ea567f65b 8048: fix movp, movp3, jmpp
the correct syntax for [x,y] bitranges has y= # number of bits. These
three instructions affect the lower 8 bits of PC, not 7.

From MCS-48 docs:
'
MOVP A,@A
(PC: 0-7)<-(A)
(A)<-((PC))

Move data in program memory location addressed by A into A. Program
counter is restored.
'

There is similar wording for MOVP3 and JMPP.

Fixes #4810 on GH
2023-05-31 12:34:19 +00:00
dragonmacher
d3912c5e0f GP-5379 - Updated the Python Interpreter prompt to use less space 2023-05-30 17:23:47 -04:00
caheckman
050d3018c8 GP-3508 Fix for calcHash methods 5 and 6 2023-05-30 15:39:19 -04:00
Ryan Kurtz
aa2ac78dc3 Merge remote-tracking branch 'origin/GP-3507_Dan_gdbTestsWithYama' into patch 2023-05-30 14:09:57 -04:00
Dan
4b0bd5ce12 GP-3507: Create attachable sleep specimen for gdb 2023-05-30 14:04:01 -04:00
Phlosioneer
b1c54e36e1 Fix pea SP instruction bug on 68000 processor
The `pea` instruction adjusts `SP`, but the address may be `SP`-based.
Ghidra was evaluating the effective address after adjusting `SP`, but
the address should be evaluated before `SP` is changed. For example,
`pea (SP)` should result in a pointer to the previous stack entry,
rather than a pointer to itself.
2023-05-30 16:49:29 +00:00