Commit graph

288 commits

Author SHA1 Message Date
dev747368
e908ab6fbf DWARF expression handling refactor
Cleanup logic of expression evaluation, stub out resolution of register
values to a callback in case we want to use constant propagation to try
to allow successful calculations, and add support for default static
values for treating an arch's stack frame register (e.g. RBP) like the
static CFA value we already have support for.

Add option to decorate params and local vars with their DWARF storage
location info.

Handle arrays with unspecified element type.
2025-08-11 11:21:28 -04:00
ghidorahrex
4abf6d55ad GP-5766: Fixed instruction AVX512 disassembly errors 2025-07-29 08:56:43 -04:00
ghidorahrex
b0750c2783 GP-5725: Corrected operands for several AVX512 instructions 2025-06-10 09:21:39 -04:00
ghidra1
0b2739a8fe Merge remote-tracking branch
'origin/GP-5704_ghidra1_x86_16_LanguageUpgradeIssues' into Ghidra_11.4
(Closes #8140)
2025-05-19 16:05:34 -04:00
ghidra1
271ec694ad GP-5704 Corrected language upgrade issue affecting x86-16 Protected and
SMM mode variants.
2025-05-19 16:01:16 -04:00
ghidorahrex
d6815ae407 GP-5665: Additional cvt reg32 dest fixes 2025-05-15 16:52:12 +00:00
John Millikin
6ab48b885b x86: Fix missing zero-extension in CVTTSD2SI 2025-05-14 19:19:32 +09:00
James
a9e193d811 GP-5638 update language verions 2025-05-07 13:51:22 +00:00
Sleigh-InSPECtor
ce839ce9fc x86: PUSH FS/GS long mode improvements. 2025-05-06 18:42:50 +00:00
Ryan Kurtz
af5e744570 Merge remote-tracking branch 'origin/patch' 2025-04-28 15:27:24 -04:00
Ryan Kurtz
2ab014f8c2 Merge remote-tracking branch 'origin/GP-5537_ghidorahrex_avx512_update--SQUASHED' into patch 2025-04-28 15:22:04 -04:00
ghidorahrex
4f1933c1a3 GP-5537: Added additional AVX512 instructions 2025-04-24 12:57:38 -04:00
Ryan Kurtz
071652e3b9 Merge remote-tracking branch 'origin/patch' 2025-04-11 09:27:40 -04:00
Ryan Kurtz
1b31994fd9 Merge remote-tracking branch 'origin/GP-5011_ghidorahrex_x86_stack_operation_size_fix--SQUASHED' into patch 2025-04-11 09:17:42 -04:00
ghidorahrex
41305fb45e GP-5011: Fixed x86 stack push/pop sizing issues 2025-04-10 14:46:25 -04:00
James
30008b6715 GP-5030 improved x87 operand display 2025-04-09 10:04:02 -04:00
Ryan Kurtz
2f581d0ead Merge remote-tracking branch 'origin/patch' 2025-03-18 12:17:44 -04:00
Ryan Kurtz
227497e0fa Merge remote-tracking branch
'origin/GP-5299_ghidorahrex_x86_pop_macro_fix' into patch (Closes #7326)
2025-03-18 12:14:01 -04:00
dev747368
36c6c8ef77 GP-2432 golang api snapshot, generics, closures, gcwritebarrier
Apply golang runtime function signatures from info stored in json api
snapshot files.

The api snapshot files are created by a custom go helper program that
uses the go compiler parser to parse the go toolchain source tree and
writes the discovered function and type info into a json file.

The go-api-parser helper program is based off of work contributed by
github user monoidic via issue #6367.

Updates generic functions to take a generic dictionary RTTI
parameter (mostly to allow correct assignment of other parameters).

Updates closure functions to take a closure context parameter.  Closure
contexts are passed via a register that is not involved in normal
parameter passing.

Tweaks the signature of gcWriteBarrier functions so that they don't mess
up decompilation of functions that use them.
2025-03-07 16:44:48 +00:00
Ryan Kurtz
58e19e947c Merge remote-tracking branch
'origin/GP-5424_ghidracadabra_PR-6601_Sleigh-InSPECtor_x86_pushf_popf'
(Closes #6601)
2025-02-27 14:00:58 -05:00
James
74066cdf78 GP-5424 updated x86 version numbers 2025-02-26 20:29:50 +00:00
Sleigh-InSPECtor
6e8ef8deb1 x86: PUSHF/POPF address size fixes (64-bit mode) 2025-02-26 20:18:13 +00:00
James
f8b0d83b16 GP-5191 x86 fpu ip updates 2025-02-25 12:19:27 -05:00
Ryan Kurtz
e14fede14f Merge remote-tracking branch 'origin/GP-5183_ghintern_x86_x64_cspecs--SQUASHED' 2025-02-06 07:11:36 -05:00
ghintern
69dd166c3a GP-5183 Fixes to x86 and x64 cspecs 2025-02-04 21:37:27 +00:00
Ryan Kurtz
9f1aac6886 Merge remote-tracking branch 'origin/Ghidra_11.3' 2025-01-28 09:33:43 -05:00
ghidorahrex
dddc9afa9c GP-0: Fixed x86 AVX512 OpMask operand spacing 2025-01-28 09:22:55 -05:00
ghidorahrex
48ae03833e GP-5299: Fixed pop instruction macros 2025-01-23 14:58:46 +00:00
Ryan Kurtz
f1f8827878 Merge remote-tracking branch 'origin/Ghidra_11.3' 2025-01-22 13:51:58 -05:00
Ryan Kurtz
0844ff6cca Merge remote-tracking branch 'origin/GP-4660_ghidorahrex_avx_512_writemask_fix' into Ghidra_11.3 2025-01-22 13:29:59 -05:00
ghidorahrex
0d65798f10 GP-4660: Added writemask pcode for most AVX-512 instructions 2025-01-22 18:28:25 +00:00
James
c7be8e9629 GP-5267 updated language version 2025-01-17 18:21:07 +00:00
Sleigh-InSPECtor
1574864072 x86: Fix overlap issue with INCSS/RDSSP 2025-01-17 18:13:59 +00:00
dev747368
2860c29383 GP-4870 add support for golang 1.23
Also fix namespace issue for interface, slices, ptrs, arrays, etc.Remove GoFuncID enum as it mutates between versionsFix stack storage logic for DWARF variables.
2024-12-26 18:26:48 -05:00
Ryan Kurtz
e1e54a4d89 GP-5182: The builtin int type in Swift binaries has been changed from 8
bytes to 4 bytes. The Swift Demangler now demangles the Swift.Int type
to __int64 (or __int32) to avoid conflicts with non-Swift structures and
functions that may be found in the program.
2024-12-09 16:58:19 -05:00
Dan
7dd417b6be GP-5051: Distinct qemu-system launcher. 2024-12-04 08:43:26 -05:00
Ryan Kurtz
a16657d3c1 Merge remote-tracking branch 'origin/GP-4776_emteere_MoreAVXSemantics--SQUASHED' 2024-08-30 12:32:54 -04:00
emteere
0b36b540cb GP-4776 Added more semantics for AVX instructions 2024-08-30 12:19:25 -04:00
caheckman
fb13a1ca41 GP-4794 Add lanes sizes for ZMM registers 2024-07-26 19:24:08 +00:00
Sleigh-InSPECtor
5eaf085ed5 x86: Fix aliasing issues with SIMD instructions 2024-07-18 20:07:17 +00:00
Ryan Kurtz
265f0072f3 Merge remote-tracking branch 'origin/GP-4778_emteere_PR-6513_Sleigh-InSPECtor_x86_cvtsd2si_trunc' 2024-07-18 11:18:20 -04:00
Sleigh-InSPECtor
88454aca38 x86: Fix issue with PACKUSWB when the value to convert is exactly 0x00ff 2024-07-15 20:51:34 +00:00
Sleigh-InSPECtor
b59a1a3623 x86: Fix issue with comparison of bits 96 to 128 in CMPPS instruction 2024-07-12 18:05:09 +00:00
Ryan Kurtz
947709ef0a Merge remote-tracking branch
'origin/GP-4769_ghidracadabra_PR-6511_Sleigh-InSPECtor_x86_pextr_mem'
(Closes #6511)
2024-07-12 11:31:04 -04:00
Sleigh-InSPECtor
2d11af845b x86: Ensure that PEXTR instructions with memory destinations write to memory. 2024-07-11 19:02:28 +00:00
Ryan Kurtz
bbe6e41d65 Merge remote-tracking branch
'origin/GP-4754_ghidracadabra_PR-6521_Sleigh-InSPECtor_x86_sbb_sxt'
(Closes #6521)
2024-07-11 08:59:53 -04:00
ghidra1
d81f79ebb0 Merge remote-tracking branch 'origin/patch' 2024-07-09 11:42:16 -04:00
ghidra1
7d63e573fe Merge remote-tracking branch
'origin/GP-4724_emteere_AVX_MinorSemantics--SQUASHED' into patch
2024-07-09 10:52:00 -04:00
emteere
1fbebefee7 GP-4724 Minor changes for AVX instructions and UDF semantics 2024-07-09 10:26:34 -04:00
Sleigh-InSPECtor
0a79333fb6 x86: Sign-extend 32-bit immediates for 64-bit SBB instructions 2024-07-08 17:55:12 +00:00