Compare commits

...

108 Commits

Author SHA1 Message Date
Eric Kilmer 69e080e45a Ghidra 11.1 (#268)
ZLIB is now a requirement for compressed sleigh files
2024-06-12 07:22:03 -04:00
auto-updater[bot] 4110ce82e0 Update Ghidra HEAD to commit 195abea7e (#267)
Bump Ghidra HEAD commit 195abea7e

Changed files:

```
M	Ghidra/Processors/x86/certification.manifest
M	Ghidra/Processors/x86/data/languages/avx.sinc
M	Ghidra/Processors/x86/data/languages/avx2.sinc
M	Ghidra/Processors/x86/data/languages/avx2_manual.sinc
A	Ghidra/Processors/x86/data/languages/avx512.sinc
A	Ghidra/Processors/x86/data/languages/avx512_manual.sinc
M	Ghidra/Processors/x86/data/languages/avx_manual.sinc
M	Ghidra/Processors/x86/data/languages/fma.sinc
M	Ghidra/Processors/x86/data/languages/ia.sinc
M	Ghidra/Processors/x86/data/languages/lockable.sinc
A	Ghidra/Processors/x86/data/languages/old/x86RealV3.lang
A	Ghidra/Processors/x86/data/languages/old/x86RealV3.trans
A	Ghidra/Processors/x86/data/languages/old/x86V3.lang
A	Ghidra/Processors/x86/data/languages/old/x86V3.trans
A	Ghidra/Processors/x86/data/languages/old/x86_64bit_compat32_v3.lang
A	Ghidra/Processors/x86/data/languages/old/x86_64bit_compat32_v3.trans
A	Ghidra/Processors/x86/data/languages/old/x86_64bit_v3.lang
A	Ghidra/Processors/x86/data/languages/old/x86_64bit_v3.trans
A	Ghidra/Processors/x86/data/languages/old/x86_ProtV3.lang
A	Ghidra/Processors/x86/data/languages/old/x86_ProtV3.trans
A	Ghidra/Processors/x86/data/languages/old/x86smmV3.lang
A	Ghidra/Processors/x86/data/languages/old/x86smmV3.trans
M	Ghidra/Processors/x86/data/languages/x86.ldefs
M	Ghidra/Processors/x86/data/languages/x86.slaspec
M	Ghidra/Processors/x86/src/main/java/ghidra/app/util/bin/format/elf/extend/X86_32_ElfExtension.java
```

Co-authored-by: pgoodman <43664+pgoodman@users.noreply.github.com>
2024-06-10 04:39:50 -04:00
auto-updater[bot] 1464c57bad Update Ghidra HEAD to commit 22b1b485b (#266)
Bump Ghidra HEAD commit 22b1b485b

Changed files:

```
M	Ghidra/Processors/AARCH64/data/languages/AARCH64.ldefs
M	Ghidra/Processors/AARCH64/data/languages/AARCH64_golang.cspec
M	Ghidra/Processors/AARCH64/data/languages/AARCH64_golang.register.info
M	Ghidra/Processors/SuperH/data/languages/superh.sinc
M	Ghidra/Processors/x86/data/languages/x86-32-golang.register.info
M	Ghidra/Processors/x86/data/languages/x86-64-golang.cspec
M	Ghidra/Processors/x86/data/languages/x86-64-golang.register.info
```

Co-authored-by: pgoodman <43664+pgoodman@users.noreply.github.com>
2024-06-03 11:21:28 -04:00
auto-updater[bot] bddd3b2342 Update Ghidra HEAD to commit fb844be1f (#265)
Bump Ghidra HEAD commit fb844be1f

Changed files:

```
M	Ghidra/Features/Decompiler/src/decompile/cpp/filemanage.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/filemanage.hh
M	Ghidra/Processors/tricore/data/languages/tricore.sinc
```

Co-authored-by: pgoodman <43664+pgoodman@users.noreply.github.com>
2024-05-28 08:29:05 -04:00
auto-updater[bot] 5e84d25f0e Update Ghidra HEAD to commit ef3e74b6d (#264)
Bump Ghidra HEAD commit ef3e74b6d

Changed files:

```
M	Ghidra/Features/Decompiler/src/decompile/cpp/coreaction.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/coreaction.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/fspec.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/fspec.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/funcdata_varnode.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/marshal.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/op.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/ruleaction.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/ruleaction.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/varmap.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/varnode.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/varnode.hh
A	Ghidra/Features/Decompiler/src/decompile/datatests/gp.xml
A	Ghidra/Features/Decompiler/src/decompile/datatests/switchhide.xml
M	Ghidra/Processors/68000/data/languages/68000.cspec
M	Ghidra/Processors/68000/data/languages/68000.sinc
M	Ghidra/Processors/68000/src/main/java/ghidra/program/emulation/m68kEmulateInstructionStateModifier.java
M	Ghidra/Processors/AARCH64/data/languages/AARCH64.dwarf
M	Ghidra/Processors/AARCH64/data/languages/AARCH64_golang.register.info
M	Ghidra/Processors/MCS96/data/languages/MCS96.sinc
M	Ghidra/Processors/MIPS/data/languages/mips32be.cspec
M	Ghidra/Processors/MIPS/data/languages/mips32le.cspec
M	Ghidra/Processors/PIC/data/languages/pic16_instructions.sinc
M	Ghidra/Processors/x86/data/languages/ia.sinc
M	Ghidra/Processors/x86/data/languages/x86-64-golang.register.info
```

Co-authored-by: pgoodman <43664+pgoodman@users.noreply.github.com>
2024-05-19 07:25:33 -04:00
dependabot[bot] 9ebd0d7dbb build(deps): bump softprops/action-gh-release from 2.0.4 to 2.0.5 (#263)
Bumps [softprops/action-gh-release](https://github.com/softprops/action-gh-release) from 2.0.4 to 2.0.5.
- [Release notes](https://github.com/softprops/action-gh-release/releases)
- [Changelog](https://github.com/softprops/action-gh-release/blob/master/CHANGELOG.md)
- [Commits](https://github.com/softprops/action-gh-release/compare/v2.0.4...v2.0.5)

---
updated-dependencies:
- dependency-name: softprops/action-gh-release
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-08 09:09:40 -04:00
Eric Kilmer 92470fe795 CI: Specifically use macos-13 image (#262)
macos-latest now points to Apple Silicon macos-14 image, which is
causing some tests to fail, and macos-13 is the latest that support x86
2024-04-29 13:00:08 -04:00
auto-updater[bot] 39c1230211 Update Ghidra HEAD to commit e6c8f5b53 (#260)
Bump Ghidra HEAD commit e6c8f5b53

Changed files:

```
M	Ghidra/Processors/AARCH64/certification.manifest
M	Ghidra/Processors/AARCH64/data/languages/AARCH64.ldefs
M	Ghidra/Processors/AARCH64/data/languages/AARCH64.opinion
A	Ghidra/Processors/AARCH64/data/languages/AARCH64_golang.cspec
A	Ghidra/Processors/AARCH64/data/languages/AARCH64_golang.register.info
M	Ghidra/Processors/AARCH64/data/languages/AppleSilicon.ldefs
```

Co-authored-by: pgoodman <43664+pgoodman@users.noreply.github.com>
2024-04-29 11:17:17 -04:00
Eric Kilmer ebaea7183a CI: Specifically use macos-12 image (#261)
macos-latest now points to Apple Silicon macos-14 image, which is
causing some tests to fail.
2024-04-29 10:48:00 -04:00
auto-updater[bot] 95e45d8dd9 Update Ghidra HEAD to commit 9abfa3da8 (#259)
* Bump Ghidra HEAD commit 9abfa3da8

Changed files:

```
M	Ghidra/Features/Decompiler/src/decompile/cpp/Makefile
M	Ghidra/Features/Decompiler/src/decompile/cpp/address.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/address.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/block.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/block.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/fspec.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/funcdata.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/funcdata_varnode.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/jumptable.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/jumptable.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/modelrules.hh
A	Ghidra/Features/Decompiler/src/decompile/cpp/multiprecision.cc
A	Ghidra/Features/Decompiler/src/decompile/cpp/multiprecision.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/ruleaction.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/ruleaction.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/slgh_compile.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/varnode.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/varnode.hh
A	Ghidra/Features/Decompiler/src/decompile/datatests/divopt.xml
A	Ghidra/Features/Decompiler/src/decompile/datatests/ifswitch.xml
M	Ghidra/Processors/AARCH64/data/languages/AARCH64_win.cspec
M	Ghidra/Processors/AARCH64/data/languages/AARCH64ldst.sinc
M	Ghidra/Processors/PowerPC/certification.manifest
M	Ghidra/Processors/PowerPC/data/languages/ppc_32_be.cspec
M	Ghidra/Processors/PowerPC/data/languages/ppc_32_e500_be.cspec
M	Ghidra/Processors/PowerPC/data/languages/ppc_32_e500_le.cspec
M	Ghidra/Processors/PowerPC/data/languages/ppc_32_e500mc_be.cspec
M	Ghidra/Processors/PowerPC/data/languages/ppc_32_e500mc_le.cspec
M	Ghidra/Processors/PowerPC/data/languages/ppc_32_le.cspec
M	Ghidra/Processors/PowerPC/data/languages/ppc_64_32.cspec
M	Ghidra/Processors/PowerPC/data/patterns/PPC_BE_patterns.xml
A	Ghidra/Processors/PowerPC/data/patterns/PPC_LE_patterns.xml
M	Ghidra/Processors/PowerPC/data/patterns/patternconstraints.xml
```

* Add new files

---------

Co-authored-by: Eric Kilmer <eric.d.kilmer@gmail.com>
2024-04-22 10:02:27 -04:00
auto-updater[bot] f05a833db4 Update Ghidra HEAD to commit 6c60bd031 (#258)
Bump Ghidra HEAD commit 6c60bd031

Changed files:

```
M	Ghidra/Processors/tricore/data/languages/tricore.cspec
```

Co-authored-by: pgoodman <43664+pgoodman@users.noreply.github.com>
2024-04-15 08:39:16 -04:00
Eric Kilmer 231a28b524 Ghidra 11.0.3 (#257) 2024-04-12 10:17:08 -04:00
auto-updater[bot] 33ac2ef4f6 Update Ghidra HEAD to commit cae9190c1 (#256)
* Bump Ghidra HEAD commit cae9190c1

Changed files:

```
M	Ghidra/Features/Decompiler/src/decompile/cpp/emulate.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/fspec.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/fspec.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/heritage.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/jumptable.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/jumptable.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/marshal.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/modelrules.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/modelrules.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/printc.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/printc.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/sleigh.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/sleighexample.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/test.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/test.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/type.cc
M	Ghidra/Features/Decompiler/src/decompile/datatests/partialsplit.xml
M	Ghidra/Features/Decompiler/src/decompile/datatests/readvolatile.xml
M	Ghidra/Features/Decompiler/src/decompile/unittests/testparamstore.cc
M	Ghidra/Processors/AARCH64/data/patterns/AARCH64_LE_patterns.xml
M	Ghidra/Processors/AARCH64/src/main/java/ghidra/app/util/bin/format/elf/relocation/AARCH64_ElfRelocationHandler.java
M	Ghidra/Processors/ARM/src/main/java/ghidra/app/util/bin/format/elf/relocation/ARM_ElfRelocationHandler.java
M	Ghidra/Processors/Loongarch/src/main/java/ghidra/app/util/bin/format/elf/relocation/Loongarch_ElfRelocationHandler.java
M	Ghidra/Processors/MIPS/src/main/java/ghidra/app/util/bin/format/elf/relocation/MIPS_ElfRelocationHandler.java
M	Ghidra/Processors/PowerPC/src/main/java/ghidra/app/util/bin/format/elf/relocation/PowerPC64_ElfRelocationHandler.java
M	Ghidra/Processors/PowerPC/src/main/java/ghidra/app/util/bin/format/elf/relocation/PowerPC_ElfRelocationHandler.java
M	Ghidra/Processors/RISCV/src/main/java/ghidra/app/util/bin/format/elf/relocation/RISCV_ElfRelocationHandler.java
M	Ghidra/Processors/Sparc/src/main/java/ghidra/app/util/bin/format/elf/relocation/SPARC_ElfRelocationHandler.java
M	Ghidra/Processors/SuperH4/src/main/java/ghidra/app/util/bin/format/elf/relocation/SH_ElfRelocationHandler.java
M	Ghidra/Processors/V850/data/languages/V850.cspec
M	Ghidra/Processors/tricore/data/languages/tricore.cspec
M	Ghidra/Processors/tricore/src/main/java/ghidra/app/util/bin/format/elf/relocation/Tricore_ElfRelocationHandler.java
M	Ghidra/Processors/x86/data/languages/x86-64-gcc.cspec
M	Ghidra/Processors/x86/src/main/java/ghidra/app/util/bin/format/elf/relocation/X86_32_ElfRelocationHandler.java
M	Ghidra/Processors/x86/src/main/java/ghidra/app/util/bin/format/elf/relocation/X86_64_ElfRelocationHandler.java
```

* Remove patches merged upstream
2024-04-08 08:27:01 -04:00
Eric Kilmer 34a699c3bd Update stable to Ghidra v11.0.2 (#255)
* Update spec files list
2024-04-01 15:26:18 -04:00
auto-updater[bot] 05e1de0a8c Update Ghidra HEAD to commit 2a7897c36 (#254)
Bump Ghidra HEAD commit 2a7897c36

Changed files:

```
M	Ghidra/Features/Decompiler/src/decompile/.cproject
M	Ghidra/Features/Decompiler/src/decompile/cpp/cast.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/coreaction.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/coreaction.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/emulateutil.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/ifacedecomp.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/marshal.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/prettyprint.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/prettyprint.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/printlanguage.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/printlanguage.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/sleigh_arch.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/slgh_compile.cc
M	Ghidra/Processors/AARCH64/src/main/java/ghidra/app/util/bin/format/elf/relocation/AARCH64_ElfRelocationType.java
M	Ghidra/Processors/ARM/certification.manifest
M	Ghidra/Processors/ARM/data/languages/ARM.ldefs
M	Ghidra/Processors/ARM/data/languages/ARM.sinc
A	Ghidra/Processors/ARM/data/languages/ARM8m_be.slaspec
A	Ghidra/Processors/ARM/data/languages/ARM8m_le.slaspec
M	Ghidra/Processors/ARM/data/languages/ARMTHUMBinstructions.sinc
A	Ghidra/Processors/ARM/data/languages/ARM_CDE.sinc
M	Ghidra/Processors/ARM/data/languages/ARMinstructions.sinc
M	Ghidra/Processors/ARM/src/main/java/ghidra/app/util/bin/format/elf/relocation/ARM_ElfRelocationType.java
A	Ghidra/Processors/ARM/src/test.processors/java/ghidra/test/processors/ARM_v8m_O0_EmulatorTest.java
A	Ghidra/Processors/ARM/src/test.processors/java/ghidra/test/processors/ARM_v8m_O3_EmulatorTest.java
M	Ghidra/Processors/Atmel/src/main/java/ghidra/app/util/bin/format/elf/relocation/AVR8_ElfRelocationType.java
M	Ghidra/Processors/Loongarch/src/main/java/ghidra/app/util/bin/format/elf/relocation/Loongarch_ElfRelocationType.java
M	Ghidra/Processors/MIPS/data/patterns/MIPS_BE_patterns.xml
M	Ghidra/Processors/MIPS/data/patterns/MIPS_LE_patterns.xml
M	Ghidra/Processors/MIPS/src/main/java/ghidra/app/util/bin/format/elf/relocation/MIPS_ElfRelocationContext.java
M	Ghidra/Processors/MIPS/src/main/java/ghidra/app/util/bin/format/elf/relocation/MIPS_ElfRelocationType.java
M	Ghidra/Processors/PowerPC/data/languages/ppc_instructions.sinc
M	Ghidra/Processors/PowerPC/src/main/java/ghidra/app/util/bin/format/elf/relocation/PowerPC64_ElfRelocationType.java
M	Ghidra/Processors/PowerPC/src/main/java/ghidra/app/util/bin/format/elf/relocation/PowerPC_ElfRelocationHandler.java
M	Ghidra/Processors/PowerPC/src/main/java/ghidra/app/util/bin/format/elf/relocation/PowerPC_ElfRelocationType.java
M	Ghidra/Processors/RISCV/src/main/java/ghidra/app/util/bin/format/elf/relocation/RISCV_ElfRelocationType.java
M	Ghidra/Processors/Sparc/certification.manifest
A	Ghidra/Processors/Sparc/data/languages/Sparc.dwarf
M	Ghidra/Processors/Sparc/data/languages/SparcV9.ldefs
M	Ghidra/Processors/Sparc/src/main/java/ghidra/app/util/bin/format/elf/relocation/SPARC_ElfRelocationType.java
M	Ghidra/Processors/SuperH4/src/main/java/ghidra/app/util/bin/format/elf/relocation/SH_ElfRelocationType.java
M	Ghidra/Processors/TI_MSP430/data/languages/TI430Common.sinc
M	Ghidra/Processors/TI_MSP430/data/languages/TI430X.sinc
M	Ghidra/Processors/Toy/data/languages/old/v01stuff/toy.sinc
M	Ghidra/Processors/Xtensa/data/languages/xtensa.cspec
M	Ghidra/Processors/eBPF/src/main/java/ghidra/app/util/bin/format/elf/relocation/eBPF_ElfRelocationType.java
M	Ghidra/Processors/tricore/certification.manifest
M	Ghidra/Processors/tricore/data/languages/tricore.pspec
M	Ghidra/Processors/tricore/data/languages/tricore.sinc
A	Ghidra/Processors/tricore/data/patterns/patternconstraints.xml
A	Ghidra/Processors/tricore/data/patterns/tricore_patterns.xml
A	Ghidra/Processors/tricore/src/main/java/ghidra/app/util/bin/format/elf/relocation/Tricore_ElfRelocationHandler.java
A	Ghidra/Processors/tricore/src/main/java/ghidra/app/util/bin/format/elf/relocation/Tricore_ElfRelocationType.java
M	Ghidra/Processors/x86/data/languages/ia.sinc
M	Ghidra/Processors/x86/src/main/java/ghidra/app/util/bin/format/elf/relocation/X86_32_ElfRelocationType.java
M	Ghidra/Processors/x86/src/main/java/ghidra/app/util/bin/format/elf/relocation/X86_64_ElfRelocationContext.java
M	Ghidra/Processors/x86/src/main/java/ghidra/app/util/bin/format/elf/relocation/X86_64_ElfRelocationType.java
```

Co-authored-by: ekilmer <816362+ekilmer@users.noreply.github.com>
2024-04-01 11:37:00 -04:00
auto-updater[bot] 24b9034914 Update Ghidra HEAD to commit 317a88148 (#245)
Upstream has added a compression mechanism for compiled sleigh files. They use Zlib to perform the compression and have added the source code to the Ghidra repo. However, this commit does not use Ghidra's Zlib source and instead searches for it on the host.

This commit also fixes a number of bugs that prevent various parts of the CI pipeline from working on supported OSes. These patches will be reported upstream.

Changed files:

```
M	Ghidra/Features/Decompiler/src/decompile/cpp/Makefile
M	Ghidra/Features/Decompiler/src/decompile/cpp/address.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/architecture.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/block.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/comment.hh
A	Ghidra/Features/Decompiler/src/decompile/cpp/compression.cc
A	Ghidra/Features/Decompiler/src/decompile/cpp/compression.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/float.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/float.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/flow.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/fspec.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/fspec.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/funcdata.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/funcdata_block.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/ifacedecomp.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/inject_sleigh.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/jumptable.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/marshal.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/marshal.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/op.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/op.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/options.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/pcodeparse.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/pcodeparse.y
M	Ghidra/Features/Decompiler/src/decompile/cpp/semantics.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/semantics.hh
A	Ghidra/Features/Decompiler/src/decompile/cpp/slaformat.cc
A	Ghidra/Features/Decompiler/src/decompile/cpp/slaformat.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/sleigh.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/sleigh_arch.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/sleighbase.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/sleighbase.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/slgh_compile.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/slgh_compile.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/slghparse.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/slghparse.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/slghparse.y
M	Ghidra/Features/Decompiler/src/decompile/cpp/slghpatexpress.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/slghpatexpress.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/slghpattern.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/slghpattern.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/slghscan.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/slghscan.l
M	Ghidra/Features/Decompiler/src/decompile/cpp/slghsymbol.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/slghsymbol.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/space.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/space.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/translate.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/translate.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/type.cc
M	Ghidra/Features/Decompiler/src/decompile/unittests/testfuncproto.cc
M	Ghidra/Features/Decompiler/src/decompile/unittests/testmarshal.cc
A	Ghidra/Features/Decompiler/src/decompile/zlib/README.txt
A	Ghidra/Features/Decompiler/src/decompile/zlib/adler32.c
A	Ghidra/Features/Decompiler/src/decompile/zlib/deflate.c
A	Ghidra/Features/Decompiler/src/decompile/zlib/deflate.h
A	Ghidra/Features/Decompiler/src/decompile/zlib/gzguts.h
A	Ghidra/Features/Decompiler/src/decompile/zlib/inffast.c
A	Ghidra/Features/Decompiler/src/decompile/zlib/inffast.h
A	Ghidra/Features/Decompiler/src/decompile/zlib/inffixed.h
A	Ghidra/Features/Decompiler/src/decompile/zlib/inflate.c
A	Ghidra/Features/Decompiler/src/decompile/zlib/inflate.h
A	Ghidra/Features/Decompiler/src/decompile/zlib/inftrees.c
A	Ghidra/Features/Decompiler/src/decompile/zlib/inftrees.h
A	Ghidra/Features/Decompiler/src/decompile/zlib/trees.c
A	Ghidra/Features/Decompiler/src/decompile/zlib/trees.h
A	Ghidra/Features/Decompiler/src/decompile/zlib/zconf.h
A	Ghidra/Features/Decompiler/src/decompile/zlib/zlib.h
A	Ghidra/Features/Decompiler/src/decompile/zlib/zutil.c
A	Ghidra/Features/Decompiler/src/decompile/zlib/zutil.h
M	Ghidra/Processors/68000/data/languages/68000.ldefs
M	Ghidra/Processors/AARCH64/certification.manifest
M	Ghidra/Processors/AARCH64/data/languages/AARCH64.ldefs
M	Ghidra/Processors/AARCH64/data/languages/AARCH64.opinion
A	Ghidra/Processors/AARCH64/data/languages/AARCH64_swift.cspec
M	Ghidra/Processors/AARCH64/data/languages/AppleSilicon.ldefs
M	Ghidra/Processors/ARM/data/languages/ARM.ldefs
M	Ghidra/Processors/Loongarch/data/languages/loongarch.ldefs
M	Ghidra/Processors/MIPS/data/languages/mips.ldefs
M	Ghidra/Processors/PA-RISC/data/languages/pa-risc.sinc
M	Ghidra/Processors/PowerPC/data/languages/ppc.ldefs
M	Ghidra/Processors/RISCV/data/languages/riscv.ldefs
M	Ghidra/Processors/Sparc/data/languages/SparcV9.ldefs
M	Ghidra/Processors/SuperH4/data/languages/SuperH4.ldefs
M	Ghidra/Processors/Xtensa/data/languages/xtensa.ldefs
M	Ghidra/Processors/x86/certification.manifest
A	Ghidra/Processors/x86/data/languages/x86-64-swift.cspec
M	Ghidra/Processors/x86/data/languages/x86.ldefs
M	Ghidra/Processors/x86/data/languages/x86.opinion
```
2024-04-01 09:58:27 -04:00
dependabot[bot] f2323af0ee build(deps): bump softprops/action-gh-release from 2.0.3 to 2.0.4 (#249)
Bumps [softprops/action-gh-release](https://github.com/softprops/action-gh-release) from 2.0.3 to 2.0.4.
- [Release notes](https://github.com/softprops/action-gh-release/releases)
- [Changelog](https://github.com/softprops/action-gh-release/blob/master/CHANGELOG.md)
- [Commits](https://github.com/softprops/action-gh-release/compare/v2.0.3...v2.0.4)

---
updated-dependencies:
- dependency-name: softprops/action-gh-release
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-18 10:38:21 -04:00
dependabot[bot] c3908f6d90 build(deps): bump softprops/action-gh-release from 2.0.2 to 2.0.3 (#248)
Bumps [softprops/action-gh-release](https://github.com/softprops/action-gh-release) from 2.0.2 to 2.0.3.
- [Release notes](https://github.com/softprops/action-gh-release/releases)
- [Changelog](https://github.com/softprops/action-gh-release/blob/master/CHANGELOG.md)
- [Commits](https://github.com/softprops/action-gh-release/compare/v2.0.2...v2.0.3)

---
updated-dependencies:
- dependency-name: softprops/action-gh-release
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-12 09:14:23 -04:00
dependabot[bot] 6924bbce83 build(deps): bump softprops/action-gh-release from 0.1.15 to 2.0.2 (#247)
Bumps [softprops/action-gh-release](https://github.com/softprops/action-gh-release) from 0.1.15 to 2.0.2.
- [Release notes](https://github.com/softprops/action-gh-release/releases)
- [Changelog](https://github.com/softprops/action-gh-release/blob/master/CHANGELOG.md)
- [Commits](https://github.com/softprops/action-gh-release/compare/v0.1.15...v2.0.2)

---
updated-dependencies:
- dependency-name: softprops/action-gh-release
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-11 09:08:06 -04:00
auto-updater[bot] 1c23eba9ea Update Ghidra HEAD to commit c5bad0a88 (#244)
Bump Ghidra HEAD commit c5bad0a88

Changed files:

```
M	Ghidra/Processors/AARCH64/data/languages/AARCH64base.sinc
M	Ghidra/Processors/tricore/data/languages/tricore.cspec
```

Co-authored-by: pgoodman <43664+pgoodman@users.noreply.github.com>
2024-02-28 15:48:37 -05:00
auto-updater[bot] 0353b200d8 Update Ghidra HEAD to commit 6d6d0317e (#243)
Bump Ghidra HEAD commit 6d6d0317e

Changed files:

```
M	Ghidra/Features/Decompiler/src/decompile/cpp/grammar.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/grammar.y
M	Ghidra/Features/Decompiler/src/decompile/cpp/jumptable.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/type.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/type.hh
D	Ghidra/Processors/AARCH64/src/main/java/ghidra/app/util/bin/format/elf/relocation/AARCH64_ElfRelocationConstants.java
M	Ghidra/Processors/AARCH64/src/main/java/ghidra/app/util/bin/format/elf/relocation/AARCH64_ElfRelocationHandler.java
A	Ghidra/Processors/AARCH64/src/main/java/ghidra/app/util/bin/format/elf/relocation/AARCH64_ElfRelocationType.java
D	Ghidra/Processors/ARM/src/main/java/ghidra/app/util/bin/format/elf/relocation/ARM_ElfRelocationConstants.java
M	Ghidra/Processors/ARM/src/main/java/ghidra/app/util/bin/format/elf/relocation/ARM_ElfRelocationContext.java
M	Ghidra/Processors/ARM/src/main/java/ghidra/app/util/bin/format/elf/relocation/ARM_ElfRelocationHandler.java
A	Ghidra/Processors/ARM/src/main/java/ghidra/app/util/bin/format/elf/relocation/ARM_ElfRelocationType.java
M	Ghidra/Processors/ARM/src/main/java/ghidra/app/util/bin/format/elf/relocation/ElfArmRelocationFixupHandler.java
D	Ghidra/Processors/Atmel/src/main/java/ghidra/app/util/bin/format/elf/AVR8_ElfRelocationConstants.java
M	Ghidra/Processors/Atmel/src/main/java/ghidra/app/util/bin/format/elf/relocation/AVR32_ElfRelocationHandler.java
R073	Ghidra/Processors/Atmel/src/main/java/ghidra/app/util/bin/format/elf/AVR32_ElfRelocationConstants.java	Ghidra/Processors/Atmel/src/main/java/ghidra/app/util/bin/format/elf/relocation/AVR32_ElfRelocationType.java
M	Ghidra/Processors/Atmel/src/main/java/ghidra/app/util/bin/format/elf/relocation/AVR8_ElfRelocationHandler.java
A	Ghidra/Processors/Atmel/src/main/java/ghidra/app/util/bin/format/elf/relocation/AVR8_ElfRelocationType.java
D	Ghidra/Processors/Loongarch/src/main/java/ghidra/app/util/bin/format/elf/relocation/Loongarch_ElfRelocationConstants.java
M	Ghidra/Processors/Loongarch/src/main/java/ghidra/app/util/bin/format/elf/relocation/Loongarch_ElfRelocationHandler.java
A	Ghidra/Processors/Loongarch/src/main/java/ghidra/app/util/bin/format/elf/relocation/Loongarch_ElfRelocationType.java
D	Ghidra/Processors/MIPS/src/main/java/ghidra/app/util/bin/format/elf/relocation/MIPS_ElfRelocationConstants.java
M	Ghidra/Processors/MIPS/src/main/java/ghidra/app/util/bin/format/elf/relocation/MIPS_ElfRelocationContext.java
M	Ghidra/Processors/MIPS/src/main/java/ghidra/app/util/bin/format/elf/relocation/MIPS_ElfRelocationHandler.java
A	Ghidra/Processors/MIPS/src/main/java/ghidra/app/util/bin/format/elf/relocation/MIPS_ElfRelocationType.java
M	Ghidra/Processors/PIC/src/main/java/ghidra/app/util/bin/format/elf/relocation/PIC30_ElfRelocationContext.java
M	Ghidra/Processors/PIC/src/main/java/ghidra/app/util/bin/format/elf/relocation/PIC30_ElfRelocationHandler.java
A	Ghidra/Processors/PIC/src/main/java/ghidra/app/util/bin/format/elf/relocation/PIC30_ElfRelocationType.java
M	Ghidra/Processors/PowerPC/src/main/java/ghidra/app/util/bin/format/elf/extend/PowerPC64_ElfExtension.java
D	Ghidra/Processors/PowerPC/src/main/java/ghidra/app/util/bin/format/elf/relocation/PowerPC64_ElfRelocationConstants.java
M	Ghidra/Processors/PowerPC/src/main/java/ghidra/app/util/bin/format/elf/relocation/PowerPC64_ElfRelocationHandler.java
A	Ghidra/Processors/PowerPC/src/main/java/ghidra/app/util/bin/format/elf/relocation/PowerPC64_ElfRelocationType.java
D	Ghidra/Processors/PowerPC/src/main/java/ghidra/app/util/bin/format/elf/relocation/PowerPC_ElfRelocationConstants.java
A	Ghidra/Processors/PowerPC/src/main/java/ghidra/app/util/bin/format/elf/relocation/PowerPC_ElfRelocationContext.java
M	Ghidra/Processors/PowerPC/src/main/java/ghidra/app/util/bin/format/elf/relocation/PowerPC_ElfRelocationHandler.java
A	Ghidra/Processors/PowerPC/src/main/java/ghidra/app/util/bin/format/elf/relocation/PowerPC_ElfRelocationType.java
D	Ghidra/Processors/RISCV/src/main/java/ghidra/app/util/bin/format/elf/relocation/RISCV_ElfRelocationConstants.java
M	Ghidra/Processors/RISCV/src/main/java/ghidra/app/util/bin/format/elf/relocation/RISCV_ElfRelocationContext.java
M	Ghidra/Processors/RISCV/src/main/java/ghidra/app/util/bin/format/elf/relocation/RISCV_ElfRelocationHandler.java
A	Ghidra/Processors/RISCV/src/main/java/ghidra/app/util/bin/format/elf/relocation/RISCV_ElfRelocationType.java
D	Ghidra/Processors/Sparc/src/main/java/ghidra/app/util/bin/format/elf/relocation/SPARC_ElfRelocationConstants.java
M	Ghidra/Processors/Sparc/src/main/java/ghidra/app/util/bin/format/elf/relocation/SPARC_ElfRelocationHandler.java
A	Ghidra/Processors/Sparc/src/main/java/ghidra/app/util/bin/format/elf/relocation/SPARC_ElfRelocationType.java
M	Ghidra/Processors/SuperH4/src/main/java/ghidra/app/util/bin/format/elf/relocation/ElfSH4RelocationFixupHandler.java
D	Ghidra/Processors/SuperH4/src/main/java/ghidra/app/util/bin/format/elf/relocation/SH_ElfRelocationConstants.java
M	Ghidra/Processors/SuperH4/src/main/java/ghidra/app/util/bin/format/elf/relocation/SH_ElfRelocationHandler.java
A	Ghidra/Processors/SuperH4/src/main/java/ghidra/app/util/bin/format/elf/relocation/SH_ElfRelocationType.java
D	Ghidra/Processors/TI_MSP430/src/main/java/ghidra/app/util/bin/format/elf/relocation/MSP430X_ElfRelocationConstants.java
M	Ghidra/Processors/TI_MSP430/src/main/java/ghidra/app/util/bin/format/elf/relocation/MSP430X_ElfRelocationHandler.java
A	Ghidra/Processors/TI_MSP430/src/main/java/ghidra/app/util/bin/format/elf/relocation/MSP430X_ElfRelocationType.java
M	Ghidra/Processors/TI_MSP430/src/main/java/ghidra/app/util/bin/format/elf/relocation/MSP430_ElfRelocationHandler.java
R050	Ghidra/Processors/TI_MSP430/src/main/java/ghidra/app/util/bin/format/elf/relocation/MSP430_ElfRelocationConstants.java	Ghidra/Processors/TI_MSP430/src/main/java/ghidra/app/util/bin/format/elf/relocation/MSP430_ElfRelocationType.java
D	Ghidra/Processors/Xtensa/src/main/java/ghidra/app/util/bin/format/elf/relocation/Xtensa_ElfRelocationConstants.java
M	Ghidra/Processors/Xtensa/src/main/java/ghidra/app/util/bin/format/elf/relocation/Xtensa_ElfRelocationHandler.java
A	Ghidra/Processors/Xtensa/src/main/java/ghidra/app/util/bin/format/elf/relocation/Xtensa_ElfRelocationType.java
D	Ghidra/Processors/eBPF/src/main/java/ghidra/app/util/bin/format/elf/relocation/ElfeBPFRelocationFixupHandler.java
M	Ghidra/Processors/eBPF/src/main/java/ghidra/app/util/bin/format/elf/relocation/eBPF_ElfRelocationHandler.java
R055	Ghidra/Processors/eBPF/src/main/java/ghidra/app/util/bin/format/elf/relocation/eBPF_ElfRelocationConstants.java	Ghidra/Processors/eBPF/src/main/java/ghidra/app/util/bin/format/elf/relocation/eBPF_ElfRelocationType.java
M	Ghidra/Processors/x86/src/main/java/ghidra/app/util/bin/format/elf/relocation/Elfx86_32bitRelocationFixupHandler.java
M	Ghidra/Processors/x86/src/main/java/ghidra/app/util/bin/format/elf/relocation/Elfx86_64bitRelocationFixupHandler.java
D	Ghidra/Processors/x86/src/main/java/ghidra/app/util/bin/format/elf/relocation/X86_32_ElfRelocationConstants.java
M	Ghidra/Processors/x86/src/main/java/ghidra/app/util/bin/format/elf/relocation/X86_32_ElfRelocationHandler.java
A	Ghidra/Processors/x86/src/main/java/ghidra/app/util/bin/format/elf/relocation/X86_32_ElfRelocationType.java
D	Ghidra/Processors/x86/src/main/java/ghidra/app/util/bin/format/elf/relocation/X86_64_ElfRelocationConstants.java
M	Ghidra/Processors/x86/src/main/java/ghidra/app/util/bin/format/elf/relocation/X86_64_ElfRelocationContext.java
M	Ghidra/Processors/x86/src/main/java/ghidra/app/util/bin/format/elf/relocation/X86_64_ElfRelocationHandler.java
A	Ghidra/Processors/x86/src/main/java/ghidra/app/util/bin/format/elf/relocation/X86_64_ElfRelocationType.java
```

Co-authored-by: pgoodman <43664+pgoodman@users.noreply.github.com>
2024-02-19 11:45:54 -05:00
auto-updater[bot] 1dcdea8701 Update Ghidra HEAD to commit 74d52deab (#242)
Bump Ghidra HEAD commit 74d52deab

Changed files:

```
M	Ghidra/Features/Decompiler/src/decompile/cpp/flow.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/flow.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/funcdata.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/funcdata_block.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/funcdata_varnode.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/jumptable.hh
A	Ghidra/Features/Decompiler/src/decompile/datatests/switchreturn.xml
M	Ghidra/Processors/ARM/data/languages/ARMTHUMBinstructions.sinc
M	Ghidra/Processors/ARM/data/languages/ARMinstructions.sinc
M	Ghidra/Processors/MC6800/data/languages/6x09.sinc
M	Ghidra/Processors/Xtensa/data/languages/xtensa.ldefs
M	Ghidra/Processors/Xtensa/data/languages/xtensaInstructions.sinc
M	Ghidra/Processors/Z80/data/languages/z80.slaspec
```

Co-authored-by: pgoodman <43664+pgoodman@users.noreply.github.com>
2024-02-12 09:24:59 -05:00
auto-updater[bot] 76e5cb4aca Update Ghidra HEAD to commit 33f90ba1c (#241)
Bump Ghidra HEAD commit 33f90ba1c

Changed files:

```
M	Ghidra/Processors/Xtensa/src/main/java/ghidra/app/util/bin/format/elf/relocation/Xtensa_ElfRelocationHandler.java
```

Co-authored-by: pgoodman <43664+pgoodman@users.noreply.github.com>
2024-02-05 11:36:04 +11:00
dependabot[bot] 09ba8106d6 build(deps): bump peter-evans/create-pull-request from 5 to 6 (#240)
Bumps [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request) from 5 to 6.
- [Release notes](https://github.com/peter-evans/create-pull-request/releases)
- [Commits](https://github.com/peter-evans/create-pull-request/compare/v5...v6)

---
updated-dependencies:
- dependency-name: peter-evans/create-pull-request
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Alex Cameron <asc@tetsuo.sh>
2024-02-01 19:46:36 +11:00
dependabot[bot] aa46946172 build(deps): bump nick-fields/retry from 2 to 3 (#239)
Bumps [nick-fields/retry](https://github.com/nick-fields/retry) from 2 to 3.
- [Release notes](https://github.com/nick-fields/retry/releases)
- [Changelog](https://github.com/nick-fields/retry/blob/master/.releaserc.js)
- [Commits](https://github.com/nick-fields/retry/compare/v2...v3)

---
updated-dependencies:
- dependency-name: nick-fields/retry
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-01 18:28:46 +11:00
Alex Cameron 6e0feed91c Update stable to Ghidra v11.0.1 (#238) 2024-01-31 09:00:28 -05:00
auto-updater[bot] acabb5ffc5 Update Ghidra HEAD to commit e73d2088e (#237)
Bump Ghidra HEAD commit e73d2088e

Changed files:

```
M	Ghidra/Processors/PowerPC/data/languages/ppc.ldefs
M	Ghidra/Processors/PowerPC/data/languages/ppc_vle.sinc
M	Ghidra/Processors/tricore/data/languages/tc176x.pspec
M	Ghidra/Processors/x86/data/languages/ia.sinc
M	Ghidra/Processors/x86/src/main/java/ghidra/app/util/bin/format/elf/relocation/X86_64_ElfRelocationContext.java
```

Co-authored-by: pgoodman <pgoodman@users.noreply.github.com>
2024-01-29 11:41:41 +11:00
auto-updater[bot] 4becc755e9 Update Ghidra HEAD to commit 85d276bce (#236)
Bump Ghidra HEAD commit 85d276bce

Changed files:

```
M	Ghidra/Features/Decompiler/src/decompile/cpp/condexe.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/condexe.hh
M	Ghidra/Processors/Loongarch/data/languages/loongarch32_instructions.sinc
M	Ghidra/Processors/Loongarch/data/languages/loongarch_main.sinc
M	Ghidra/Processors/PowerPC/certification.manifest
M	Ghidra/Processors/PowerPC/data/languages/4xx.sinc
A	Ghidra/Processors/PowerPC/data/languages/mulhwInstructions.sinc
M	Ghidra/Processors/PowerPC/data/languages/ppc.ldefs
M	Ghidra/Processors/PowerPC/data/languages/ppc_instructions.sinc
M	Ghidra/Processors/PowerPC/data/languages/ppc_isa.sinc
M	Ghidra/Processors/TI_MSP430/build.gradle
M	Ghidra/Processors/TI_MSP430/data/languages/TI430X.sinc
M	Ghidra/Processors/TI_MSP430/data/languages/TI_MSP430.ldefs
M	Ghidra/Processors/TI_MSP430/data/languages/ti_msp430.opinion
A	Ghidra/Processors/TI_MSP430/src/main/java/ghidra/app/util/bin/format/elf/extend/MSP430_ElfExtension.java
A	Ghidra/Processors/TI_MSP430/src/main/java/ghidra/app/util/bin/format/elf/relocation/MSP430X_ElfRelocationConstants.java
A	Ghidra/Processors/TI_MSP430/src/main/java/ghidra/app/util/bin/format/elf/relocation/MSP430X_ElfRelocationHandler.java
A	Ghidra/Processors/TI_MSP430/src/main/java/ghidra/app/util/bin/format/elf/relocation/MSP430_ElfRelocationConstants.java
A	Ghidra/Processors/TI_MSP430/src/main/java/ghidra/app/util/bin/format/elf/relocation/MSP430_ElfRelocationHandler.java
A	Ghidra/Processors/TI_MSP430/src/test.processors/java/ghidra/test/processors/MSP430X_O0_EmulatorTest.java
A	Ghidra/Processors/TI_MSP430/src/test.processors/java/ghidra/test/processors/MSP430X_O3_EmulatorTest.java
A	Ghidra/Processors/TI_MSP430/src/test.processors/java/ghidra/test/processors/MSP430_O0_EmulatorTest.java
A	Ghidra/Processors/TI_MSP430/src/test.processors/java/ghidra/test/processors/MSP430_O3_EmulatorTest.java
```

Co-authored-by: pgoodman <pgoodman@users.noreply.github.com>
2024-01-22 15:01:57 +11:00
dependabot[bot] a1a03dbd26 build(deps): bump actions/cache from 3 to 4 (#235)
Bumps [actions/cache](https://github.com/actions/cache) from 3 to 4.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.com/actions/cache/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-01-18 18:18:36 -05:00
auto-updater[bot] 403275e36c Update Ghidra HEAD to commit 3410dc1ad (#234)
Bump Ghidra HEAD commit 3410dc1ad

Changed files:

```
M	Ghidra/Features/Decompiler/src/decompile/cpp/fspec.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/heritage.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/heritage.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/modelrules.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/modelrules.hh
M	Ghidra/Processors/HCS12/data/languages/HCS_HC12.sinc
M	Ghidra/Processors/x86/data/languages/x86-64-golang.register.info
```

Co-authored-by: pgoodman <pgoodman@users.noreply.github.com>
2024-01-15 15:28:43 +11:00
Eric Kilmer 98158b7ebb CI: Smoketest pcode generation (#233) 2024-01-08 16:18:03 -05:00
auto-updater[bot] e6f6d4398f Update Ghidra HEAD to commit 61f84adc3 (#232)
Bump Ghidra HEAD commit 61f84adc3

Changed files:

```
M	Ghidra/Processors/MIPS/src/main/java/ghidra/app/util/bin/format/elf/extend/MIPS_ElfExtension.java
M	Ghidra/Processors/PowerPC/data/languages/PowerPC.opinion
A	Ghidra/Processors/PowerPC/src/main/java/ghidra/app/util/bin/format/coff/relocation/PowerPC_CoffRelocationHandler.java
```

Co-authored-by: pgoodman <pgoodman@users.noreply.github.com>
2024-01-08 12:08:40 +11:00
Alex Cameron 81a04f2e1c Update stable to Ghidra v11.0 (#230)
* Fix a few more sleigh_RELEASE_IS_HEAD checks

* Update stable sleighspec file list

---------

Co-authored-by: Eric Kilmer <eric.d.kilmer@gmail.com>
2024-01-02 14:50:55 +00:00
auto-updater[bot] a0345f9df2 Update Ghidra HEAD to commit fa8eff4d3 (#231)
Bump Ghidra HEAD commit fa8eff4d3

Changed files:

```
M	Ghidra/Processors/HCS08/certification.manifest
M	Ghidra/Processors/HCS08/data/languages/HC05-M68HC05TB.pspec
A	Ghidra/Processors/HCS08/data/languages/HC05.cspec
M	Ghidra/Processors/HCS08/data/languages/HC05.ldefs
M	Ghidra/Processors/HCS08/data/languages/HC05.pspec
M	Ghidra/Processors/HCS08/data/languages/HCS08.cspec
M	Ghidra/Processors/HCS08/data/languages/HCS_HC.sinc
```

Co-authored-by: pgoodman <pgoodman@users.noreply.github.com>
2024-01-02 14:28:54 +11:00
Eric Kilmer 0c3b79aa33 Switch from "sleigh" to "ghidra" for include directory (#229)
This breaking change only affects header files from upstream Ghidra repository.

Instead of `#include <sleigh/header.hh>`, it will now be
`#include <ghidra/header.hh>` for headers from upstream.

---------

Co-authored-by: Alex Cameron <asc@tetsuo.sh>
2023-12-29 13:35:01 -05:00
Eric Kilmer b4f479a86f Add missing/new files for HEAD release (#228)
* Add new files to HEAD source list(s)

* Install missing headers

* Add extra headers that were missing
2023-12-25 14:10:09 -05:00
Eric Kilmer ee82a39842 Add note about extra ghidra namespace (#185) 2023-12-25 13:43:03 -05:00
auto-updater[bot] 71870b0bcd Update Ghidra HEAD to commit f7013bdfa (#227)
Bump Ghidra HEAD commit f7013bdfa

Changed files:

```
M	Ghidra/Features/Decompiler/src/decompile/cpp/Makefile
A	Ghidra/Features/Decompiler/src/decompile/cpp/analyzesigs.cc
A	Ghidra/Features/Decompiler/src/decompile/cpp/analyzesigs.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/architecture.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/fspec.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/grammar.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/grammar.y
M	Ghidra/Features/Decompiler/src/decompile/cpp/modelrules.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/printc.cc
A	Ghidra/Features/Decompiler/src/decompile/cpp/signature.cc
A	Ghidra/Features/Decompiler/src/decompile/cpp/signature.hh
A	Ghidra/Features/Decompiler/src/decompile/cpp/signature_ghidra.cc
A	Ghidra/Features/Decompiler/src/decompile/cpp/signature_ghidra.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/type.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/type.hh
M	Ghidra/Processors/Atmel/data/languages/avr8.sinc
M	Ghidra/Processors/Atmel/src/test.processors/java/ghidra/test/processors/AVR8_31_GCC_O0_EmulatorTest.java
M	Ghidra/Processors/Atmel/src/test.processors/java/ghidra/test/processors/AVR8_31_GCC_O3_EmulatorTest.java
M	Ghidra/Processors/Atmel/src/test.processors/java/ghidra/test/processors/AVR8_51_GCC_O0_EmulatorTest.java
M	Ghidra/Processors/Atmel/src/test.processors/java/ghidra/test/processors/AVR8_51_GCC_O3_EmulatorTest.java
M	Ghidra/Processors/Atmel/src/test.processors/java/ghidra/test/processors/AVR8_6_GCC_O0_EmulatorTest.java
M	Ghidra/Processors/Atmel/src/test.processors/java/ghidra/test/processors/AVR8_6_GCC_O3_EmulatorTest.java
M	Ghidra/Processors/Atmel/src/test.processors/java/ghidra/test/processors/AVR8_xmega_GCC_O0_EmulatorTest.java
M	Ghidra/Processors/Atmel/src/test.processors/java/ghidra/test/processors/AVR8_xmega_GCC_O3_EmulatorTest.java
A	Ghidra/Processors/Loongarch/src/main/java/ghidra/app/util/bin/format/elf/relocation/Loongarch_ElfRelocationConstants.java
A	Ghidra/Processors/Loongarch/src/main/java/ghidra/app/util/bin/format/elf/relocation/Loongarch_ElfRelocationHandler.java
M	Ghidra/Processors/MIPS/data/languages/mips32Instructions.sinc
M	Ghidra/Processors/PIC/data/languages/PIC24.sinc
M	Ghidra/Processors/PowerPC/certification.manifest
A	Ghidra/Processors/PowerPC/data/languages/SPE_FloatMulAdd.sinc
M	Ghidra/Processors/PowerPC/data/languages/Scalar_SPFP.sinc
M	Ghidra/Processors/PowerPC/data/languages/ppc.ldefs
A	Ghidra/Processors/PowerPC/data/languages/ppc_32_e500mc_be.cspec
A	Ghidra/Processors/PowerPC/data/languages/ppc_32_e500mc_be.slaspec
A	Ghidra/Processors/PowerPC/data/languages/ppc_32_e500mc_le.cspec
A	Ghidra/Processors/PowerPC/data/languages/ppc_32_e500mc_le.slaspec
M	Ghidra/Processors/PowerPC/data/languages/ppc_64_isa_vle_be.slaspec
M	Ghidra/Processors/PowerPC/data/languages/ppc_instructions.sinc
M	Ghidra/Processors/PowerPC/data/languages/ppc_vle.sinc
M	Ghidra/Processors/TI_MSP430/certification.manifest
M	Ghidra/Processors/TI_MSP430/data/languages/TI_MSP430.cspec
A	Ghidra/Processors/TI_MSP430/data/languages/TI_MSP430.dwarf
M	Ghidra/Processors/TI_MSP430/data/languages/TI_MSP430.ldefs
M	Ghidra/Processors/TI_MSP430/data/languages/TI_MSP430X.cspec
A	Ghidra/Processors/TI_MSP430/data/languages/TI_MSP430X.dwarf
M	Ghidra/Processors/x86/data/extensions/rust/unix/cc.xml
M	Ghidra/Processors/x86/src/main/java/ghidra/app/util/bin/format/elf/relocation/X86_64_ElfRelocationContext.java
M	Ghidra/Processors/x86/src/main/java/ghidra/app/util/bin/format/elf/relocation/X86_64_ElfRelocationHandler.java
```

Co-authored-by: pgoodman <pgoodman@users.noreply.github.com>
2023-12-25 12:05:09 -05:00
dependabot[bot] b2cd7abc2e build(deps): bump actions/upload-artifact from 3 to 4 (#226)
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 3 to 4.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-15 18:02:38 +11:00
auto-updater[bot] 40d91fd61b Update Ghidra HEAD to commit 6242fda15 (#225)
Bump Ghidra HEAD commit 6242fda15

Changed files:

```
M	Ghidra/Features/Decompiler/src/decompile/cpp/coreaction.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/double.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/double.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/heritage.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/marshal.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/modelrules.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/modelrules.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/options.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/options.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/prettyprint.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/prettyprint.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/printc.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/printc.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/type.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/type.hh
M	Ghidra/Processors/68000/data/languages/68000.sinc
M	Ghidra/Processors/JVM/src/main/java/ghidra/javaclass/format/ClassFileAnalysisState.java
M	Ghidra/Processors/MIPS/data/languages/mips.ldefs
M	Ghidra/Processors/MIPS/data/languages/mips32Instructions.sinc
M	Ghidra/Processors/RISCV/data/languages/riscv.custom.sinc
M	Ghidra/Processors/SuperH/data/languages/superh.sinc
M	Ghidra/Processors/x86/certification.manifest
A	Ghidra/Processors/x86/data/extensions/rust/unix/cc.xml
A	Ghidra/Processors/x86/data/extensions/rust/unix/probe_fixup.xml
A	Ghidra/Processors/x86/data/extensions/rust/unix/try_fixup.xml
A	Ghidra/Processors/x86/data/extensions/rust/windows/probe_fixup.xml
A	Ghidra/Processors/x86/data/extensions/rust/windows/try_fixup.xml
M	Ghidra/Processors/x86/data/languages/ia.sinc
M	Ghidra/Processors/x86/data/languages/x86-64-gcc.cspec
M	Ghidra/Processors/x86/data/languages/x86-64-win.cspec
M	Ghidra/Processors/x86/data/languages/x86.opinion
M	Ghidra/Processors/x86/data/languages/x86gcc.cspec
M	Ghidra/Processors/x86/data/languages/x86win.cspec
```

Co-authored-by: pgoodman <pgoodman@users.noreply.github.com>
2023-12-11 12:49:48 +11:00
dependabot[bot] 67c695f263 build(deps): bump actions/setup-python from 4 to 5 (#224)
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 4 to 5.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](https://github.com/actions/setup-python/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-07 08:32:27 -05:00
auto-updater[bot] c4cab14295 Update Ghidra HEAD to commit 5fd01c739 (#223)
Bump Ghidra HEAD commit 5fd01c739

Changed files:

```
M	Ghidra/Processors/MC6800/data/languages/6x09.sinc
```

Co-authored-by: pgoodman <pgoodman@users.noreply.github.com>
2023-12-04 09:23:17 -05:00
auto-updater[bot] e46879c87f Update Ghidra HEAD to commit c225fac12 (#221)
Bump Ghidra HEAD commit c225fac12

Changed files:

```
M	Ghidra/Processors/Loongarch/data/languages/ilp32f.cspec
M	Ghidra/Processors/Loongarch/data/languages/loongarch.ldefs
M	Ghidra/Processors/MIPS/data/languages/mips.sinc
A	Ghidra/Processors/Xtensa/Module.manifest
A	Ghidra/Processors/Xtensa/build.gradle
A	Ghidra/Processors/Xtensa/certification.manifest
A	Ghidra/Processors/Xtensa/data/languages/cust.sinc
A	Ghidra/Processors/Xtensa/data/languages/flix.sinc
A	Ghidra/Processors/Xtensa/data/languages/xtensa.cspec
A	Ghidra/Processors/Xtensa/data/languages/xtensa.dwarf
A	Ghidra/Processors/Xtensa/data/languages/xtensa.ldefs
A	Ghidra/Processors/Xtensa/data/languages/xtensa.opinion
A	Ghidra/Processors/Xtensa/data/languages/xtensa.pspec
A	Ghidra/Processors/Xtensa/data/languages/xtensaArch.sinc
A	Ghidra/Processors/Xtensa/data/languages/xtensaInstructions.sinc
A	Ghidra/Processors/Xtensa/data/languages/xtensaMain.sinc
A	Ghidra/Processors/Xtensa/data/languages/xtensa_be.slaspec
A	Ghidra/Processors/Xtensa/data/languages/xtensa_depbits.sinc
A	Ghidra/Processors/Xtensa/data/languages/xtensa_le.slaspec
A	Ghidra/Processors/Xtensa/data/manuals/xtensa.idx
A	Ghidra/Processors/Xtensa/data/patterns/patternconstraints.xml
A	Ghidra/Processors/Xtensa/data/patterns/xtensa_patterns.xml
A	Ghidra/Processors/Xtensa/src/main/java/ghidra/app/util/bin/format/elf/relocation/Xtensa_ElfRelocationConstants.java
A	Ghidra/Processors/Xtensa/src/main/java/ghidra/app/util/bin/format/elf/relocation/Xtensa_ElfRelocationHandler.java
A	Ghidra/Processors/Xtensa/src/main/java/ghidra/program/emulation/XtensaEmulateInstructionStateModifier.java
A	Ghidra/Processors/Xtensa/src/test.processors/java/ghidra/test/processors/Xtensa_O0_EmulatorTest.java
A	Ghidra/Processors/Xtensa/src/test.processors/java/ghidra/test/processors/Xtensa_O3_EmulatorTest.java
```

Co-authored-by: ekilmer <ekilmer@users.noreply.github.com>
2023-11-27 16:18:02 +00:00
auto-updater[bot] 5d9f0a1862 Update Ghidra HEAD to commit eaf6f0e64 (#219)
* Bump Ghidra HEAD commit eaf6f0e64

* Add new files to CMake

```
M	Ghidra/Features/Decompiler/src/decompile/cpp/Makefile
M	Ghidra/Features/Decompiler/src/decompile/cpp/fspec.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/fspec.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/grammar.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/grammar.y
M	Ghidra/Features/Decompiler/src/decompile/cpp/marshal.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/marshal.hh
A	Ghidra/Features/Decompiler/src/decompile/cpp/modelrules.cc
A	Ghidra/Features/Decompiler/src/decompile/cpp/modelrules.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/space.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/translate.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/translate.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/type.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/type.hh
A	Ghidra/Features/Decompiler/src/decompile/datatests/retspecial.xml
M	Ghidra/Features/Decompiler/src/decompile/unittests/testfuncproto.cc
A	Ghidra/Features/Decompiler/src/decompile/unittests/testparamstore.cc
M	Ghidra/Processors/AARCH64/data/languages/AARCH64.cspec
A	Ghidra/Processors/Loongarch/Module.manifest
A	Ghidra/Processors/Loongarch/build.gradle
A	Ghidra/Processors/Loongarch/certification.manifest
A	Ghidra/Processors/Loongarch/data/languages/ilp32d.cspec
A	Ghidra/Processors/Loongarch/data/languages/ilp32f.cspec
A	Ghidra/Processors/Loongarch/data/languages/lasx.sinc
A	Ghidra/Processors/Loongarch/data/languages/lbt.sinc
A	Ghidra/Processors/Loongarch/data/languages/loongarch.ldefs
A	Ghidra/Processors/Loongarch/data/languages/loongarch.opinion
A	Ghidra/Processors/Loongarch/data/languages/loongarch32.pspec
A	Ghidra/Processors/Loongarch/data/languages/loongarch32_f32.slaspec
A	Ghidra/Processors/Loongarch/data/languages/loongarch32_f64.slaspec
A	Ghidra/Processors/Loongarch/data/languages/loongarch32_instructions.sinc
A	Ghidra/Processors/Loongarch/data/languages/loongarch64.pspec
A	Ghidra/Processors/Loongarch/data/languages/loongarch64_f32.slaspec
A	Ghidra/Processors/Loongarch/data/languages/loongarch64_f64.slaspec
A	Ghidra/Processors/Loongarch/data/languages/loongarch64_instructions.sinc
A	Ghidra/Processors/Loongarch/data/languages/loongarch_double.sinc
A	Ghidra/Processors/Loongarch/data/languages/loongarch_float.sinc
A	Ghidra/Processors/Loongarch/data/languages/loongarch_main.sinc
A	Ghidra/Processors/Loongarch/data/languages/lp64d.cspec
A	Ghidra/Processors/Loongarch/data/languages/lp64f.cspec
A	Ghidra/Processors/Loongarch/data/languages/lsx.sinc
A	Ghidra/Processors/Loongarch/data/languages/lvz.sinc
A	Ghidra/Processors/Loongarch/data/manuals/loongarch.idx
A	Ghidra/Processors/Loongarch/data/patterns/loongarch_patterns.xml
A	Ghidra/Processors/Loongarch/data/patterns/patternconstraints.xml
A	Ghidra/Processors/Loongarch/src/main/java/ghidra/app/plugin/core/analysis/LoongsonAnalyzer.java
A	Ghidra/Processors/Loongarch/src/test.processors/java/ghidra/test/processors/Loongarch64_O0_EmulatorTest.java
A	Ghidra/Processors/Loongarch/src/test.processors/java/ghidra/test/processors/Loongarch64_O3_EmulatorTest.java
A	Ghidra/Processors/Loongarch/src/test.processors/java/ghidra/test/processors/Loongarch64f_O0_EmulatorTest.java
A	Ghidra/Processors/Loongarch/src/test.processors/java/ghidra/test/processors/Loongarch64f_O3_EmulatorTest.java
M	Ghidra/Processors/MIPS/src/main/java/ghidra/app/util/bin/format/elf/relocation/MIPS_ElfRelocationHandler.java
```

---------

Co-authored-by: Eric Kilmer <eric.d.kilmer@gmail.com>
2023-11-27 14:27:27 +00:00
auto-updater[bot] f9bbbbcdb0 Update Ghidra HEAD to commit ddf36db43 (#218)
Bump Ghidra HEAD commit ddf36db43

Changed files:

```
M	Ghidra/Features/Decompiler/src/decompile/cpp/ruleaction.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/type.cc
M	Ghidra/Processors/68000/data/languages/68000.sinc
M	Ghidra/Processors/AARCH64/data/languages/AARCH64base.sinc
M	Ghidra/Processors/Atmel/data/languages/avr32a_bit_operations.sinc
M	Ghidra/Processors/HCS12/data/languages/XGATE.sinc
M	Ghidra/Processors/PowerPC/data/languages/ppc.dwarf
M	Ghidra/Processors/tricore/data/languages/tricore.sinc
M	Ghidra/Processors/x86/data/languages/ia.sinc
```

Co-authored-by: pgoodman <pgoodman@users.noreply.github.com>
2023-11-13 12:04:23 +11:00
auto-updater[bot] cfa08a5f9c Update Ghidra HEAD to commit 134806cbe (#217)
Bump Ghidra HEAD commit 134806cbe

Changed files:

```
M	Ghidra/Processors/CR16/Module.manifest
M	Ghidra/Processors/x86/certification.manifest
M	Ghidra/Processors/x86/data/languages/ia.sinc
A	Ghidra/Processors/x86/data/languages/old/x86RealV2.lang
A	Ghidra/Processors/x86/data/languages/old/x86RealV2.trans
A	Ghidra/Processors/x86/data/languages/old/x86V2.lang
A	Ghidra/Processors/x86/data/languages/old/x86V2.trans
A	Ghidra/Processors/x86/data/languages/old/x86_64bit_compat32_v2.lang
A	Ghidra/Processors/x86/data/languages/old/x86_64bit_compat32_v2.trans
A	Ghidra/Processors/x86/data/languages/old/x86_64bit_v2.lang
A	Ghidra/Processors/x86/data/languages/old/x86_64bit_v2.trans
A	Ghidra/Processors/x86/data/languages/old/x86_ProtV2.lang
A	Ghidra/Processors/x86/data/languages/old/x86_ProtV2.trans
A	Ghidra/Processors/x86/data/languages/old/x86smmV2.lang
A	Ghidra/Processors/x86/data/languages/old/x86smmV2.trans
M	Ghidra/Processors/x86/data/languages/x86.ldefs
```

Co-authored-by: pgoodman <pgoodman@users.noreply.github.com>
2023-11-06 11:46:46 +11:00
auto-updater[bot] 7702679f9e Update Ghidra HEAD to commit 7c9aa58aa (#215)
Bump Ghidra HEAD commit 7c9aa58aa

Changed files:

```
M	Ghidra/Features/Decompiler/src/decompile/cpp/slghsymbol.cc
```

Co-authored-by: pgoodman <pgoodman@users.noreply.github.com>
2023-10-30 13:33:15 +11:00
auto-updater[bot] 8ab198294f Update Ghidra HEAD to commit 4c8c6aedb (#214)
Bump Ghidra HEAD commit 4c8c6aedb

Changed files:

```
M	Ghidra/Features/Decompiler/src/decompile/cpp/varmap.cc
```

Co-authored-by: pgoodman <pgoodman@users.noreply.github.com>
2023-10-23 12:56:46 +11:00
auto-updater[bot] 064320f431 Update Ghidra HEAD to commit fae64a82c (#213)
Bump Ghidra HEAD commit fae64a82c

Changed files:

```
M	Ghidra/Features/Decompiler/src/decompile/cpp/blockaction.cc
M	Ghidra/Processors/x86/data/languages/x86-64-win.cspec
```

Co-authored-by: pgoodman <pgoodman@users.noreply.github.com>
2023-10-16 16:08:27 +11:00
auto-updater[bot] 0ea1abe327 Update Ghidra HEAD to commit c24d25f3a (#212)
Bump Ghidra HEAD commit c24d25f3a

Changed files:

```
M	Ghidra/Processors/ARM/data/manuals/ARM.idx
```

Co-authored-by: pgoodman <pgoodman@users.noreply.github.com>
2023-10-09 12:33:02 +11:00
Eric Kilmer 8c12126d65 Update stable to Ghidra v10.4 (#211) 2023-10-04 12:18:22 -04:00
auto-updater[bot] 10ad498c54 Update Ghidra HEAD to commit 54e0ab1a3 (#210)
Bump Ghidra HEAD commit 54e0ab1a3

Changed files:

```
M	Ghidra/Features/Decompiler/src/decompile/cpp/architecture.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/architecture.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/block.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/coreaction.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/double.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/fspec.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/fspec.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/ghidra_arch.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/ghidra_arch.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/grammar.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/grammar.y
M	Ghidra/Features/Decompiler/src/decompile/cpp/options.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/options.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/ruleaction.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/sleigh_arch.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/sleigh_arch.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/type.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/type.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/typeop.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/unionresolve.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/varmap.cc
M	Ghidra/Features/Decompiler/src/decompile/datatests/impliedfield.xml
A	Ghidra/Features/Decompiler/src/decompile/datatests/longdouble.xml
M	Ghidra/Features/Decompiler/src/decompile/datatests/nestedoffset.xml
M	Ghidra/Features/Decompiler/src/decompile/datatests/offsetarray.xml
M	Ghidra/Features/Decompiler/src/decompile/datatests/packstructaccess.xml
M	Ghidra/Processors/x86/data/languages/x86gcc.cspec
```

Co-authored-by: pgoodman <pgoodman@users.noreply.github.com>
2023-10-02 16:59:57 +11:00
auto-updater[bot] 534adad29a Update Ghidra HEAD to commit 650808862 (#209)
Bump Ghidra HEAD commit 650808862

Changed files:

```
M	Ghidra/Features/Decompiler/src/decompile/cpp/coreaction.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/coreaction.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/printc.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/printc.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/type.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/type.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/typeop.cc
A	Ghidra/Features/Decompiler/src/decompile/datatests/ptrtoarray.xml
M	Ghidra/Processors/68000/src/main/java/ghidra/app/plugin/core/analysis/Motorola68KAnalyzer.java
M	Ghidra/Processors/AARCH64/data/languages/AARCH64.cspec
M	Ghidra/Processors/AARCH64/data/languages/AARCH64.pspec
M	Ghidra/Processors/AARCH64/data/languages/AARCH64_ilp32.cspec
M	Ghidra/Processors/ARM/src/main/java/ghidra/app/plugin/core/analysis/ArmAnalyzer.java
M	Ghidra/Processors/MIPS/src/main/java/ghidra/app/plugin/core/analysis/MipsAddressAnalyzer.java
M	Ghidra/Processors/PIC/src/main/java/ghidra/app/plugin/core/analysis/Pic16Analyzer.java
M	Ghidra/Processors/PowerPC/src/main/java/ghidra/app/plugin/core/analysis/PowerPCAddressAnalyzer.java
M	Ghidra/Processors/RISCV/src/main/java/ghidra/app/plugin/core/analysis/RISCVAddressAnalyzer.java
M	Ghidra/Processors/Sparc/src/main/java/ghidra/app/plugin/core/analysis/SparcAnalyzer.java
M	Ghidra/Processors/SuperH4/src/main/java/ghidra/app/plugin/core/analysis/SH4AddressAnalyzer.java
M	Ghidra/Processors/x86/data/languages/ia.sinc
M	Ghidra/Processors/x86/data/languages/lockable.sinc
M	Ghidra/Processors/x86/src/main/java/ghidra/app/plugin/core/analysis/X86Analyzer.java
```

Co-authored-by: pgoodman <pgoodman@users.noreply.github.com>
2023-09-25 12:04:27 +10:00
auto-updater[bot] 393adb711e Update Ghidra HEAD to commit 4561e8335 (#208)
Bump Ghidra HEAD commit 4561e8335

Changed files:

```
M	Ghidra/Features/Decompiler/src/decompile/cpp/Doxyfile
M	Ghidra/Features/Decompiler/src/decompile/cpp/architecture.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/block.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/block.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/cover.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/database.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/fspec.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/funcdata.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/heritage.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/jumptable.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/merge.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/options.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/prettyprint.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/prettyprint.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/printc.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/printc.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/printjava.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/printlanguage.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/printlanguage.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/ruleaction.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/sleigh.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/subflow.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/type.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/typeop.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/variable.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/varmap.cc
A	Ghidra/Features/Decompiler/src/decompile/datatests/boolless.xml
```

Co-authored-by: pgoodman <pgoodman@users.noreply.github.com>
2023-09-18 13:03:13 +10:00
dependabot[bot] fb4dec76cb build(deps): bump tibdex/github-app-token from 1 to 2 (#207)
Bumps [tibdex/github-app-token](https://github.com/tibdex/github-app-token) from 1 to 2.
- [Release notes](https://github.com/tibdex/github-app-token/releases)
- [Commits](https://github.com/tibdex/github-app-token/compare/v1...v2)

---
updated-dependencies:
- dependency-name: tibdex/github-app-token
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-11 16:21:32 +10:00
Alex Cameron 331f4cc2b7 Update stable to Ghidra v10.3.3 (#204) 2023-09-05 14:21:36 +00:00
dependabot[bot] 0d84e6ffb5 build(deps): bump actions/checkout from 3 to 4 (#206)
Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 4.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-05 15:57:27 +10:00
auto-updater[bot] f84470ac10 Update Ghidra HEAD to commit d7d6b44e2 (#205)
Bump Ghidra HEAD commit d7d6b44e2

Changed files:

```
M	Ghidra/Features/Decompiler/src/decompile/cpp/coreaction.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/coreaction.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/double.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/funcdata_varnode.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/variable.hh
M	Ghidra/Processors/ARM/certification.manifest
M	Ghidra/Processors/ARM/data/languages/ARMv8.sinc
M	Ghidra/Processors/ARM/data/patterns/ARM_BE_patterns.xml
M	Ghidra/Processors/ARM/data/patterns/ARM_LE_patterns.xml
M	Ghidra/Processors/Atmel/data/languages/avr8.sinc
M	Ghidra/Processors/RISCV/src/main/java/ghidra/app/util/bin/format/elf/relocation/RISCV_ElfRelocationContext.java
M	Ghidra/Processors/RISCV/src/main/java/ghidra/app/util/bin/format/elf/relocation/RISCV_ElfRelocationHandler.java
M	Ghidra/Processors/x86/data/languages/x86win.cspec
```

Co-authored-by: pgoodman <pgoodman@users.noreply.github.com>
2023-09-04 10:52:58 +10:00
auto-updater[bot] 04d1204eb5 Update Ghidra HEAD to commit b261137b4 (#203)
Bump Ghidra HEAD commit b261137b4

Changed files:

```
M	Ghidra/Processors/RISCV/src/main/java/ghidra/app/util/bin/format/elf/relocation/RISCV_ElfRelocationContext.java
```

Co-authored-by: pgoodman <pgoodman@users.noreply.github.com>
2023-08-28 10:42:35 +10:00
auto-updater[bot] 1c5fad6a6b Update Ghidra HEAD to commit ba5fcdf4e (#202)
Bump Ghidra HEAD commit ba5fcdf4e

Changed files:

```
M	Ghidra/Processors/MIPS/data/languages/mips.ldefs
A	Ghidra/Processors/RISCV/src/main/java/ghidra/app/util/bin/format/elf/relocation/RISCV_ElfRelocationContext.java
M	Ghidra/Processors/RISCV/src/main/java/ghidra/app/util/bin/format/elf/relocation/RISCV_ElfRelocationHandler.java
M	Ghidra/Processors/x86/data/languages/ia.sinc
M	Ghidra/Processors/x86/data/languages/x86-64-gcc.cspec
M	Ghidra/Processors/x86/data/languages/x86gcc.cspec
```

Co-authored-by: pgoodman <pgoodman@users.noreply.github.com>
2023-08-21 11:08:08 +10:00
auto-updater[bot] 459824f983 Update Ghidra HEAD to commit 72fd30080 (#201)
Bump Ghidra HEAD commit 72fd30080

Changed files:

```
M	Ghidra/Features/Decompiler/src/decompile/cpp/merge.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/merge.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/op.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/printc.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/ruleaction.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/xml.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/xml.y
M	Ghidra/Processors/AARCH64/data/languages/AARCH64neon.sinc
```

Co-authored-by: pgoodman <pgoodman@users.noreply.github.com>
2023-08-14 11:37:44 +10:00
auto-updater[bot] ea5986827e Update Ghidra HEAD to commit 26d4bd910 (#200)
Bump Ghidra HEAD commit 26d4bd910

Changed files:

```
M	Ghidra/Features/Decompiler/src/decompile/cpp/architecture.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/architecture.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/marshal.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/options.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/options.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/ruleaction.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/ruleaction.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/type.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/type.hh
A	Ghidra/Features/Decompiler/src/decompile/datatests/nan.xml
M	Ghidra/Processors/MC6800/data/languages/6x09_push.sinc
M	Ghidra/Processors/x86/data/languages/ia.sinc
```

Co-authored-by: pgoodman <pgoodman@users.noreply.github.com>
2023-08-07 11:39:27 +10:00
Alex Cameron 393ed42fc6 Update stable to Ghidra v10.3.2 (#199) 2023-08-02 10:51:50 -04:00
Alex Cameron 57e6d7c79d Remove buggy UBSAN fix from stable patch and regenerate HEAD patches (#198) 2023-08-02 13:53:16 +00:00
Alex Cameron 8c5b8049a6 Update stable to Ghidra v10.3.1 (#197) 2023-08-02 09:04:17 -04:00
auto-updater[bot] 7b1232ec99 Update Ghidra HEAD to commit b0e0c7372 (#196)
Bump Ghidra HEAD commit b0e0c7372

Changed files:

```
M	Ghidra/Features/Decompiler/src/decompile/cpp/ghidra_arch.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/prettyprint.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/type.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/type.hh
```

Co-authored-by: pgoodman <pgoodman@users.noreply.github.com>
2023-07-31 12:20:13 +10:00
auto-updater[bot] f9a4905c31 Update Ghidra HEAD to commit bece81176 (#195)
* Bump Ghidra HEAD commit bece81176

Changed files:

```
M	Ghidra/Features/Decompiler/src/decompile/cpp/cover.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/cover.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/merge.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/merge.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/rangeutil.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/testfunction.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/testfunction.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/variable.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/variable.hh
A	Ghidra/Features/Decompiler/src/decompile/datatests/varcross.xml
M	Ghidra/Features/Decompiler/src/decompile/unittests/testcirclerange.cc
M	Ghidra/Processors/AARCH64/data/languages/AARCH64.opinion
M	Ghidra/Processors/MC6800/data/languages/6x09.sinc
```

* Fix UBSAN patch

* Update stable UBSAN patch

---------

Co-authored-by: pgoodman <pgoodman@users.noreply.github.com>
Co-authored-by: Alex Cameron <asc@tetsuo.sh>
2023-07-25 14:00:08 +10:00
Alex Cameron ff5929e1fc Remove unnecessary sign_extend patch (#194)
The issue was actually with the UBSAN patch to the `sign_extend` function and not the upstream commit itself. When NationalSecurityAgency/ghidra@3c08b44 landed, I had to regenerate the UBSAN patch but I botched the part of the patch that modifies `sign_extend` and introduced this bug.

Now that the UBSAN patch no longer touches this function, I should just get rid of the new patch and things should "just work".
2023-07-20 09:16:37 -04:00
auto-updater[bot] 844e5e07fe Update Ghidra HEAD to commit befa5aa77 (#193)
Bump Ghidra HEAD commit befa5aa77

Changed files:

```
M	Ghidra/Features/Decompiler/src/decompile/cpp/coreaction.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/fspec.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/fspec.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/heritage.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/heritage.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/ifacedecomp.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/ifacedecomp.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/varmap.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/varmap.hh
A	Ghidra/Features/Decompiler/src/decompile/datatests/stackreturn.xml
M	Ghidra/Processors/MC6800/data/languages/6x09.sinc
```

Co-authored-by: pgoodman <pgoodman@users.noreply.github.com>
2023-07-17 11:51:17 +10:00
Alex Cameron 51bd95f360 Add patch to undo regression in sign_extend (#192)
* Undo UBSAN fix for `sign_extend`

* Add patch to CMake configuration
2023-07-12 09:05:27 -04:00
auto-updater[bot] f63b99a700 Update Ghidra HEAD to commit d932173a2 (#191)
Bump Ghidra HEAD commit d932173a2

Changed files:

```
M	Ghidra/Features/Decompiler/src/decompile/cpp/subflow.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/subflow.hh
M	Ghidra/Processors/68000/data/languages/68000.sinc
M	Ghidra/Processors/ARM/src/main/java/ghidra/app/plugin/core/analysis/ArmAnalyzer.java
M	Ghidra/Processors/PowerPC/src/main/java/ghidra/app/plugin/core/analysis/PowerPCAddressAnalyzer.java
M	Ghidra/Processors/x86/data/languages/x86.opinion
M	Ghidra/Processors/x86/src/main/java/ghidra/app/util/bin/format/elf/relocation/X86_64_ElfRelocationContext.java
```

Co-authored-by: pgoodman <pgoodman@users.noreply.github.com>
2023-07-10 10:47:04 +10:00
auto-updater[bot] f1d1eab45f Update Ghidra HEAD to commit 73e80aa1f (#189)
Bump Ghidra HEAD commit 73e80aa1f

Changed files:

```
M	Ghidra/Processors/MC6800/data/languages/6x09.sinc
M	Ghidra/Processors/x86/certification.manifest
A	Ghidra/Processors/x86/data/languages/x86-64-compat32.pspec
M	Ghidra/Processors/x86/data/languages/x86-64.pspec
M	Ghidra/Processors/x86/data/languages/x86.ldefs
```

Co-authored-by: pgoodman <pgoodman@users.noreply.github.com>
2023-07-03 11:07:26 +10:00
auto-updater[bot] 83ae3b5dfe Update Ghidra HEAD to commit 571963265 (#188)
Bump Ghidra HEAD commit 571963265

Changed files:

```
M	Ghidra/Processors/ARM/data/languages/ARMinstructions.sinc
M	Ghidra/Processors/ARM/data/languages/ARMneon.sinc
M	Ghidra/Processors/PIC/data/languages/PIC24.sinc
M	Ghidra/Processors/x86/data/languages/x86-32-golang.cspec
M	Ghidra/Processors/x86/data/languages/x86-64-golang.cspec
```

Co-authored-by: pgoodman <pgoodman@users.noreply.github.com>
2023-06-26 11:29:58 +10:00
auto-updater[bot] 548b28c67d Update Ghidra HEAD to commit 8cc3a9443 (#187)
Bump Ghidra HEAD commit 8cc3a9443

Changed files:

```
M	Ghidra/Features/Decompiler/src/decompile/cpp/architecture.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/architecture.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/double.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/jumptable.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/jumptable.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/marshal.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/options.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/options.hh
M	Ghidra/Features/Decompiler/src/decompile/datatests/partialunion.xml
M	Ghidra/Processors/6502/data/languages/6502.slaspec
M	Ghidra/Processors/68000/certification.manifest
M	Ghidra/Processors/68000/data/languages/68000.cspec
M	Ghidra/Processors/68000/data/languages/68000.ldefs
M	Ghidra/Processors/68000/data/languages/68000.sinc
A	Ghidra/Processors/68000/data/languages/68000_register.cspec
A	Ghidra/Processors/68000/data/patterns/68000_patterns.xml
A	Ghidra/Processors/68000/data/patterns/patternconstraints.xml
M	Ghidra/Processors/8048/data/languages/8048.pspec
M	Ghidra/Processors/8048/data/languages/8048.slaspec
M	Ghidra/Processors/AARCH64/data/languages/AARCH64instructions.sinc
M	Ghidra/Processors/x86/data/languages/x86win.cspec
```

Co-authored-by: pgoodman <pgoodman@users.noreply.github.com>
2023-06-19 12:32:21 +10:00
auto-updater[bot] f23739ee3f Update Ghidra HEAD to commit 0d71657d0 (#186)
* Bump Ghidra HEAD commit 0d71657d0

Changed files:

```
M	Ghidra/Features/Decompiler/src/decompile/cpp/address.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/address.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/coreaction.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/database.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/dynamic.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/float.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/funcdata_op.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/opbehavior.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/printc.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/rangeutil.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/ruleaction.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/ruleaction.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/slghpatexpress.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/slghpatexpress.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/space.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/subflow.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/type.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/type.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/typeop.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/typeop.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/unionresolve.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/varmap.cc
M	Ghidra/Processors/68000/data/manuals/68000.idx
M	Ghidra/Processors/PowerPC/data/languages/ppc_32_be_Mac.cspec
M	Ghidra/Processors/PowerPC/data/languages/ppc_32_e500_be.cspec
M	Ghidra/Processors/PowerPC/data/languages/ppc_32_e500_le.cspec
M	Ghidra/Processors/PowerPC/data/manuals/PowerISA.idx
M	Ghidra/Processors/x86/data/languages/ia.sinc
M	Ghidra/Processors/x86/data/languages/x86-64-golang.register.info
```

* patches: Regenerate UBSAN fixes patch
* NOTE: Sleigh tests have begun failing upstream. We need to figure this out and file an issue to Ghidra.

---------

Co-authored-by: pgoodman <pgoodman@users.noreply.github.com>
Co-authored-by: Alex Cameron <asc@tetsuo.sh>
2023-06-08 16:28:49 +12:00
Eric Kilmer c8cb034afb Fix GitHub Actions trigger patterns 2023-05-30 10:25:53 -04:00
auto-updater[bot] 384d7de32a Update Ghidra HEAD to commit 3e9419d4d (#184)
Bump Ghidra HEAD commit 3e9419d4d

Changed files:

```
M	Ghidra/Features/Decompiler/src/decompile/cpp/callgraph.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/coreaction.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/coreaction.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/database.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/database.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/database_ghidra.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/flow.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/fspec.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/funcdata.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/funcdata.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/op.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/printc.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/printjava.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/ruleaction.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/type.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/type.hh
A	Ghidra/Features/Decompiler/src/decompile/datatests/switchind.xml
M	Ghidra/Processors/AARCH64/data/languages/AARCH64_win.cspec
M	Ghidra/Processors/x86/data/languages/x86-64-win.cspec
```

Co-authored-by: pgoodman <pgoodman@users.noreply.github.com>
2023-05-29 10:38:59 +10:00
auto-updater[bot] d75230a7bc Update Ghidra HEAD to commit 894bd3cfc (#181)
Bump Ghidra HEAD commit 894bd3cfc

Changed files:

```
M	Ghidra/Features/Decompiler/src/decompile/cpp/ruleaction.cc
M	Ghidra/Processors/AARCH64/src/main/java/ghidra/app/util/bin/format/elf/relocation/AARCH64_ElfRelocationHandler.java
M	Ghidra/Processors/PowerPC/data/languages/ppc_a2.sinc
M	Ghidra/Processors/PowerPC/data/languages/ppc_embedded.sinc
M	Ghidra/Processors/PowerPC/data/languages/ppc_instructions.sinc
M	Ghidra/Processors/PowerPC/data/languages/ppc_isa.sinc
M	Ghidra/Processors/PowerPC/data/languages/ppc_vle.sinc
M	Ghidra/Processors/PowerPC/data/languages/quicciii.sinc
```

Co-authored-by: pgoodman <pgoodman@users.noreply.github.com>
2023-05-22 13:25:58 +10:00
Alex Cameron 7e9641e394 Update stable to Ghidra v10.3 (#179)
* sleigh-lift, support: Qualify names with `ghidra` namespace

* Bump Ghidra HEAD commit 4b99900d2

Changed files:

```
M	Ghidra/Processors/68000/data/languages/68000.sinc
M	Ghidra/Processors/PowerPC/data/languages/ppc_instructions.sinc
M	Ghidra/Processors/x86/data/languages/ia.sinc
```
2023-05-16 09:51:01 -04:00
auto-updater[bot] 37b2cbcf1c Update Ghidra HEAD to commit b3616a683 (#178)
Bump Ghidra HEAD commit b3616a683

Changed files:

```
M	Ghidra/Features/Decompiler/src/decompile/cpp/coreaction.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/fspec.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/fspec.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/jumptable.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/type.cc
M	Ghidra/Processors/68000/src/main/java/ghidra/app/plugin/core/analysis/Motorola68KAnalyzer.java
M	Ghidra/Processors/AARCH64/src/main/java/ghidra/app/plugin/core/analysis/AARCH64PltThunkAnalyzer.java
M	Ghidra/Processors/ARM/certification.manifest
M	Ghidra/Processors/ARM/src/main/java/ghidra/app/plugin/core/analysis/ArmAnalyzer.java
A	Ghidra/Processors/BPF/Module.manifest
A	Ghidra/Processors/BPF/build.gradle
A	Ghidra/Processors/BPF/certification.manifest
A	Ghidra/Processors/BPF/data/languages/BPF.cspec
A	Ghidra/Processors/BPF/data/languages/BPF.ldefs
A	Ghidra/Processors/BPF/data/languages/BPF.pspec
A	Ghidra/Processors/BPF/data/languages/BPF.sinc
A	Ghidra/Processors/BPF/data/languages/BPF_le.slaspec
M	Ghidra/Processors/JVM/resources/ArrayTests.java
M	Ghidra/Processors/JVM/resources/GetPutFieldTest.java
M	Ghidra/Processors/JVM/resources/GetPutStaticTest.java
M	Ghidra/Processors/JVM/resources/NewTests.java
M	Ghidra/Processors/JVM/src/main/java/ghidra/javaclass/analyzers/JavaAnalyzer.java
M	Ghidra/Processors/JVM/src/main/java/ghidra/javaclass/analyzers/JvmSwitchAnalyzer.java
M	Ghidra/Processors/MIPS/src/main/java/ghidra/app/plugin/core/analysis/MipsAddressAnalyzer.java
M	Ghidra/Processors/MIPS/src/main/java/ghidra/app/plugin/core/analysis/MipsPreAnalyzer.java
M	Ghidra/Processors/MIPS/src/main/java/ghidra/app/util/bin/format/elf/extend/MIPS_ElfExtension.java
M	Ghidra/Processors/PIC/src/main/java/ghidra/app/plugin/core/analysis/Pic16Analyzer.java
M	Ghidra/Processors/PIC/src/main/java/ghidra/app/plugin/core/analysis/Pic17c7xxAnalyzer.java
M	Ghidra/Processors/PIC/src/main/java/ghidra/app/plugin/core/analysis/Pic18Analyzer.java
M	Ghidra/Processors/PowerPC/src/main/java/ghidra/app/plugin/core/analysis/PPC64CallStubAnalyzer.java
M	Ghidra/Processors/PowerPC/src/main/java/ghidra/app/plugin/core/analysis/PowerPCAddressAnalyzer.java
M	Ghidra/Processors/PowerPC/src/main/java/ghidra/app/util/bin/format/elf/extend/PowerPC64_ElfExtension.java
M	Ghidra/Processors/PowerPC/src/main/java/ghidra/app/util/bin/format/elf/extend/PowerPC_ElfExtension.java
M	Ghidra/Processors/RISCV/src/main/java/ghidra/app/plugin/core/analysis/RISCVAddressAnalyzer.java
M	Ghidra/Processors/Sparc/src/main/java/ghidra/app/plugin/core/analysis/SparcAnalyzer.java
M	Ghidra/Processors/SuperH4/src/main/java/ghidra/app/plugin/core/analysis/SH4AddressAnalyzer.java
M	Ghidra/Processors/SuperH4/src/main/java/ghidra/app/plugin/core/analysis/SH4EarlyAddressAnalyzer.java
A	Ghidra/Processors/eBPF/Module.manifest
A	Ghidra/Processors/eBPF/build.gradle
A	Ghidra/Processors/eBPF/certification.manifest
A	Ghidra/Processors/eBPF/data/languages/eBPF.cspec
A	Ghidra/Processors/eBPF/data/languages/eBPF.dwarf
A	Ghidra/Processors/eBPF/data/languages/eBPF.ldefs
A	Ghidra/Processors/eBPF/data/languages/eBPF.opinion
A	Ghidra/Processors/eBPF/data/languages/eBPF.pspec
A	Ghidra/Processors/eBPF/data/languages/eBPF.sinc
A	Ghidra/Processors/eBPF/data/languages/eBPF_le.slaspec
A	Ghidra/Processors/eBPF/src/main/java/ghidra/app/plugin/core/analysis/eBPFAnalyzer.java
A	Ghidra/Processors/eBPF/src/main/java/ghidra/app/util/bin/format/elf/extend/eBPF_ElfExtension.java
A	Ghidra/Processors/eBPF/src/main/java/ghidra/app/util/bin/format/elf/relocation/ElfeBPFRelocationFixupHandler.java
A	Ghidra/Processors/eBPF/src/main/java/ghidra/app/util/bin/format/elf/relocation/eBPF_ElfRelocationConstants.java
A	Ghidra/Processors/eBPF/src/main/java/ghidra/app/util/bin/format/elf/relocation/eBPF_ElfRelocationHandler.java
M	Ghidra/Processors/x86/certification.manifest
M	Ghidra/Processors/x86/data/languages/ia.sinc
A	Ghidra/Processors/x86/data/languages/x86-32-golang.cspec
A	Ghidra/Processors/x86/data/languages/x86-32-golang.register.info
A	Ghidra/Processors/x86/data/languages/x86-64-golang.cspec
A	Ghidra/Processors/x86/data/languages/x86-64-golang.register.info
M	Ghidra/Processors/x86/data/languages/x86.ldefs
M	Ghidra/Processors/x86/data/languages/x86.opinion
M	Ghidra/Processors/x86/src/main/java/ghidra/app/plugin/core/analysis/X86Analyzer.java
```

Co-authored-by: pgoodman <pgoodman@users.noreply.github.com>
2023-05-08 18:09:40 +10:00
auto-updater[bot] 7c6b742446 Update Ghidra HEAD to commit 80ccdadeb (#177)
Bump Ghidra HEAD commit 80ccdadeb

Changed files:

```
M	Ghidra/Features/Decompiler/src/decompile/cpp/architecture.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/architecture.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/coreaction.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/database.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/funcdata.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/jumptable.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/jumptable.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/marshal.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/merge.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/options.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/options.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/ruleaction.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/ruleaction.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/subflow.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/subflow.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/type.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/type.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/typeop.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/typeop.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/unionresolve.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/variable.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/variable.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/varmap.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/varmap.hh
A	Ghidra/Features/Decompiler/src/decompile/datatests/partialsplit.xml
M	Ghidra/Processors/68000/data/languages/68000.cspec
M	Ghidra/Processors/68000/data/languages/68000.sinc
M	Ghidra/Processors/AARCH64/src/main/java/ghidra/app/util/bin/format/elf/relocation/AARCH64_ElfRelocationHandler.java
M	Ghidra/Processors/ARM/src/main/java/ghidra/app/plugin/core/analysis/ArmAnalyzer.java
M	Ghidra/Processors/ARM/src/main/java/ghidra/app/util/bin/format/elf/relocation/ARM_ElfRelocationHandler.java
M	Ghidra/Processors/HCS12/data/languages/HCS_HC12.sinc
M	Ghidra/Processors/MIPS/src/main/java/ghidra/app/util/bin/format/elf/relocation/MIPS_ElfRelocationHandler.java
M	Ghidra/Processors/PowerPC/src/main/java/ghidra/app/util/bin/format/elf/relocation/PowerPC64_ElfRelocationHandler.java
M	Ghidra/Processors/PowerPC/src/main/java/ghidra/app/util/bin/format/elf/relocation/PowerPC_ElfRelocationHandler.java
M	Ghidra/Processors/RISCV/src/main/java/ghidra/app/util/bin/format/elf/relocation/RISCV_ElfRelocationHandler.java
M	Ghidra/Processors/SuperH4/src/main/java/ghidra/app/util/bin/format/elf/relocation/SH_ElfRelocationHandler.java
M	Ghidra/Processors/x86/certification.manifest
M	Ghidra/Processors/x86/data/languages/avx.sinc
M	Ghidra/Processors/x86/data/languages/avx_manual.sinc
M	Ghidra/Processors/x86/data/languages/ia.sinc
A	Ghidra/Processors/x86/data/languages/lockable.sinc
M	Ghidra/Processors/x86/data/languages/x86-64-gcc.cspec
M	Ghidra/Processors/x86/data/languages/x86-64.slaspec
M	Ghidra/Processors/x86/data/languages/x86.ldefs
M	Ghidra/Processors/x86/data/languages/x86.slaspec
M	Ghidra/Processors/x86/data/languages/x86borland.cspec
M	Ghidra/Processors/x86/data/languages/x86delphi.cspec
M	Ghidra/Processors/x86/data/languages/x86gcc.cspec
M	Ghidra/Processors/x86/src/main/java/ghidra/app/util/bin/format/elf/relocation/X86_32_ElfRelocationHandler.java
M	Ghidra/Processors/x86/src/main/java/ghidra/app/util/bin/format/elf/relocation/X86_64_ElfRelocationHandler.java
```

Co-authored-by: pgoodman <pgoodman@users.noreply.github.com>
2023-05-02 15:42:54 -04:00
auto-updater[bot] b3669ea4bd Update Ghidra HEAD to commit 7891d2611 (#175)
Bump Ghidra HEAD commit 7891d2611

Changed files:

```
M	Ghidra/Processors/AARCH64/data/languages/AARCH64.ldefs
M	Ghidra/Processors/Atmel/ghidra_scripts/CreateAVR8GDTArchiveScript.java
M	Ghidra/Processors/Dalvik/src/main/java/ghidra/dalvik/dex/inject/ConstantPoolDex.java
M	Ghidra/Processors/JVM/ghidra_scripts/CreateJNIGDTArchivesScript.java
M	Ghidra/Processors/JVM/src/main/java/ghidra/app/util/pcodeInject/ConstantPoolJava.java
```

Co-authored-by: pgoodman <pgoodman@users.noreply.github.com>
2023-04-24 12:18:08 +10:00
auto-updater[bot] e1562dd87f Update Ghidra HEAD to commit 84332ef95 (#174)
* Bump Ghidra HEAD commit 84332ef95

Changed files:

```
M	Ghidra/Features/Decompiler/src/decompile/cpp/sleighexample.cc
```

* cmake: Remove Sleigh example patch

---------

Co-authored-by: pgoodman <pgoodman@users.noreply.github.com>
Co-authored-by: Alex Cameron <asc@tetsuo.sh>
2023-04-18 17:43:43 +10:00
auto-updater[bot] 262f8d8421 Update Ghidra HEAD to commit 85cc8ee88 (#172)
Changed files: ALL decompiler sources

New 'ghidra' namespace!

---------

Co-authored-by: Eric Kilmer <eric.d.kilmer@gmail.com>
2023-04-12 08:33:03 -04:00
Artem Dinaburg ef4e13d243 Add CODEOWNERS file (#173) 2023-04-10 23:12:09 +00:00
auto-updater[bot] 6d6335b2c5 Update Ghidra HEAD to commit ca9a56b5f (#171)
Bump Ghidra HEAD commit ca9a56b5f

Changed files:

```
M	Ghidra/Processors/ARM/data/languages/ARM.cspec
M	Ghidra/Processors/MIPS/data/languages/mips32be.cspec
M	Ghidra/Processors/MIPS/data/languages/mips32le.cspec
A	Ghidra/Processors/PowerPC/src/main/java/ghidra/app/util/bin/format/macho/relocation/PowerPC_MachoRelocationConstants.java
A	Ghidra/Processors/PowerPC/src/main/java/ghidra/app/util/bin/format/macho/relocation/PowerPC_MachoRelocationHandler.java
M	Ghidra/Processors/x86/data/languages/x86-64-gcc.cspec
M	Ghidra/Processors/x86/data/languages/x86.opinion
M	Ghidra/Processors/x86/data/languages/x86gcc.cspec
```

Co-authored-by: pgoodman <pgoodman@users.noreply.github.com>
2023-04-10 09:07:44 -04:00
dependabot[bot] 6f03e21e23 build(deps): bump peter-evans/create-pull-request from 4 to 5 (#170)
Bumps [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request) from 4 to 5.
- [Release notes](https://github.com/peter-evans/create-pull-request/releases)
- [Commits](https://github.com/peter-evans/create-pull-request/compare/v4...v5)

---
updated-dependencies:
- dependency-name: peter-evans/create-pull-request
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-04-05 17:12:01 +10:00
auto-updater[bot] cae987f993 Update Ghidra HEAD to commit 02e547dac (#169)
* Bump Ghidra HEAD commit 02e547dac

Changed files:

```
M	Ghidra/Features/Decompiler/src/decompile/cpp/Makefile
M	Ghidra/Features/Decompiler/src/decompile/cpp/coreaction.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/dynamic.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/grammar.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/grammar.y
M	Ghidra/Features/Decompiler/src/decompile/cpp/op.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/opbehavior.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/opbehavior.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/opcodes.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/opcodes.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/pcodeparse.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/pcodeparse.y
M	Ghidra/Features/Decompiler/src/decompile/cpp/printc.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/printlanguage.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/ruleaction.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/ruleaction.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/slgh_compile.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/slghparse.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/slghparse.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/slghparse.y
M	Ghidra/Features/Decompiler/src/decompile/cpp/slghscan.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/slghscan.l
M	Ghidra/Features/Decompiler/src/decompile/cpp/typeop.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/typeop.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/unionresolve.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/xml.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/xml.y
A	Ghidra/Features/Decompiler/src/decompile/datatests/lzcount.xml
M	Ghidra/Processors/68000/data/languages/68000.sinc
M	Ghidra/Processors/68000/src/main/java/ghidra/program/emulation/m68kEmulateInstructionStateModifier.java
M	Ghidra/Processors/AARCH64/data/languages/AARCH64base.sinc
M	Ghidra/Processors/AARCH64/data/languages/AARCH64instructions.sinc
M	Ghidra/Processors/ARM/data/languages/ARM.sinc
M	Ghidra/Processors/ARM/data/languages/ARMTHUMBinstructions.sinc
M	Ghidra/Processors/ARM/data/languages/ARMinstructions.sinc
M	Ghidra/Processors/ARM/src/main/java/ghidra/program/emulation/ARMEmulateInstructionStateModifier.java
M	Ghidra/Processors/MIPS/data/languages/mips.sinc
M	Ghidra/Processors/MIPS/data/languages/mips32Instructions.sinc
M	Ghidra/Processors/MIPS/data/languages/mips64Instructions.sinc
M	Ghidra/Processors/MIPS/data/languages/mipsmicro.sinc
M	Ghidra/Processors/MIPS/src/main/java/ghidra/app/util/bin/format/elf/extend/MIPS_ElfExtension.java
M	Ghidra/Processors/MIPS/src/main/java/ghidra/app/util/bin/format/elf/relocation/MIPS_Elf64Relocation.java
M	Ghidra/Processors/MIPS/src/main/java/ghidra/app/util/bin/format/elf/relocation/MIPS_ElfRelocationConstants.java
M	Ghidra/Processors/MIPS/src/main/java/ghidra/app/util/bin/format/elf/relocation/MIPS_ElfRelocationContext.java
M	Ghidra/Processors/MIPS/src/main/java/ghidra/app/util/bin/format/elf/relocation/MIPS_ElfRelocationHandler.java
M	Ghidra/Processors/MIPS/src/main/java/ghidra/program/emulation/MIPSEmulateInstructionStateModifier.java
M	Ghidra/Processors/PowerPC/data/languages/ppc_common.sinc
M	Ghidra/Processors/PowerPC/data/languages/ppc_instructions.sinc
M	Ghidra/Processors/PowerPC/src/main/java/ghidra/program/emulation/PPCEmulateInstructionStateModifier.java
M	Ghidra/Processors/tricore/data/languages/tricore.sinc
M	Ghidra/Processors/x86/data/languages/ia.sinc
M	Ghidra/Processors/x86/data/languages/lzcnt.sinc
```

* Regenerate patches

---------

Co-authored-by: Eric Kilmer <eric.d.kilmer@gmail.com>
2023-04-03 11:04:47 -04:00
auto-updater[bot] c3564b1e3e Update Ghidra HEAD to commit acb07dd53 (#168)
* Bump Ghidra HEAD commit acb07dd53

Changed files:

```
M	Ghidra/Features/Decompiler/src/decompile/cpp/coreaction.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/funcdata.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/funcdata_varnode.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/merge.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/merge.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/ruleaction.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/ruleaction.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/type.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/type.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/variable.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/variable.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/varmap.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/varnode.cc
A	Ghidra/Features/Decompiler/src/decompile/datatests/piecestruct.xml
M	Ghidra/Processors/ARM/data/languages/ARMTHUMBinstructions.sinc
M	Ghidra/Processors/RISCV/data/languages/riscv.ldefs
M	Ghidra/Processors/RISCV/data/languages/riscv.rv32i.sinc
```

Regenerate RemUsing patch

---------
Co-authored-by: Alex Cameron <asc@tetsuo.sh>
2023-03-28 08:40:37 -04:00
Eric Kilmer 259bccedf0 Add test for patches that remove 'using namespace std' (#155)
If the patch is not present or wrong, this test should fail

Co-authored-by: Duncan Ogilvie <mr.exodia.tpodt@gmail.com>
2023-03-22 20:52:23 -04:00
auto-updater[bot] ddfe4bff8e Update Ghidra and regenerate patches (#167)
* Bump Ghidra HEAD commit a6be09898

* Bump to stable Ghidra 10.2.3

* Add new 'testfuncproto' source file for testing

* Regenerate patches

Better automated refactoring for removal of 'using' declarations in
header files. See https://github.com/ekilmer/remusing_cpp for automated
tool. Some manual fixes are still required, but they are small. Setting
'using namespace std;' in source files is still a manual process due to
edge-cases that are hard to detect.

* Add missing include path for libconfig.h

Only affects 'sleigh_support' library

Changed files:

```
M	Ghidra/Features/Decompiler/src/decompile/cpp/Makefile
M	Ghidra/Features/Decompiler/src/decompile/cpp/address.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/address.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/architecture.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/block.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/capability.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/consolemain.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/coreaction.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/coreaction.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/error.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/filemanage.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/float.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/flow.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/fspec.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/fspec.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/funcdata_block.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/ghidra_process.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/heritage.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/ifacedecomp.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/ifacedecomp.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/inject_ghidra.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/interface.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/jumptable.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/marshal.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/marshal.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/merge.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/op.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/op.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/opcodes.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/partmap.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/printlanguage.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/ruleaction.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/slgh_compile.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/slgh_compile.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/slghsymbol.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/space.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/space.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/test.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/test.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/testfunction.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/testfunction.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/translate.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/type.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/typeop.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/variable.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/variable.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/varnode.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/varnode.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/xml.hh
A	Ghidra/Features/Decompiler/src/decompile/datatests/condconst.xml
A	Ghidra/Features/Decompiler/src/decompile/datatests/condmulti.xml
A	Ghidra/Features/Decompiler/src/decompile/datatests/retstruct.xml
M	Ghidra/Features/Decompiler/src/decompile/unittests/testfloatemu.cc
A	Ghidra/Features/Decompiler/src/decompile/unittests/testfuncproto.cc
M	Ghidra/Features/Decompiler/src/decompile/unittests/testmarshal.cc
M	Ghidra/Processors/6502/data/languages/65c02.slaspec
M	Ghidra/Processors/68000/data/languages/68000.sinc
M	Ghidra/Processors/AARCH64/certification.manifest
M	Ghidra/Processors/AARCH64/data/languages/AARCH64_win.cspec
A	Ghidra/Processors/AARCH64/data/patterns/AARCH64_win_patterns.xml
A	Ghidra/Processors/AARCH64/data/patterns/prepatternconstraints.xml
M	Ghidra/Processors/AARCH64/src/main/java/ghidra/app/util/bin/format/elf/relocation/AARCH64_ElfRelocationHandler.java
M	Ghidra/Processors/AARCH64/src/main/java/ghidra/app/util/bin/format/macho/relocation/AARCH64_MachoRelocationHandler.java
M	Ghidra/Processors/ARM/data/languages/ARM.ldefs
M	Ghidra/Processors/ARM/data/languages/ARMTHUMBinstructions.sinc
M	Ghidra/Processors/ARM/data/languages/ARMneon.sinc
M	Ghidra/Processors/ARM/src/main/java/ghidra/app/util/bin/format/elf/relocation/ARM_ElfRelocationContext.java
M	Ghidra/Processors/ARM/src/main/java/ghidra/app/util/bin/format/elf/relocation/ARM_ElfRelocationHandler.java
M	Ghidra/Processors/ARM/src/main/java/ghidra/app/util/bin/format/macho/relocation/ARM_MachoRelocationHandler.java
M	Ghidra/Processors/Atmel/data/languages/avr32a.slaspec
M	Ghidra/Processors/Atmel/data/languages/avr32a_dsp_operations.sinc
M	Ghidra/Processors/Atmel/src/main/java/ghidra/app/util/bin/format/elf/relocation/AVR32_ElfRelocationHandler.java
M	Ghidra/Processors/Atmel/src/main/java/ghidra/app/util/bin/format/elf/relocation/AVR8_ElfRelocationHandler.java
M	Ghidra/Processors/MC6800/data/languages/6x09.sinc
M	Ghidra/Processors/MIPS/certification.manifest
M	Ghidra/Processors/MIPS/data/languages/mips.sinc
M	Ghidra/Processors/MIPS/data/languages/mips32Instructions.sinc
M	Ghidra/Processors/MIPS/data/languages/mips32R6be.slaspec
M	Ghidra/Processors/MIPS/data/languages/mips32R6le.slaspec
M	Ghidra/Processors/MIPS/data/languages/mips32_fp64.cspec
M	Ghidra/Processors/MIPS/data/languages/mips32be.cspec
M	Ghidra/Processors/MIPS/data/languages/mips32be.slaspec
M	Ghidra/Processors/MIPS/data/languages/mips32be_eabi.cspec
M	Ghidra/Processors/MIPS/data/languages/mips32le.cspec
M	Ghidra/Processors/MIPS/data/languages/mips32le.slaspec
M	Ghidra/Processors/MIPS/data/languages/mips32le_eabi.cspec
M	Ghidra/Processors/MIPS/data/languages/mips64.cspec
M	Ghidra/Processors/MIPS/data/languages/mips64_32_n32.cspec
M	Ghidra/Processors/MIPS/data/languages/mips64_32_o32.cspec
M	Ghidra/Processors/MIPS/data/languages/mips64_32_o64.cspec
M	Ghidra/Processors/MIPS/data/languages/mips64be.slaspec
M	Ghidra/Processors/MIPS/data/languages/mips64le.slaspec
A	Ghidra/Processors/MIPS/data/languages/mips_dsp.sinc
A	Ghidra/Processors/MIPS/data/languages/mips_mt.sinc
M	Ghidra/Processors/MIPS/src/main/java/ghidra/app/plugin/core/analysis/MipsAddressAnalyzer.java
M	Ghidra/Processors/MIPS/src/main/java/ghidra/app/util/bin/format/elf/extend/MIPS_ElfExtension.java
A	Ghidra/Processors/MIPS/src/main/java/ghidra/app/util/bin/format/elf/relocation/MIPS_ElfRelocationContext.java
M	Ghidra/Processors/MIPS/src/main/java/ghidra/app/util/bin/format/elf/relocation/MIPS_ElfRelocationHandler.java
M	Ghidra/Processors/PIC/src/main/java/ghidra/app/util/bin/format/elf/relocation/PIC30_ElfRelocationContext.java
M	Ghidra/Processors/PIC/src/main/java/ghidra/app/util/bin/format/elf/relocation/PIC30_ElfRelocationHandler.java
M	Ghidra/Processors/PowerPC/src/main/java/ghidra/app/util/bin/format/elf/extend/PowerPC_ElfExtension.java
M	Ghidra/Processors/PowerPC/src/main/java/ghidra/app/util/bin/format/elf/relocation/PowerPC64_ElfRelocationHandler.java
M	Ghidra/Processors/PowerPC/src/main/java/ghidra/app/util/bin/format/elf/relocation/PowerPC_ElfRelocationHandler.java
M	Ghidra/Processors/RISCV/data/languages/riscv32-fp.cspec
M	Ghidra/Processors/RISCV/data/languages/riscv32.cspec
M	Ghidra/Processors/RISCV/data/languages/riscv64-fp.cspec
M	Ghidra/Processors/RISCV/data/languages/riscv64.cspec
M	Ghidra/Processors/RISCV/src/main/java/ghidra/app/util/bin/format/elf/relocation/RISCV_ElfRelocationHandler.java
M	Ghidra/Processors/Sparc/data/languages/SparcV9.sinc
M	Ghidra/Processors/Sparc/src/main/java/ghidra/app/util/bin/format/elf/relocation/SPARC_ElfRelocationHandler.java
M	Ghidra/Processors/SuperH4/src/main/java/ghidra/app/util/bin/format/elf/relocation/SH_ElfRelocationHandler.java
M	Ghidra/Processors/Toy/certification.manifest
M	Ghidra/Processors/Toy/data/languages/toy.pspec
M	Ghidra/Processors/tricore/data/languages/tricore.cspec
M	Ghidra/Processors/tricore/data/languages/tricore.ldefs
M	Ghidra/Processors/tricore/data/languages/tricore.sinc
M	Ghidra/Processors/x86/data/languages/ia.sinc
M	Ghidra/Processors/x86/src/main/java/ghidra/app/util/bin/format/coff/relocation/X86_32_CoffRelocationHandler.java
M	Ghidra/Processors/x86/src/main/java/ghidra/app/util/bin/format/coff/relocation/X86_64_CoffRelocationHandler.java
M	Ghidra/Processors/x86/src/main/java/ghidra/app/util/bin/format/elf/relocation/X86_32_ElfRelocationHandler.java
A	Ghidra/Processors/x86/src/main/java/ghidra/app/util/bin/format/elf/relocation/X86_64_ElfRelocationContext.java
M	Ghidra/Processors/x86/src/main/java/ghidra/app/util/bin/format/elf/relocation/X86_64_ElfRelocationHandler.java
M	Ghidra/Processors/x86/src/main/java/ghidra/app/util/bin/format/macho/relocation/X86_32_MachoRelocationHandler.java
M	Ghidra/Processors/x86/src/main/java/ghidra/app/util/bin/format/macho/relocation/X86_64_MachoRelocationHandler.java
```
2023-03-22 19:14:38 -04:00
auto-updater[bot] 186b4fe693 Update Ghidra HEAD to commit d55b7e9aa (#157)
Changed files:

```
M	Ghidra/Features/Decompiler/src/decompile/cpp/block.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/block.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/dynamic.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/dynamic.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/flow.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/flow.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/funcdata.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/funcdata_block.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/jumptable.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/jumptable.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/ruleaction.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/slgh_compile.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/test.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/test.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/testfunction.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/testfunction.hh
M	Ghidra/Processors/MIPS/src/test.slow/java/ghidra/app/plugin/core/analysis/MipsPreAnalyzerTest.java
M	Ghidra/Processors/PowerPC/data/languages/ppc_embedded.sinc
M	Ghidra/Processors/PowerPC/data/languages/ppc_instructions.sinc
M	Ghidra/Processors/V850/data/languages/Instructions/Float.sinc
M	Ghidra/Processors/x86/data/languages/ia.sinc
```

* Update patches.

The "Small improvements to C decompiler testing from CLI" PR was merged!

Fix new code to use `std::` prefix

Co-authored-by: pgoodman <pgoodman@users.noreply.github.com>
Co-authored-by: Eric Kilmer <eric.d.kilmer@gmail.com>
2023-01-16 17:49:22 -05:00
auto-updater[bot] 487732a026 Update Ghidra HEAD to commit 552eb9dd6 (#154)
* Bump Ghidra HEAD commit 552eb9dd6

Changed files:

```
M	Ghidra/Features/Decompiler/src/decompile/cpp/architecture.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/coreaction.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/coreaction.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/database.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/database.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/fspec.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/funcdata.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/funcdata.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/funcdata_varnode.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/merge.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/merge.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/op.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/op.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/printc.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/printlanguage.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/printlanguage.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/ruleaction.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/ruleaction.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/type.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/type.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/typeop.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/typeop.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/userop.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/variable.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/variable.hh
M	Ghidra/Features/Decompiler/src/decompile/cpp/varnode.cc
M	Ghidra/Features/Decompiler/src/decompile/cpp/varnode.hh
A	Ghidra/Features/Decompiler/src/decompile/datatests/concat.xml
M	Ghidra/Processors/ARM/data/languages/ARMTHUMBinstructions.sinc
M	Ghidra/Processors/PowerPC/data/languages/ppc_instructions.sinc
M	Ghidra/Processors/Z80/data/languages/z80.slaspec
```

* Regenerate patches

Co-authored-by: Alex Cameron <asc@tetsuo.sh>
2022-12-28 12:33:12 -05:00
Eric Kilmer 2c197599aa Fix update_ghidra_head script git output parsing
Python string split behaves differently than I assumed:

>>> "".split("\n")
['']

returns a list of size 1 but

>>> "".split()
[]

returns size 0 and

>>> "".splitlines()
[]

also returns size 0
2022-12-19 11:05:48 -05:00
auto-updater[bot] 316c91ccfb Update Ghidra HEAD to commit b707c2ea6 (#153)
Bump Ghidra HEAD commit b707c2ea6

Changed files:

```

```

Co-authored-by: pgoodman <pgoodman@users.noreply.github.com>
2022-12-19 14:11:24 +11:00
Eric Kilmer b80fefc001 Update auto-updater script
Should now show changed files on each update.

Only updates if files that affect this project have changed
2022-12-15 13:15:44 -05:00
Eric Kilmer d3ca7d78d6 Patch to remove 'using namespace std' from headers (#143)
* Update to latest Ghidra commit

* Regenerate patches from real git repo (originally #140)
2022-12-15 11:08:35 -05:00
auto-updater[bot] 7a045dd5e8 Update Ghidra HEAD to commit db932d222 (#151)
Bump Ghidra HEAD commit db932d222

Co-authored-by: pgoodman <pgoodman@users.noreply.github.com>
2022-12-12 13:29:33 +11:00
Duncan Ogilvie f12acdfd99 Set the git identity before patching (#150) 2022-12-05 09:48:40 -05:00
auto-updater[bot] 97933e2ffe Update Ghidra HEAD to commit d182ba8ed (#149)
Bump Ghidra HEAD commit d182ba8ed

Co-authored-by: pgoodman <pgoodman@users.noreply.github.com>
2022-12-05 12:02:07 +11:00
auto-updater[bot] 4b225d9317 Update Ghidra HEAD to commit 522bda39e (#148)
Bump Ghidra HEAD commit 522bda39e

Co-authored-by: pgoodman <pgoodman@users.noreply.github.com>
2022-11-28 14:49:55 +11:00
dependabot[bot] a130f452ac build(deps): bump softprops/action-gh-release from 0.1.14 to 0.1.15 (#147)
Bumps [softprops/action-gh-release](https://github.com/softprops/action-gh-release) from 0.1.14 to 0.1.15.
- [Release notes](https://github.com/softprops/action-gh-release/releases)
- [Changelog](https://github.com/softprops/action-gh-release/blob/master/CHANGELOG.md)
- [Commits](https://github.com/softprops/action-gh-release/compare/v0.1.14...v0.1.15)

---
updated-dependencies:
- dependency-name: softprops/action-gh-release
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-11-22 11:53:31 -05:00
auto-updater[bot] df7b7c4ff2 Update Ghidra HEAD to commit 75ddd08bb (#146)
Bump Ghidra HEAD commit 75ddd08bb

Co-authored-by: pgoodman <pgoodman@users.noreply.github.com>
2022-11-21 11:58:40 +11:00
Eric Kilmer ded4e6ac03 Update to Ghidra 10.2.2 2022-11-16 09:42:04 -05:00
Eric Kilmer a4e41c9b35 CI: Compile with position independent code 2022-11-16 08:51:56 -05:00
Eric Kilmer 56f3346c60 CI: Fix cache env variables 2022-11-15 13:20:05 -05:00
Eric Kilmer 846b99c008 Remove deprecated CI functionality
See https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
2022-11-15 12:13:50 -05:00
Eric Kilmer fbbd3d7fc1 Update to Ghidra 10.2.1 2022-11-14 09:43:00 -05:00
29 changed files with 629 additions and 1013 deletions
+66 -47
View File
@@ -3,15 +3,15 @@ name: Build
on:
push:
branches:
- '*'
- "*"
# Version tags should start with "v"
tags:
- 'v*'
- "v*"
pull_request:
branches:
- '*'
- "*"
jobs:
build:
@@ -20,12 +20,12 @@ jobs:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
os: [ubuntu-latest, macos-13, windows-latest]
build_type: [RelWithDebInfo, Debug]
release: [stable, HEAD]
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Setup Git User for Applying Patches
# See this thread for more details https://github.community/t/github-actions-bot-email-address/17204/5
@@ -51,27 +51,28 @@ jobs:
- name: Install Windows system dependencies
if: runner.os == 'Windows'
uses: nick-fields/retry@v2
uses: nick-fields/retry@v3
with:
timeout_minutes: 10
max_attempts: 3
command: choco install ccache doxygen.install graphviz
command: |
choco install ccache doxygen.install graphviz
vcpkg install zlib:x64-windows-static
- name: Generate cache key
id: cache_key
shell: cmake -P {0}
run: |
string(TIMESTAMP current_date "%Y-%m-%d-%H;%M;%S" UTC)
message("::set-output name=VALUE::build_${{ matrix.os }}_type-${{ matrix.build_type }}-${{ matrix.release }}")
message("::set-output name=timestamp::${current_date}")
file(APPEND "$ENV{GITHUB_ENV}" "CACHE_KEY=build_${{ matrix.os }}_type-${{ matrix.build_type }}-${{ matrix.release }}\n")
file(APPEND "$ENV{GITHUB_ENV}" "CACHE_TIMESTAMP=${current_date}\n")
- name: Update the cache (ccache)
uses: actions/cache@v3
uses: actions/cache@v4
with:
path: "${{ github.workspace }}/ccache"
key: ${{ steps.cache_key.outputs.VALUE }}_ccache_${{ steps.cache_key.outputs.timestamp }}
key: ${{ env.CACHE_KEY }}_ccache_${{ env.CACHE_TIMESTAMP }}
restore-keys: |
${{ steps.cache_key.outputs.VALUE }}_ccache_
${{ env.CACHE_KEY }}_ccache_
- name: Setup ccache
working-directory: "${{ github.workspace }}"
@@ -108,6 +109,10 @@ jobs:
-j 2
-v
- name: Test the project
working-directory: build
run: ctest -VV -C ${{ matrix.build_type }}
- name: Build the docs
run: cmake
--build build
@@ -128,17 +133,30 @@ jobs:
--prefix install
- name: Smoketest sleigh lift
run: ./install/bin/sleigh-lift disassemble x86-64.sla 4881ecc00f0000
run: |
./install/bin/sleigh-lift --version
./install/bin/sleigh-lift disassemble x86-64.sla 4881ecc00f0000
./install/bin/sleigh-lift pcode x86-64.sla 4881ecc00f0000
- name: Test install directory
- name: Test install directory Unix
if: runner.os != 'Windows'
working-directory: tests/find_package
run: |
cmake -B build -S . "-Dsleigh_DIR=${{ github.workspace }}/install/lib/cmake/sleigh" -DCMAKE_BUILD_TYPE=${{ matrix.build_type }}
cmake --build build -j 2 --config ${{ matrix.build_type }}
cd build
ctest -V -C ${{ matrix.build_type }}
- name: Test install directory Windows
if: runner.os == 'Windows'
working-directory: tests/find_package
run: |
cmake -B build -S . "-Dsleigh_DIR=${{ github.workspace }}/install/lib/cmake/sleigh" -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} "-DCMAKE_TOOLCHAIN_FILE=$env:VCPKG_INSTALLATION_ROOT/scripts/buildsystems/vcpkg.cmake" -DVCPKG_TARGET_TRIPLET=x64-windows-static
cmake --build build -j 2 --config ${{ matrix.build_type }}
cd build
ctest -V -C ${{ matrix.build_type }}
- name: Test tool install directory
- name: Test tool install directory Unix
if: runner.os != 'Windows'
working-directory: extra-tools/sleigh-lift
run: |
cmake -B build -S . "-Dsleigh_DIR=${{ github.workspace }}/install/lib/cmake/sleigh" -DCMAKE_BUILD_TYPE=${{ matrix.build_type }}
@@ -146,6 +164,17 @@ jobs:
cmake --install build --config ${{ matrix.build_type }} --prefix install
./install/bin/sleigh-lift --version
./install/bin/sleigh-lift disassemble x86-64.sla 4881ecc00f0000
./install/bin/sleigh-lift pcode x86-64.sla 4881ecc00f0000
- name: Test tool install directory Windows
if: runner.os == 'Windows'
working-directory: extra-tools/sleigh-lift
run: |
cmake -B build -S . "-Dsleigh_DIR=${{ github.workspace }}/install/lib/cmake/sleigh" -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} "-DCMAKE_TOOLCHAIN_FILE=$env:VCPKG_INSTALLATION_ROOT/scripts/buildsystems/vcpkg.cmake" -DVCPKG_TARGET_TRIPLET=x64-windows-static
cmake --build build -j 2 --config ${{ matrix.build_type }}
cmake --install build --config ${{ matrix.build_type }} --prefix install
./install/bin/sleigh-lift --version
./install/bin/sleigh-lift disassemble x86-64.sla 4881ecc00f0000
./install/bin/sleigh-lift pcode x86-64.sla 4881ecc00f0000
- name: Create the packages
run: cmake
@@ -165,71 +194,61 @@ jobs:
- name: Locate the packages (RelWithDebInfo only)
if: matrix.build_type == 'RelWithDebInfo'
shell: bash
id: package_locations
run: |
echo ::set-output name=DEB_PACKAGE_PATH::$(ls build/*.deb)
echo ::set-output name=DEB_PACKAGE_NAME::$(cd build && ls *.deb)
echo "DEB_PACKAGE_PATH=$(ls build/*.deb)" >> $GITHUB_ENV
echo "DEB_PACKAGE_NAME=$(cd build && ls *.deb)" >> $GITHUB_ENV
echo ::set-output name=RPM_PACKAGE_PATH::$(ls build/*.rpm)
echo ::set-output name=RPM_PACKAGE_NAME::$(cd build && ls *.rpm)
echo "RPM_PACKAGE_PATH=$(ls build/*.rpm)" >> $GITHUB_ENV
echo "RPM_PACKAGE_NAME=$(cd build && ls *.rpm)" >> $GITHUB_ENV
# Rename .tar.gz files for OS
pushd build
for f in *.tar.gz; do mv "$f" "${{ runner.os }}-$f"; done
popd
echo ::set-output name=TGZ_PACKAGE_PATH::$(ls build/*.tar.gz)
echo ::set-output name=TGZ_PACKAGE_NAME::$(cd build && ls *.tar.gz)
echo "TGZ_PACKAGE_PATH=$(ls build/*.tar.gz)" >> $GITHUB_ENV
echo "TGZ_PACKAGE_NAME=$(cd build && ls *.tar.gz)" >> $GITHUB_ENV
# DEB Package
- name: Upload the DEB package artifact (RelWithDebInfo only)
if: matrix.build_type == 'RelWithDebInfo' && runner.os == 'Linux'
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: ${{ steps.package_locations.outputs.DEB_PACKAGE_NAME }}
path: ${{ steps.package_locations.outputs.DEB_PACKAGE_PATH }}
name: ${{ env.DEB_PACKAGE_NAME }}
path: ${{ env.DEB_PACKAGE_PATH }}
- name: Release DEB package artifact (RelWithDebInfo only)
uses: softprops/action-gh-release@v0.1.14
uses: softprops/action-gh-release@v2.0.5
if: matrix.build_type == 'RelWithDebInfo' && runner.os == 'Linux' && startsWith(github.ref, 'refs/tags/') && matrix.release == 'stable'
with:
files: ${{ steps.package_locations.outputs.DEB_PACKAGE_PATH }}
files: ${{ env.DEB_PACKAGE_PATH }}
# RPM Package
- name: Upload the RPM package artifact (RelWithDebInfo only)
if: matrix.build_type == 'RelWithDebInfo' && runner.os == 'Linux'
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: ${{ steps.package_locations.outputs.RPM_PACKAGE_NAME }}
path: ${{ steps.package_locations.outputs.RPM_PACKAGE_PATH }}
name: ${{ env.RPM_PACKAGE_NAME }}
path: ${{ env.RPM_PACKAGE_PATH }}
- name: Release RPM package artifact (RelWithDebInfo only)
uses: softprops/action-gh-release@v0.1.14
uses: softprops/action-gh-release@v2.0.5
if: matrix.build_type == 'RelWithDebInfo' && runner.os == 'Linux' && startsWith(github.ref, 'refs/tags/') && matrix.release == 'stable'
with:
files: ${{ steps.package_locations.outputs.RPM_PACKAGE_PATH }}
files: ${{ env.RPM_PACKAGE_PATH }}
# TGZ Package
- name: Upload the TGZ package artifact (RelWithDebInfo only)
if: matrix.build_type == 'RelWithDebInfo'
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: ${{ steps.package_locations.outputs.TGZ_PACKAGE_NAME }}
path: ${{ steps.package_locations.outputs.TGZ_PACKAGE_PATH }}
name: ${{ env.TGZ_PACKAGE_NAME }}
path: ${{ env.TGZ_PACKAGE_PATH }}
- name: Release TGZ package artifact (RelWithDebInfo only)
uses: softprops/action-gh-release@v0.1.14
uses: softprops/action-gh-release@v2.0.5
if: matrix.build_type == 'RelWithDebInfo' && startsWith(github.ref, 'refs/tags/') && matrix.release == 'stable'
with:
files: ${{ steps.package_locations.outputs.TGZ_PACKAGE_PATH }}
# This step is down at the bottom because Windows fails but we still want
# to upload the built binaries, regardless. We also want to see if/when
# Windows tests start passing or are still failing, so there is no special
# handling. GitHub Actions does not support the concept of an allowable
# failure state
- name: Run the tests
working-directory: build
run: ctest -VV -C ${{ matrix.build_type }}
files: ${{ env.TGZ_PACKAGE_PATH }}
- name: ccache stats
run: ccache -s
+15 -6
View File
@@ -12,9 +12,9 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- uses: actions/setup-python@v4
- uses: actions/setup-python@v5
with:
# Use oldest supported version for maximum script compatibility
python-version: '3.7'
@@ -23,11 +23,11 @@ jobs:
id: head_update
run: |
# Sets some outputs. See next step
python3.7 scripts/update_ghidra_head.py --ci
python3 scripts/update_ghidra_head.py --ci
# Need this to run further Actions on the newly created PR
# See here for more details https://github.com/peter-evans/create-pull-request/blob/28fa4848947e0faa7fa50647691d01477589d5e9/docs/concepts-guidelines.md#authenticating-with-github-app-generated-tokens
- uses: tibdex/github-app-token@v1
- uses: tibdex/github-app-token@v2
if: steps.head_update.outputs.did_update
id: generate-token
with:
@@ -36,10 +36,19 @@ jobs:
- name: Create PR
if: steps.head_update.outputs.did_update
uses: peter-evans/create-pull-request@v4
uses: peter-evans/create-pull-request@v6
with:
title: Update Ghidra HEAD to commit ${{ steps.head_update.outputs.short_sha }}
commit-message: Bump Ghidra HEAD commit ${{ steps.head_update.outputs.short_sha }}
commit-message: |
Bump Ghidra HEAD commit ${{ steps.head_update.outputs.short_sha }}
Changed files:
${{ steps.head_update.outputs.changed_files }}
body: |
Changed files:
${{ steps.head_update.outputs.changed_files }}
branch: cron/update-ghidra-${{ steps.head_update.outputs.short_sha }}
delete-branch: true
token: ${{ steps.generate-token.outputs.token }}
+26 -9
View File
@@ -30,7 +30,7 @@ include(cmake/project-is-top-level.cmake)
include(cmake/options.cmake)
#
# Move headers so we can prefix with "sleigh/"
# Move headers so we can prefix with "ghidra/"
#
set(public_include_header_list
"${library_root}/action.hh"
@@ -135,21 +135,34 @@ set(public_include_header_list
"${library_root}/xml_arch.hh"
"${library_root}/unionresolve.hh"
"${library_root}/marshal.hh"
"${library_root}/analyzesigs.hh"
"${library_root}/modelrules.hh"
"${library_root}/signature.hh"
"${library_root}/signature_ghidra.hh"
"${library_root}/compression.hh"
"${library_root}/multiprecision.hh"
"${library_root}/slaformat.hh"
)
#if(sleigh_RELEASE_IS_HEAD)
# list(APPEND public_include_header_list
# )
#endif()
# if(sleigh_RELEASE_IS_HEAD)
# list(APPEND public_include_header_list
# )
# endif()
# Create custom target so that IDEs know these files are part of the sources
add_custom_target(sleigh_all_headers SOURCES ${public_include_header_list})
set(public_headers_dir ${CMAKE_CURRENT_BINARY_DIR}/include)
file(MAKE_DIRECTORY "${public_headers_dir}/sleigh")
configure_file(cmake/libconfig.h.in "${public_headers_dir}/sleigh/libconfig.h")
file(MAKE_DIRECTORY "${public_headers_dir}/ghidra")
# Copy the public headers into our build directory so that we can control the layout.
# Ideally, we want to let people '#include <sleigh/{header}>' without installing sleigh
# Ideally, we want to let people '#include <ghidra/{header}>' without installing sleigh
foreach(public_header ${public_include_header_list})
configure_file("${public_header}" "${public_headers_dir}/sleigh" COPYONLY)
configure_file("${public_header}" "${public_headers_dir}/ghidra" COPYONLY)
endforeach()
# This project also generates a helper header for managing sleigh versions.
# We intentionally use the `sleigh` directory for this header because it's
# not from upstream.
configure_file(cmake/libconfig.h.in "${public_headers_dir}/sleigh/libconfig.h")
# External Dependencies
find_package(ZLIB REQUIRED)
#
# sla
@@ -183,6 +196,8 @@ set_target_properties(sleigh_sla PROPERTIES
OUTPUT_NAME_DEBUG sla_dbg
)
target_link_libraries(sleigh_sla PUBLIC ZLIB::ZLIB)
#
# decomp
#
@@ -210,6 +225,8 @@ set_target_properties(sleigh_decomp PROPERTIES
OUTPUT_NAME_DEBUG decomp_dbg
)
target_link_libraries(sleigh_decomp PUBLIC ZLIB::ZLIB)
# This is the root directory where all individual processor spec file directories will be created.
# NOTE: Needs to be defined here before the install rules
set(spec_files_build_dir "${CMAKE_CURRENT_BINARY_DIR}/specfiles")
+6 -1
View File
@@ -37,7 +37,8 @@
"cacheVariables": {
"CMAKE_CXX_EXTENSIONS": "OFF",
"CMAKE_CXX_STANDARD": "11",
"CMAKE_CXX_STANDARD_REQUIRED": "ON"
"CMAKE_CXX_STANDARD_REQUIRED": "ON",
"CMAKE_POSITION_INDEPENDENT_CODE": "ON"
}
},
{
@@ -78,6 +79,10 @@
"inherits": ["flags-windows", "ci-std"],
"generator": "Visual Studio 17 2022",
"architecture": "x64",
"cacheVariables": {
"CMAKE_TOOLCHAIN_FILE": "$env{VCPKG_INSTALLATION_ROOT}/scripts/buildsystems/vcpkg.cmake",
"VCPKG_TARGET_TRIPLET": "x64-windows-static"
},
"hidden": true
},
{
+1
View File
@@ -0,0 +1 @@
* @ekilmer @tetsuo-cpp
+1
View File
@@ -18,6 +18,7 @@ This repository provides a CMake-based build project for Sleigh so that it can b
| Name | Version | Linux Package to Install | macOS Homebrew Package to Install |
| ---- | ------- | ------------------------ | --------------------------------- |
| (HEAD builds) [zlib](https://www.zlib.net/) | Recent | zlib1g-dev | zlib |
| [Git](https://git-scm.com/) | Latest | git | N/A |
| [CMake](https://cmake.org/) | 3.18+ | cmake | cmake |
+5 -2
View File
@@ -15,11 +15,14 @@
@PACKAGE_INIT@
include("${CMAKE_CURRENT_LIST_DIR}/sleighTargets.cmake")
# Extra version details. Either 'stable' or 'HEAD'
set(sleigh_RELEASE_IS_HEAD "@sleigh_RELEASE_IS_HEAD@")
include(CMakeFindDependencyMacro)
find_dependency(ZLIB)
include("${CMAKE_CURRENT_LIST_DIR}/sleighTargets.cmake")
# Helpers exposed by default when finding sleigh
include("${CMAKE_CURRENT_LIST_DIR}/modules/sleighCompile.cmake")
+31 -25
View File
@@ -45,7 +45,7 @@ static void PrintVersion(void) {
}
}
class InMemoryLoadImage : public LoadImage {
class InMemoryLoadImage : public ghidra::LoadImage {
public:
explicit InMemoryLoadImage(uint64_t base_addr)
: LoadImage("nofile"), base_addr(base_addr) {}
@@ -55,7 +55,8 @@ public:
image_buffer = std::move(buf);
}
void loadFill(unsigned char *ptr, int size, const Address &addr) override {
void loadFill(unsigned char *ptr, int size,
const ghidra::Address &addr) override {
uint64_t start = addr.getOffset();
for (int i = 0; i < size; ++i) {
uint64_t offset = start + i;
@@ -108,18 +109,18 @@ static std::string ParseHexBytes(std::string_view bytes, uint64_t addr,
return buffer;
}
class AssemblyPrinter : public AssemblyEmit {
class AssemblyPrinter : public ghidra::AssemblyEmit {
public:
void dump(const Address &addr, const std::string &mnemonic,
void dump(const ghidra::Address &addr, const std::string &mnemonic,
const std::string &body) override {
addr.printRaw(std::cout);
std::cout << ": " << mnemonic << ' ' << body << std::endl;
}
};
static void PrintAssembly(Sleigh &engine, uint64_t addr, size_t len) {
static void PrintAssembly(ghidra::Sleigh &engine, uint64_t addr, size_t len) {
AssemblyPrinter asm_emit;
Address cur_addr(engine.getDefaultCodeSpace(), addr),
ghidra::Address cur_addr(engine.getDefaultCodeSpace(), addr),
last_addr(engine.getDefaultCodeSpace(), addr + len);
while (cur_addr < last_addr) {
int32_t instr_len = engine.printAssembly(asm_emit, cur_addr);
@@ -127,15 +128,16 @@ static void PrintAssembly(Sleigh &engine, uint64_t addr, size_t len) {
}
}
static void PrintVarData(std::ostream &s, VarnodeData &data) {
static void PrintVarData(std::ostream &s, ghidra::VarnodeData &data) {
s << '(' << data.space->getName() << ',';
data.space->printOffset(s, data.offset);
s << ',' << std::dec << data.size << ')';
}
class PcodePrinter : public PcodeEmit {
class PcodePrinter : public ghidra::PcodeEmit {
public:
void dump(const Address &, OpCode op, VarnodeData *outvar, VarnodeData *vars,
void dump(const ghidra::Address &, ghidra::OpCode op,
ghidra::VarnodeData *outvar, ghidra::VarnodeData *vars,
int32_t isize) override {
if (outvar) {
PrintVarData(std::cout, *outvar);
@@ -150,9 +152,9 @@ public:
}
};
static void PrintPcode(Sleigh &engine, uint64_t addr, size_t len) {
static void PrintPcode(ghidra::Sleigh &engine, uint64_t addr, size_t len) {
PcodePrinter pcode_emit;
Address cur_addr(engine.getDefaultCodeSpace(), addr),
ghidra::Address cur_addr(engine.getDefaultCodeSpace(), addr),
last_addr(engine.getDefaultCodeSpace(), addr + len);
while (cur_addr < last_addr) {
int32_t instr_len = engine.oneInstruction(pcode_emit, cur_addr);
@@ -257,13 +259,15 @@ int main(int argc, char *argv[]) {
return EXIT_FAILURE;
}
// Put together Sleigh components
AttributeId::initialize();
ElementId::initialize();
ghidra::AttributeId::initialize();
ghidra::ElementId::initialize();
InMemoryLoadImage load_image(addr);
ContextInternal ctx;
Sleigh engine(&load_image, &ctx);
DocumentStorage storage;
Element *root = storage.openDocument(sla_file_path->string())->getRoot();
ghidra::ContextInternal ctx;
ghidra::Sleigh engine(&load_image, &ctx);
ghidra::DocumentStorage storage;
std::istringstream sla("<sleigh>" + sla_file_path->string() + "</sleigh>");
ghidra::Element *root =
storage.parseDocument(sla)->getRoot();
storage.registerTag(root);
std::optional<std::filesystem::path> pspec_file_path;
if (args->pspec_file_name) {
@@ -287,7 +291,8 @@ int main(int argc, char *argv[]) {
}
}
if (pspec_file_path) {
Element *pspec_root = storage.openDocument(pspec_file_path->string())->getRoot();
ghidra::Element *pspec_root =
storage.openDocument(pspec_file_path->string())->getRoot();
storage.registerTag(pspec_root);
}
engine.initialize(storage);
@@ -296,14 +301,15 @@ int main(int argc, char *argv[]) {
// we can set the default context
// This imitates what is done in
// void Architecture::parseProcessorConfig(DocumentStorage &store)
const Element *el = storage.getTag("processor_spec");
const ghidra::Element *el = storage.getTag("processor_spec");
if (el) {
XmlDecode decoder(&engine, el);
uint4 elemId = decoder.openElement(ELEM_PROCESSOR_SPEC);
for(;;) {
uint4 subId = decoder.peekElement();
if (subId == 0) break;
else if (subId == ELEM_CONTEXT_DATA) {
ghidra::XmlDecode decoder(&engine, el);
ghidra::uint4 elemId = decoder.openElement(ghidra::ELEM_PROCESSOR_SPEC);
for (;;) {
ghidra::uint4 subId = decoder.peekElement();
if (subId == 0)
break;
else if (subId == ghidra::ELEM_CONTEXT_DATA) {
ctx.decodeFromSpec(decoder);
break;
} else {
+107 -38
View File
@@ -1,18 +1,26 @@
"""Script to update CMake files for latest Ghidra Sleigh changes"""
import pathlib
import re
import shutil
import subprocess
import sys
import tempfile
from typing import AnyStr, Union
from pathlib import Path
from typing import AnyStr, Union, List
PROJECT_ROOT = pathlib.Path(__file__).parent.parent.resolve()
PROJECT_ROOT = Path(__file__).parent.parent.resolve()
HEAD_SPEC_FILE = PROJECT_ROOT / "src" / "spec_files_HEAD.cmake"
assert HEAD_SPEC_FILE.exists()
SETUP_GHIDRA_FILE = PROJECT_ROOT / "src" / "setup-ghidra-source.cmake"
assert SETUP_GHIDRA_FILE.exists()
# Paths in Ghidra repo that affect this repo. Used with git diff
SLEIGH_PATHS: List[str] = [
# Source code and tests
"Ghidra/Features/Decompiler/src/decompile",
# Sleigh files
"Ghidra/Processors",
]
GIT_EXE = shutil.which("git")
assert GIT_EXE is not None
@@ -21,21 +29,18 @@ def msg(s: str) -> None:
print(f"[!] {s}")
PathString = Union[AnyStr, pathlib.Path]
PathString = Union[AnyStr, Path]
def clone_ghidra_git(dir: PathString) -> None:
def clone_ghidra_git(clone_dir: PathString) -> None:
"""Clone the Ghidra git dir at specified directory"""
# Shallow clone
assert GIT_EXE is not None
subprocess.run(
[
GIT_EXE,
"clone",
"https://github.com/NationalSecurityAgency/ghidra",
"--depth",
"1",
dir,
clone_dir,
],
stdout=sys.stdout,
stderr=sys.stderr,
@@ -43,36 +48,90 @@ def clone_ghidra_git(dir: PathString) -> None:
)
def update_head_commit(latest_commit: str):
def git_get_changed_files(
repo: Path, old_commit: str, new_commit: str, paths: List[str], ci: bool
) -> List[str]:
"""Get list of changed files from old_commit to new_commit at the specified paths"""
assert GIT_EXE is not None
changed_files = (
subprocess.run(
[
GIT_EXE,
"diff",
"--name-status",
f"{old_commit}...{new_commit}",
"--",
*paths,
],
cwd=repo,
capture_output=True,
check=True,
)
.stdout.decode()
.strip()
.splitlines()
)
num_changed = len(changed_files)
if num_changed > 0:
msg(f"Found {num_changed} changed sleigh files:")
print("\n".join(changed_files))
if ci:
with open(os.environ["GITHUB_OUTPUT"], "a") as gh_out:
gh_out.write("changed_files<<EOF\n")
gh_out.write("```\n")
gh_out.write("\n".join(changed_files))
gh_out.write("\n```\n")
gh_out.write("EOF\n")
return changed_files
def is_sleigh_updated(
ghidra_repo: Path, old_commit: str, new_commit: str, ci: bool
) -> bool:
"""Check if files we're interested in have been touched at all"""
changed_files = git_get_changed_files(
ghidra_repo, old_commit, new_commit, SLEIGH_PATHS, ci
)
return len(changed_files) > 0
def update_head_commit(
setup_file: Path, ghidra_repo_dir: PathString, latest_commit: str, ci: bool
) -> bool:
"""Edit the Ghidra script to point to the latest commit"""
head_commit_line = r"set\(ghidra_head_git_tag \"([0-9A-Fa-f]+)\"\)"
updated = False
fd, abspath = tempfile.mkstemp()
with open(fd, "w") as w:
with open(SETUP_GHIDRA_FILE, "r") as r:
with setup_file.open("r") as r:
for line in r:
match = re.search(head_commit_line, line)
if match is not None:
current_commit = match.group(1)
if current_commit != latest_commit:
msg(f"Found new commit: {latest_commit}")
line = re.sub(
head_commit_line,
f'set(ghidra_head_git_tag "{latest_commit}")',
line,
)
updated = True
if is_sleigh_updated(
ghidra_repo_dir, current_commit, latest_commit, ci
):
line = re.sub(
head_commit_line,
f'set(ghidra_head_git_tag "{latest_commit}")',
line,
)
updated = True
else:
msg("No sleigh files updated")
w.write(line)
# Make the swap with the new content
shutil.copymode(SETUP_GHIDRA_FILE, abspath)
os.remove(SETUP_GHIDRA_FILE)
shutil.move(abspath, SETUP_GHIDRA_FILE)
shutil.copymode(setup_file, abspath)
os.remove(setup_file)
shutil.move(abspath, setup_file)
return updated
def update_head_version_file(ghidra_root_dir: PathString) -> None:
def update_head_version_file(setup_file: Path, ghidra_root_dir: PathString) -> None:
"""Edit the Ghidra script to point to the latest version"""
cmake_head_version_line = (
r"set\(ghidra_head_version \"([0-9]+(\.[0-9]+)?(\.[0-9]+)?)\"\)"
@@ -86,7 +145,7 @@ def update_head_version_file(ghidra_root_dir: PathString) -> None:
assert match is not None
source_version = match.group(1)
with SETUP_GHIDRA_FILE.open("r") as f:
with setup_file.open("r") as f:
content = f.read()
match = re.search(cmake_head_version_line, content)
assert match is not None
@@ -99,7 +158,7 @@ def update_head_version_file(ghidra_root_dir: PathString) -> None:
msg(f"Found new version: {source_version}")
fd, abspath = tempfile.mkstemp()
with open(fd, "w") as w:
with SETUP_GHIDRA_FILE.open("r") as r:
with setup_file.open("r") as r:
for line in r:
match = re.search(cmake_head_version_line, line)
if match is not None:
@@ -111,9 +170,9 @@ def update_head_version_file(ghidra_root_dir: PathString) -> None:
w.write(line)
# Make the swap with the new content
shutil.copymode(SETUP_GHIDRA_FILE, abspath)
os.remove(SETUP_GHIDRA_FILE)
shutil.move(abspath, SETUP_GHIDRA_FILE)
shutil.copymode(setup_file, abspath)
os.remove(setup_file)
shutil.move(abspath, setup_file)
def update_spec_files(ghidra_repo_dir: PathString, cmake_file: PathString):
@@ -122,9 +181,7 @@ def update_spec_files(ghidra_repo_dir: PathString, cmake_file: PathString):
for dirpath, _, fnames in os.walk(ghidra_repo_dir / "Ghidra" / "Processors"):
for file in fnames:
if file.endswith(".slaspec"):
spec_files.append(
(pathlib.Path(dirpath) / file).relative_to(ghidra_repo_dir)
)
spec_files.append((Path(dirpath) / file).relative_to(ghidra_repo_dir))
assert len(spec_files) > 0
spec_files.sort()
@@ -152,22 +209,27 @@ def get_latest_commit(ghidra_repo_dir: PathString) -> str:
)
def update_head(ghidra_repo_dir: PathString, ci: bool) -> bool:
def update_head(
setup_file: Path, spec_file: Path, ghidra_repo_dir: PathString, ci: bool
) -> bool:
"""Update to latest head and make changes to the CMake files"""
tmpdirname = None
if ghidra_repo_dir is None:
tmpdirname = tempfile.TemporaryDirectory()
ghidra_repo_dir = pathlib.Path(tmpdirname.name) / "ghidra"
ghidra_repo_dir = Path(tmpdirname.name) / "ghidra"
clone_ghidra_git(ghidra_repo_dir)
latest_commit = get_latest_commit(ghidra_repo_dir)
did_update_commit = update_head_commit(latest_commit)
did_update_commit = update_head_commit(
setup_file, ghidra_repo_dir, latest_commit, ci
)
if did_update_commit:
if ci:
print(f"::set-output name=short_sha::{latest_commit[:9]}")
print("::set-output name=did_update::true")
update_spec_files(ghidra_repo_dir, HEAD_SPEC_FILE)
update_head_version_file(ghidra_repo_dir)
with open(os.environ["GITHUB_OUTPUT"], "a") as gh_out:
gh_out.write(f"short_sha={latest_commit[:9]}\n")
gh_out.write("did_update=true\n")
update_spec_files(ghidra_repo_dir, spec_file)
update_head_version_file(setup_file, ghidra_repo_dir)
else:
msg(f"Already at the latest commit: {latest_commit}")
@@ -186,7 +248,7 @@ if __name__ == "__main__":
def dir_path(string):
if string is None:
return string
string = pathlib.Path(string).expanduser().resolve()
string = Path(string).expanduser().resolve()
if string.is_dir():
return string
else:
@@ -207,5 +269,12 @@ if __name__ == "__main__":
)
args = parser.parse_args()
if not update_head(args.ghidra_repo, args.ci):
if args.ci:
assert (
"GITHUB_OUTPUT" in os.environ
), "CI needs `GITHUB_OUTPUT` environment variable set to a file location"
if not update_head(SETUP_GHIDRA_FILE, HEAD_SPEC_FILE, args.ghidra_repo, args.ci):
msg("No update required")
else:
msg("Update required!")
@@ -1,10 +1,9 @@
From 42dd4d97396e7769bbbaca78c7a546835d72d974 Mon Sep 17 00:00:00 2001
From 6c36965500d26d5a35dfbc91725956ae1d51e394 Mon Sep 17 00:00:00 2001
From: Alex Cameron <asc@tetsuo.sh>
Date: Mon, 7 Feb 2022 02:02:03 +1100
Subject: [PATCH 3/4] Fix UBSAN errors in decompiler
Date: Mon, 5 Jun 2023 16:45:04 +1200
Subject: [PATCH 1/5] Fix UBSAN errors in decompiler
---
.../Decompiler/src/decompile/cpp/address.cc | 4 ++--
.../Decompiler/src/decompile/cpp/fspec.cc | 8 ++++++--
.../src/decompile/cpp/funcdata_varnode.cc | 8 +++++++-
.../Decompiler/src/decompile/cpp/op.cc | 6 +++++-
@@ -14,38 +13,15 @@ Subject: [PATCH 3/4] Fix UBSAN errors in decompiler
.../Decompiler/src/decompile/cpp/semantics.cc | 2 ++
.../Decompiler/src/decompile/cpp/semantics.hh | 2 +-
.../src/decompile/cpp/slgh_compile.cc | 2 +-
.../Decompiler/src/decompile/cpp/slghsymbol.cc | 2 +-
.../Decompiler/src/decompile/cpp/type.cc | 2 +-
.../src/decompile/unittests/testfloatemu.cc | 2 +-
13 files changed, 59 insertions(+), 23 deletions(-)
11 files changed, 56 insertions(+), 20 deletions(-)
diff --git a/Ghidra/Features/Decompiler/src/decompile/cpp/address.cc b/Ghidra/Features/Decompiler/src/decompile/cpp/address.cc
index b3758ddd1..0b3bf04c8 100644
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/address.cc
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/address.cc
@@ -685,7 +685,7 @@ uintb sign_extend(uintb in,int4 sizein,int4 sizeout)
void sign_extend(intb &val,int4 bit)
{
- intb mask = 0;
+ uintb mask = 0;
mask = (~mask)<<bit;
if (((val>>bit)&1)!=0)
val |= mask;
@@ -699,7 +699,7 @@ void sign_extend(intb &val,int4 bit)
void zero_extend(intb &val,int4 bit)
{
- intb mask = 0;
+ uintb mask = 0;
mask = (~mask)<<bit;
mask <<= 1;
val &= (~mask);
diff --git a/Ghidra/Features/Decompiler/src/decompile/cpp/fspec.cc b/Ghidra/Features/Decompiler/src/decompile/cpp/fspec.cc
index 19ed41c63..d1bd842d8 100644
index dc96f0c19..3482cf17c 100644
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/fspec.cc
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/fspec.cc
@@ -2656,8 +2656,12 @@ void ProtoModelMerged::decode(Decoder &decoder)
@@ -2727,8 +2727,12 @@ void ProtoModelMerged::decode(Decoder &decoder)
modellist.push_back(mymodel);
}
decoder.closeElement(elemId);
@@ -61,10 +37,10 @@ index 19ed41c63..d1bd842d8 100644
void ParameterBasic::setTypeLock(bool val)
diff --git a/Ghidra/Features/Decompiler/src/decompile/cpp/funcdata_varnode.cc b/Ghidra/Features/Decompiler/src/decompile/cpp/funcdata_varnode.cc
index 2b26961f0..117518e24 100644
index fc094ee96..1f7e53ebe 100644
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/funcdata_varnode.cc
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/funcdata_varnode.cc
@@ -501,7 +501,13 @@ void Funcdata::setHighLevel(void)
@@ -503,7 +503,13 @@ void Funcdata::setHighLevel(void)
void Funcdata::transferVarnodeProperties(Varnode *vn,Varnode *newVn,int4 lsbOffset)
{
@@ -80,10 +56,10 @@ index 2b26961f0..117518e24 100644
uint4 vnFlags = vn->getFlags() & (Varnode::directwrite|Varnode::addrforce);
diff --git a/Ghidra/Features/Decompiler/src/decompile/cpp/op.cc b/Ghidra/Features/Decompiler/src/decompile/cpp/op.cc
index b4f8a3f8e..068393416 100644
index 921335173..46cdc39f3 100644
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/op.cc
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/op.cc
@@ -667,7 +667,11 @@ uintb PcodeOp::getNZMaskLocal(bool cliploop) const
@@ -666,7 +666,11 @@ uintb PcodeOp::getNZMaskLocal(bool cliploop) const
break;
case CPUI_PIECE:
resmask = getIn(0)->getNZMask();
@@ -97,16 +73,16 @@ index b4f8a3f8e..068393416 100644
break;
case CPUI_INT_MULT:
diff --git a/Ghidra/Features/Decompiler/src/decompile/cpp/opbehavior.cc b/Ghidra/Features/Decompiler/src/decompile/cpp/opbehavior.cc
index 3b84bac6a..3e0c39904 100644
index aebcfd910..6c47e6eb1 100644
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/opbehavior.cc
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/opbehavior.cc
@@ -747,7 +747,13 @@ uintb OpBehaviorPiece::evaluateBinary(int4 sizeout,int4 sizein,uintb in1,uintb i
@@ -746,7 +746,13 @@ uintb OpBehaviorPiece::evaluateBinary(int4 sizeout,int4 sizein,uintb in1,uintb i
uintb OpBehaviorSubpiece::evaluateBinary(int4 sizeout,int4 sizein,uintb in1,uintb in2) const
{
- uintb res = (in1>>(in2*8)) & calc_mask(sizeout);
+ uintb res = in1;
+ if ((in2*8) < sizeof(in1)) {
+ if (in2 < sizeof(in1)) {
+ res >>= (in2*8);
+ } else {
+ res = 0;
@@ -116,10 +92,10 @@ index 3b84bac6a..3e0c39904 100644
}
diff --git a/Ghidra/Features/Decompiler/src/decompile/cpp/pcodecompile.cc b/Ghidra/Features/Decompiler/src/decompile/cpp/pcodecompile.cc
index 49128f7e6..133da8178 100644
index ca9d71ab9..85d4dd281 100644
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/pcodecompile.cc
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/pcodecompile.cc
@@ -619,8 +619,10 @@ vector<OpTpl *> *PcodeCompile::assignBitRange(VarnodeTpl *vn,uint4 bitoffset,uin
@@ -621,8 +621,10 @@ vector<OpTpl *> *PcodeCompile::assignBitRange(VarnodeTpl *vn,uint4 bitoffset,uin
uint4 smallsize = (numbits+7)/8; // Size of input (output of rhs)
bool shiftneeded = (bitoffset != 0);
bool zextneeded = true;
@@ -132,7 +108,7 @@ index 49128f7e6..133da8178 100644
if (vn->getSize().getType()==ConstTpl::real) {
// If we know the size of the bitranged varnode, we can
@@ -724,9 +726,6 @@ ExprTree *PcodeCompile::createBitRange(SpecificSymbol *sym,uint4 bitoffset,uint4
@@ -726,9 +728,6 @@ ExprTree *PcodeCompile::createBitRange(SpecificSymbol *sym,uint4 bitoffset,uint4
}
}
@@ -142,7 +118,7 @@ index 49128f7e6..133da8178 100644
if (truncneeded && ((bitoffset % 8)==0)) {
truncshift = bitoffset/8;
bitoffset = 0;
@@ -749,8 +748,13 @@ ExprTree *PcodeCompile::createBitRange(SpecificSymbol *sym,uint4 bitoffset,uint4
@@ -751,8 +750,13 @@ ExprTree *PcodeCompile::createBitRange(SpecificSymbol *sym,uint4 bitoffset,uint4
appendOp(CPUI_INT_RIGHT,res,bitoffset,4);
if (truncneeded)
appendOp(CPUI_SUBPIECE,res,truncshift,4);
@@ -159,10 +135,10 @@ index 49128f7e6..133da8178 100644
return res;
}
diff --git a/Ghidra/Features/Decompiler/src/decompile/cpp/ruleaction.cc b/Ghidra/Features/Decompiler/src/decompile/cpp/ruleaction.cc
index 9701f642b..7e8030ae8 100644
index 3703c8ef5..ac6e21c00 100644
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/ruleaction.cc
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/ruleaction.cc
@@ -974,7 +974,12 @@ int4 RulePullsubIndirect::applyOp(PcodeOp *op,Funcdata &data)
@@ -976,7 +976,12 @@ int4 RulePullsubIndirect::applyOp(PcodeOp *op,Funcdata &data)
Varnode *outvn = op->getOut();
if (outvn->isPrecisLo()||outvn->isPrecisHi()) return 0; // Don't pull apart double precision object
@@ -176,7 +152,7 @@ index 9701f642b..7e8030ae8 100644
consume = ~consume;
if ((consume & indir->getIn(0)->getConsume())!=0) return 0;
@@ -6788,8 +6793,9 @@ int4 RulePtrsubCharConstant::applyOp(PcodeOp *op,Funcdata &data)
@@ -6803,8 +6808,9 @@ int4 RulePtrsubCharConstant::applyOp(PcodeOp *op,Funcdata &data)
Varnode *sb = op->getIn(0);
Datatype *sbType = sb->getTypeReadFacing(op);
if (sbType->getMetatype() != TYPE_PTR) return 0;
@@ -188,7 +164,7 @@ index 9701f642b..7e8030ae8 100644
Varnode *vn1 = op->getIn(1);
if (!vn1->isConstant()) return 0;
Varnode *outvn = op->getOut();
@@ -8272,7 +8278,11 @@ int4 RuleSubvarSubpiece::applyOp(PcodeOp *op,Funcdata &data)
@@ -8616,7 +8622,11 @@ int4 RuleSubvarSubpiece::applyOp(PcodeOp *op,Funcdata &data)
Varnode *outvn = op->getOut();
int4 flowsize = outvn->getSize();
uintb mask = calc_mask( flowsize );
@@ -202,10 +178,10 @@ index 9701f642b..7e8030ae8 100644
if (!aggressive) {
if ((vn->getConsume() & mask) != vn->getConsume()) return 0;
diff --git a/Ghidra/Features/Decompiler/src/decompile/cpp/semantics.cc b/Ghidra/Features/Decompiler/src/decompile/cpp/semantics.cc
index ecebc0970..1c9ab7560 100644
index cd9b9835b..8a4616c3b 100644
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/semantics.cc
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/semantics.cc
@@ -20,6 +20,7 @@ ConstTpl::ConstTpl(const_type tp)
@@ -22,6 +22,7 @@ ConstTpl::ConstTpl(const_type tp)
{ // Constructor for relative jump constants and uniques
type = tp;
@@ -213,7 +189,7 @@ index ecebc0970..1c9ab7560 100644
}
ConstTpl::ConstTpl(const_type tp,uintb val)
@@ -54,6 +55,7 @@ ConstTpl::ConstTpl(AddrSpace *sid)
@@ -56,6 +57,7 @@ ConstTpl::ConstTpl(AddrSpace *sid)
{
type = spaceid;
value.spaceid = sid;
@@ -222,12 +198,12 @@ index ecebc0970..1c9ab7560 100644
bool ConstTpl::isConstSpace(void) const
diff --git a/Ghidra/Features/Decompiler/src/decompile/cpp/semantics.hh b/Ghidra/Features/Decompiler/src/decompile/cpp/semantics.hh
index 3b836244c..1fbd169c9 100644
index e0b069959..9117a45c7 100644
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/semantics.hh
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/semantics.hh
@@ -46,7 +46,7 @@ class ConstTpl {
static void printHandleSelector(ostream &s,v_field val);
static v_field readHandleSelector(const string &name);
@@ -47,7 +47,7 @@ class ConstTpl {
uintb value_real;
v_field select; // Which part of handle to use as constant
public:
- ConstTpl(void) { type = real; value_real = 0; }
+ ConstTpl(void) { type = real; value_real = 0; select = v_space; }
@@ -235,10 +211,10 @@ index 3b836244c..1fbd169c9 100644
type=op2.type; value=op2.value; value_real=op2.value_real; select=op2.select; }
ConstTpl(const_type tp,uintb val);
diff --git a/Ghidra/Features/Decompiler/src/decompile/cpp/slgh_compile.cc b/Ghidra/Features/Decompiler/src/decompile/cpp/slgh_compile.cc
index c26cd468f..40d731480 100644
index c060053bf..c9004023c 100644
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/slgh_compile.cc
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/slgh_compile.cc
@@ -2152,8 +2152,8 @@ string SleighCompile::checkSymbols(SymbolScope *scope)
@@ -2164,8 +2164,8 @@ string SleighCompile::checkSymbols(SymbolScope *scope)
ostringstream msg;
SymbolTree::const_iterator iter;
for(iter=scope->begin();iter!=scope->end();++iter) {
@@ -248,24 +224,11 @@ index c26cd468f..40d731480 100644
if (sym->getRefCount() == 0)
msg << " Label <" << sym->getName() << "> was placed but not used" << endl;
else if (!sym->isPlaced())
diff --git a/Ghidra/Features/Decompiler/src/decompile/cpp/slghsymbol.cc b/Ghidra/Features/Decompiler/src/decompile/cpp/slghsymbol.cc
index dbb8f9e51..85bd54261 100644
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/slghsymbol.cc
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/slghsymbol.cc
@@ -2565,7 +2565,7 @@ void ContextOp::restoreXml(const Element *el,SleighBase *trans)
const List &list(el->getChildren());
List::const_iterator iter;
iter = list.begin();
- patexp = (PatternValue *)PatternExpression::restoreExpression(*iter,trans);
+ patexp = PatternExpression::restoreExpression(*iter,trans);
patexp->layClaim();
}
diff --git a/Ghidra/Features/Decompiler/src/decompile/cpp/type.cc b/Ghidra/Features/Decompiler/src/decompile/cpp/type.cc
index 316074389..91bf4bc77 100644
index e6292e138..bd31b7470 100644
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/type.cc
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/type.cc
@@ -3233,8 +3233,8 @@ void TypeFactory::recalcPointerSubmeta(Datatype *base,sub_metatype sub)
@@ -3561,8 +3561,8 @@ void TypeFactory::recalcPointerSubmeta(Datatype *base,sub_metatype sub)
top.submeta = sub; // Search on the incorrect submeta
iter = tree.lower_bound(&top);
while(iter != tree.end()) {
@@ -276,10 +239,10 @@ index 316074389..91bf4bc77 100644
++iter;
if (ptr->submeta == sub) {
diff --git a/Ghidra/Features/Decompiler/src/decompile/unittests/testfloatemu.cc b/Ghidra/Features/Decompiler/src/decompile/unittests/testfloatemu.cc
index ab99382a3..67d92c573 100644
index c35bde877..061e53677 100644
--- a/Ghidra/Features/Decompiler/src/decompile/unittests/testfloatemu.cc
+++ b/Ghidra/Features/Decompiler/src/decompile/unittests/testfloatemu.cc
@@ -338,7 +338,7 @@ TEST(float_opTrunc_to_int) {
@@ -346,7 +346,7 @@ TEST(float_opTrunc_to_int) {
for(float f:float_test_values) {
// avoid undefined behavior
@@ -289,5 +252,5 @@ index ab99382a3..67d92c573 100644
uintb true_result = ((uintb)(int32_t)f) & 0xffffffff;
uintb encoding = format.getEncoding(f);
--
2.38.1
2.44.0
@@ -1,165 +0,0 @@
From 031d9830abe8517540389672fd22dc479e46d696 Mon Sep 17 00:00:00 2001
From: Eric Kilmer <eric.d.kilmer@gmail.com>
Date: Sun, 13 Feb 2022 12:59:42 -0500
Subject: [PATCH] Small improvements to C++ decompiler testing from CLI
* Fixes argument parsing to accept more than one option for specifying
paths.
* Return a non-zero exit code (clamped to max value 255, even if more
than 255 tests fail) indicating number of failed tests. This is
helpful when running in a script (like in CI) to detect failures
instead of detecting failures through manual visual inspection of
output text.
---
.../Decompiler/src/decompile/cpp/test.cc | 42 ++++++++++++++-----
.../Decompiler/src/decompile/cpp/test.hh | 2 +-
.../src/decompile/cpp/testfunction.cc | 3 +-
.../src/decompile/cpp/testfunction.hh | 2 +-
4 files changed, 36 insertions(+), 13 deletions(-)
diff --git a/Ghidra/Features/Decompiler/src/decompile/cpp/test.cc b/Ghidra/Features/Decompiler/src/decompile/cpp/test.cc
index e81f2564a..ebc049c29 100644
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/test.cc
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/test.cc
@@ -14,6 +14,9 @@
* limitations under the License.
*/
#include "test.hh"
+
+#include <algorithm>
+
#include "libdecomp.hh"
vector<UnitTest *> UnitTest::tests;
@@ -21,7 +24,8 @@ vector<UnitTest *> UnitTest::tests;
/// Run all the tests unless a non-empty set of names is passed in.
/// In which case, only the named tests in the set are run.
/// \param testNames is the set of names
-void UnitTest::run(set<string> &testNames)
+/// \return number of failed tests
+int UnitTest::run(set<string> &testNames)
{
int total = 0;
@@ -42,6 +46,7 @@ void UnitTest::run(set<string> &testNames)
}
std::cerr << "==============================" << std::endl;
std::cerr << passed << "/" << total << " tests passed." << std::endl;
+ return total - passed;
}
/// Create list of the absolute path of all tests to be run
@@ -85,7 +90,7 @@ int main(int argc, char **argv) {
set<string> dataTestNames;
string dirname("../datatests");
string sleighdirname("../../../../../../..");
- if (argc > 0) {
+ while (argc > 0) {
string command(argv[0]);
if (command == "-path") {
dirname = argv[1];
@@ -109,30 +114,47 @@ int main(int argc, char **argv) {
argv += 1;
argc -= 1;
}
- }
- if (argc > 0) {
- string command(argv[0]);
- if (command == "unittests") {
+ else if (command == "unittests") {
runUnitTests = true;
runDataTests = false; // Run only unit tests
unitTestNames.insert(argv + 1,argv + argc);
+ break;
}
else if (command == "datatests") {
runUnitTests = false; // Run only data-tests
runDataTests = true;
dataTestNames.insert(argv + 1,argv + argc);
+ break;
}
else {
- cout << "USAGE: ghidra_test [-path <datatestdir>] [[unittests|datatests] [testname1 testname2 ...]]" << endl;
+ cout << "USAGE: ghidra_test [-usesleighenv] [-sleighpath <sleighdir>] [-path <datatestdir>] [[unittests|datatests] [testname1 testname2 ...]]" << endl;
+ return -1;
}
}
startDecompilerLibrary(sleighdirname.c_str());
- if (runUnitTests)
- UnitTest::run(unitTestNames);
+
+ // Keep track of failed tests as return code to indicate failures, clamped at
+ // max 255 value
+ int failedTests = 0;
+ if (runUnitTests) {
+ int errors = UnitTest::run(unitTestNames);
+ // Clamp at 255 max return code
+ failedTests = std::min(
+ failedTests +
+ (errors < 0 ? 255 : std::min(errors, 255)),
+ 255);
+ }
if (runDataTests) {
vector<string> testFiles;
gatherDataTests(dirname,dataTestNames,testFiles);
cout << endl << endl;
- FunctionTestCollection::runTestFiles(testFiles,cout);
+ int errors = FunctionTestCollection::runTestFiles(testFiles,cout);
+ // Clamp at 255 max return code
+ failedTests = std::min(
+ failedTests +
+ (errors < 0 ? 255 : std::min(errors, 255)),
+ 255);
}
+
+ return failedTests;
}
diff --git a/Ghidra/Features/Decompiler/src/decompile/cpp/test.hh b/Ghidra/Features/Decompiler/src/decompile/cpp/test.hh
index 8b762c5b1..a138f511d 100644
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/test.hh
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/test.hh
@@ -54,7 +54,7 @@ struct UnitTest {
tests.push_back(this);
}
- static void run(std::set<std::string> &testNames); ///< Run all the instantiated tests
+ static int run(std::set<std::string> &testNames); ///< Run all the instantiated tests
};
diff --git a/Ghidra/Features/Decompiler/src/decompile/cpp/testfunction.cc b/Ghidra/Features/Decompiler/src/decompile/cpp/testfunction.cc
index 66f8d3fa2..c136a964b 100644
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/testfunction.cc
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/testfunction.cc
@@ -304,7 +304,7 @@ void FunctionTestCollection::runTests(list<string> &lateStream)
/// Run through all XML files in the given list, processing each in turn.
/// \param testFiles is the given list of test files
/// \param s is the output stream to print results to
-void FunctionTestCollection::runTestFiles(const vector<string> &testFiles,ostream &s)
+int FunctionTestCollection::runTestFiles(const vector<string> &testFiles,ostream &s)
{
int4 totalTestsApplied = 0;
@@ -344,4 +344,5 @@ void FunctionTestCollection::runTestFiles(const vector<string> &testFiles,ostrea
if (iter == failures.end()) break;
}
}
+ return totalTestsApplied - totalTestsSucceeded;
}
diff --git a/Ghidra/Features/Decompiler/src/decompile/cpp/testfunction.hh b/Ghidra/Features/Decompiler/src/decompile/cpp/testfunction.hh
index 52125b401..46abd6bce 100644
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/testfunction.hh
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/testfunction.hh
@@ -91,7 +91,7 @@ class FunctionTestCollection {
void restoreXml(DocumentStorage &store,const Element *el); ///< Load tests from a \<decompilertest> tag.
void restoreXmlOldForm(DocumentStorage &store,const Element *el); ///< Load tests from \<binaryimage> tag.
void runTests(list<string> &lateStream); ///< Run the script and perform the tests
- static void runTestFiles(const vector<string> &testFiles,ostream &s); ///< Run tests for each listed file
+ static int runTestFiles(const vector<string> &testFiles,ostream &s); ///< Run tests for each listed file
};
#endif
--
2.35.1
@@ -1,137 +0,0 @@
From 44c439d879c18c2873d5605821132957680a4405 Mon Sep 17 00:00:00 2001
From: Eric Kilmer <eric.d.kilmer@gmail.com>
Date: Thu, 28 Jul 2022 09:20:03 -0400
Subject: [PATCH] Add include guards to decompiler C++ headers
---
Ghidra/Features/Decompiler/src/decompile/cpp/bfd_arch.hh | 5 +++++
Ghidra/Features/Decompiler/src/decompile/cpp/graph.hh | 6 ++++++
Ghidra/Features/Decompiler/src/decompile/cpp/ifaceterm.hh | 5 +++++
Ghidra/Features/Decompiler/src/decompile/cpp/raw_arch.hh | 5 +++++
.../Features/Decompiler/src/decompile/cpp/slgh_compile.hh | 5 +++++
Ghidra/Features/Decompiler/src/decompile/cpp/xml_arch.hh | 6 ++++++
6 files changed, 32 insertions(+)
diff --git a/Ghidra/Features/Decompiler/src/decompile/cpp/bfd_arch.hh b/Ghidra/Features/Decompiler/src/decompile/cpp/bfd_arch.hh
index 875d3bb78..6ade01ecc 100644
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/bfd_arch.hh
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/bfd_arch.hh
@@ -17,6 +17,9 @@
/// \file bfd_arch.hh
/// \brief Specific implementation of Architecture using GNU BFD libraries
+#ifndef __BFD_ARCH__
+#define __BFD_ARCH__
+
#include "sleigh_arch.hh"
#include "loadimage_bfd.hh"
@@ -47,3 +50,5 @@ class BfdArchitecture : public SleighArchitecture {
BfdArchitecture(const string &fname,const string &targ,ostream *estream); ///< Constructor
virtual ~BfdArchitecture(void) {}
};
+
+#endif
diff --git a/Ghidra/Features/Decompiler/src/decompile/cpp/graph.hh b/Ghidra/Features/Decompiler/src/decompile/cpp/graph.hh
index 364a5258d..edd6ce865 100644
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/graph.hh
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/graph.hh
@@ -14,8 +14,14 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+
+#ifndef __GRAPH__
+#define __GRAPH__
+
#include "funcdata.hh"
extern void dump_dataflow_graph(Funcdata &data,ostream &s);
extern void dump_controlflow_graph(const string &name,const BlockGraph &graph,ostream &s);
extern void dump_dom_graph(const string &name,const BlockGraph &graph,ostream &s);
+
+#endif
diff --git a/Ghidra/Features/Decompiler/src/decompile/cpp/ifaceterm.hh b/Ghidra/Features/Decompiler/src/decompile/cpp/ifaceterm.hh
index 3ca912dd6..0b70d8b22 100644
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/ifaceterm.hh
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/ifaceterm.hh
@@ -16,6 +16,9 @@
/// \file ifaceterm.hh
/// \brief Add some terminal capabilities to the command-line interface (IfaceStatus)
+#ifndef __IFACE_TERM__
+#define __IFACE_TERM__
+
#include "interface.hh"
#ifdef __TERMINAL__
@@ -48,3 +51,5 @@ class IfaceTerm : public IfaceStatus {
virtual void popScript(void);
virtual bool isStreamFinished(void) const;
};
+
+#endif
diff --git a/Ghidra/Features/Decompiler/src/decompile/cpp/raw_arch.hh b/Ghidra/Features/Decompiler/src/decompile/cpp/raw_arch.hh
index 2245840a0..490abf901 100644
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/raw_arch.hh
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/raw_arch.hh
@@ -15,6 +15,10 @@
*/
/// \file raw_arch.hh
/// \brief Bare bones capability for treating a file as a raw executable image
+
+#ifndef __RAW_ARCH__
+#define __RAW_ARCH__
+
#include "sleigh_arch.hh"
#include "loadimage.hh"
@@ -46,3 +50,4 @@ class RawBinaryArchitecture : public SleighArchitecture {
virtual ~RawBinaryArchitecture(void) {}
};
+#endif
diff --git a/Ghidra/Features/Decompiler/src/decompile/cpp/slgh_compile.hh b/Ghidra/Features/Decompiler/src/decompile/cpp/slgh_compile.hh
index e7ab19185..8fd9ba2fd 100644
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/slgh_compile.hh
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/slgh_compile.hh
@@ -16,6 +16,9 @@
/// \file slgh_compile.hh
/// \brief High-level control of the sleigh compilation process
+#ifndef __SLGH_COMPILE__
+#define __SLGH_COMPILE__
+
#include "sleighbase.hh"
#include "pcodecompile.hh"
#include "filemanage.hh"
@@ -446,3 +449,5 @@ class SleighCompile : public SleighBase {
extern SleighCompile *slgh; ///< A global reference to the SLEIGH compiler accessible to the parse functions
extern int yydebug; ///< Debug state for the SLEIGH parse functions
+
+#endif
diff --git a/Ghidra/Features/Decompiler/src/decompile/cpp/xml_arch.hh b/Ghidra/Features/Decompiler/src/decompile/cpp/xml_arch.hh
index d395fb8a3..6371148b0 100644
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/xml_arch.hh
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/xml_arch.hh
@@ -15,6 +15,10 @@
*/
/// \file xml_arch.hh
/// \brief Extension to read executables based on an XML format
+
+#ifndef __XML_ARCH__
+#define __XML_ARCH__
+
#include "sleigh_arch.hh"
#include "loadimage_xml.hh"
@@ -45,3 +49,5 @@ class XmlArchitecture : public SleighArchitecture {
XmlArchitecture(const string &fname,const string &targ,ostream *estream); ///< Constructor
virtual ~XmlArchitecture(void) {}
};
+
+#endif
--
2.37.1
@@ -1,7 +1,7 @@
From 0891ecb91231978ef912c3215925bcdea6f14ce7 Mon Sep 17 00:00:00 2001
From 290b06621c7a8c32c1470d16dbd8740876d57640 Mon Sep 17 00:00:00 2001
From: Alex Cameron <asc@tetsuo.sh>
Date: Wed, 3 Aug 2022 20:01:18 +1000
Subject: [PATCH 4/4] Use `stroull` instead of `stroul` to parse address
Subject: [PATCH 2/5] Use `stroull` instead of `stroul` to parse address
offsets
---
@@ -9,7 +9,7 @@ Subject: [PATCH 4/4] Use `stroull` instead of `stroul` to parse address
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/Ghidra/Features/Decompiler/src/decompile/cpp/space.cc b/Ghidra/Features/Decompiler/src/decompile/cpp/space.cc
index 40a3e3bfe..ff6f282ca 100644
index bda09fc94..d077ee375 100644
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/space.cc
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/space.cc
@@ -16,6 +16,8 @@
@@ -18,10 +18,10 @@ index 40a3e3bfe..ff6f282ca 100644
+#include <climits>
+
namespace ghidra {
AttributeId ATTRIB_BASE = AttributeId("base",89);
AttributeId ATTRIB_DEADCODEDELAY = AttributeId("deadcodedelay",90);
AttributeId ATTRIB_DELAY = AttributeId("delay", 91);
@@ -268,7 +270,10 @@ uintb AddrSpace::read(const string &s,int4 &size) const
@@ -274,7 +276,10 @@ uintb AddrSpace::read(const string &s,int4 &size) const
}
}
catch(LowlevelError &err) { // Name doesn't exist
@@ -34,5 +34,5 @@ index 40a3e3bfe..ff6f282ca 100644
enddata = (const char *) tmpdata;
if (enddata - s.c_str() == s.size()) { // If no size or offset override
--
2.38.1
2.44.0
@@ -0,0 +1,26 @@
From a7fc8b440ab58cb377460e11c7449488ff5abc96 Mon Sep 17 00:00:00 2001
From: Eric Kilmer <eric.d.kilmer@gmail.com>
Date: Sat, 30 Mar 2024 18:46:16 -0400
Subject: [PATCH 5/5] Add missing index check to prevent errors in Windows
Not sure why this only appears when testing on Windows.
---
Ghidra/Features/Decompiler/src/decompile/cpp/ifacedecomp.cc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Ghidra/Features/Decompiler/src/decompile/cpp/ifacedecomp.cc b/Ghidra/Features/Decompiler/src/decompile/cpp/ifacedecomp.cc
index ac94d261c..a76ad389b 100644
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/ifacedecomp.cc
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/ifacedecomp.cc
@@ -1842,7 +1842,7 @@ void IfcProtooverride::execute(istream &s)
s >> ws;
Address callpoint(parse_machaddr(s,discard,*dcp->conf->types));
int4 i;
- for(i=0;dcp->fd->numCalls();++i)
+ for(i=0;i<dcp->fd->numCalls();++i)
if (dcp->fd->getCallSpecs(i)->getOp()->getAddr() == callpoint) break;
if (i == dcp->fd->numCalls())
throw IfaceExecutionError("No call is made at this address");
--
2.44.0
@@ -1,10 +1,9 @@
From f62b1e5483a99efe3ae6598291ec010ecee749d4 Mon Sep 17 00:00:00 2001
From 6c36965500d26d5a35dfbc91725956ae1d51e394 Mon Sep 17 00:00:00 2001
From: Alex Cameron <asc@tetsuo.sh>
Date: Mon, 7 Feb 2022 02:02:03 +1100
Subject: [PATCH] Fix UBSAN errors in decompiler
Date: Mon, 5 Jun 2023 16:45:04 +1200
Subject: [PATCH 1/5] Fix UBSAN errors in decompiler
---
.../Decompiler/src/decompile/cpp/address.cc | 4 ++--
.../Decompiler/src/decompile/cpp/fspec.cc | 8 ++++++--
.../src/decompile/cpp/funcdata_varnode.cc | 8 +++++++-
.../Decompiler/src/decompile/cpp/op.cc | 6 +++++-
@@ -14,38 +13,15 @@ Subject: [PATCH] Fix UBSAN errors in decompiler
.../Decompiler/src/decompile/cpp/semantics.cc | 2 ++
.../Decompiler/src/decompile/cpp/semantics.hh | 2 +-
.../src/decompile/cpp/slgh_compile.cc | 2 +-
.../Decompiler/src/decompile/cpp/slghsymbol.cc | 2 +-
.../Decompiler/src/decompile/cpp/type.cc | 2 +-
.../src/decompile/unittests/testfloatemu.cc | 2 +-
13 files changed, 59 insertions(+), 23 deletions(-)
11 files changed, 56 insertions(+), 20 deletions(-)
diff --git a/Ghidra/Features/Decompiler/src/decompile/cpp/address.cc b/Ghidra/Features/Decompiler/src/decompile/cpp/address.cc
index 1cb02c5b2..3a60d1322 100644
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/address.cc
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/address.cc
@@ -685,7 +685,7 @@ uintb sign_extend(uintb in,int4 sizein,int4 sizeout)
void sign_extend(intb &val,int4 bit)
{
- intb mask = 0;
+ uintb mask = 0;
mask = (~mask)<<bit;
if (((val>>bit)&1)!=0)
val |= mask;
@@ -699,7 +699,7 @@ void sign_extend(intb &val,int4 bit)
void zero_extend(intb &val,int4 bit)
{
- intb mask = 0;
+ uintb mask = 0;
mask = (~mask)<<bit;
mask <<= 1;
val &= (~mask);
diff --git a/Ghidra/Features/Decompiler/src/decompile/cpp/fspec.cc b/Ghidra/Features/Decompiler/src/decompile/cpp/fspec.cc
index 0526ed04c..e79fd041e 100644
index dc96f0c19..3482cf17c 100644
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/fspec.cc
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/fspec.cc
@@ -2633,8 +2633,12 @@ void ProtoModelMerged::decode(Decoder &decoder)
@@ -2727,8 +2727,12 @@ void ProtoModelMerged::decode(Decoder &decoder)
modellist.push_back(mymodel);
}
decoder.closeElement(elemId);
@@ -61,10 +37,10 @@ index 0526ed04c..e79fd041e 100644
void ParameterBasic::setTypeLock(bool val)
diff --git a/Ghidra/Features/Decompiler/src/decompile/cpp/funcdata_varnode.cc b/Ghidra/Features/Decompiler/src/decompile/cpp/funcdata_varnode.cc
index e6b282ac7..f6a35728f 100644
index fc094ee96..1f7e53ebe 100644
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/funcdata_varnode.cc
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/funcdata_varnode.cc
@@ -501,7 +501,13 @@ void Funcdata::setHighLevel(void)
@@ -503,7 +503,13 @@ void Funcdata::setHighLevel(void)
void Funcdata::transferVarnodeProperties(Varnode *vn,Varnode *newVn,int4 lsbOffset)
{
@@ -80,10 +56,10 @@ index e6b282ac7..f6a35728f 100644
uint4 vnFlags = vn->getFlags() & (Varnode::directwrite|Varnode::addrforce);
diff --git a/Ghidra/Features/Decompiler/src/decompile/cpp/op.cc b/Ghidra/Features/Decompiler/src/decompile/cpp/op.cc
index b4f8a3f8e..068393416 100644
index 921335173..46cdc39f3 100644
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/op.cc
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/op.cc
@@ -667,7 +667,11 @@ uintb PcodeOp::getNZMaskLocal(bool cliploop) const
@@ -666,7 +666,11 @@ uintb PcodeOp::getNZMaskLocal(bool cliploop) const
break;
case CPUI_PIECE:
resmask = getIn(0)->getNZMask();
@@ -97,16 +73,16 @@ index b4f8a3f8e..068393416 100644
break;
case CPUI_INT_MULT:
diff --git a/Ghidra/Features/Decompiler/src/decompile/cpp/opbehavior.cc b/Ghidra/Features/Decompiler/src/decompile/cpp/opbehavior.cc
index 3b84bac6a..3e0c39904 100644
index aebcfd910..6c47e6eb1 100644
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/opbehavior.cc
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/opbehavior.cc
@@ -747,7 +747,13 @@ uintb OpBehaviorPiece::evaluateBinary(int4 sizeout,int4 sizein,uintb in1,uintb i
@@ -746,7 +746,13 @@ uintb OpBehaviorPiece::evaluateBinary(int4 sizeout,int4 sizein,uintb in1,uintb i
uintb OpBehaviorSubpiece::evaluateBinary(int4 sizeout,int4 sizein,uintb in1,uintb in2) const
{
- uintb res = (in1>>(in2*8)) & calc_mask(sizeout);
+ uintb res = in1;
+ if ((in2*8) < sizeof(in1)) {
+ if (in2 < sizeof(in1)) {
+ res >>= (in2*8);
+ } else {
+ res = 0;
@@ -116,10 +92,10 @@ index 3b84bac6a..3e0c39904 100644
}
diff --git a/Ghidra/Features/Decompiler/src/decompile/cpp/pcodecompile.cc b/Ghidra/Features/Decompiler/src/decompile/cpp/pcodecompile.cc
index 49128f7e6..133da8178 100644
index ca9d71ab9..85d4dd281 100644
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/pcodecompile.cc
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/pcodecompile.cc
@@ -619,8 +619,10 @@ vector<OpTpl *> *PcodeCompile::assignBitRange(VarnodeTpl *vn,uint4 bitoffset,uin
@@ -621,8 +621,10 @@ vector<OpTpl *> *PcodeCompile::assignBitRange(VarnodeTpl *vn,uint4 bitoffset,uin
uint4 smallsize = (numbits+7)/8; // Size of input (output of rhs)
bool shiftneeded = (bitoffset != 0);
bool zextneeded = true;
@@ -132,7 +108,7 @@ index 49128f7e6..133da8178 100644
if (vn->getSize().getType()==ConstTpl::real) {
// If we know the size of the bitranged varnode, we can
@@ -724,9 +726,6 @@ ExprTree *PcodeCompile::createBitRange(SpecificSymbol *sym,uint4 bitoffset,uint4
@@ -726,9 +728,6 @@ ExprTree *PcodeCompile::createBitRange(SpecificSymbol *sym,uint4 bitoffset,uint4
}
}
@@ -142,7 +118,7 @@ index 49128f7e6..133da8178 100644
if (truncneeded && ((bitoffset % 8)==0)) {
truncshift = bitoffset/8;
bitoffset = 0;
@@ -749,8 +748,13 @@ ExprTree *PcodeCompile::createBitRange(SpecificSymbol *sym,uint4 bitoffset,uint4
@@ -751,8 +750,13 @@ ExprTree *PcodeCompile::createBitRange(SpecificSymbol *sym,uint4 bitoffset,uint4
appendOp(CPUI_INT_RIGHT,res,bitoffset,4);
if (truncneeded)
appendOp(CPUI_SUBPIECE,res,truncshift,4);
@@ -159,10 +135,10 @@ index 49128f7e6..133da8178 100644
return res;
}
diff --git a/Ghidra/Features/Decompiler/src/decompile/cpp/ruleaction.cc b/Ghidra/Features/Decompiler/src/decompile/cpp/ruleaction.cc
index b5bdb4700..ef741545c 100644
index 3703c8ef5..ac6e21c00 100644
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/ruleaction.cc
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/ruleaction.cc
@@ -974,7 +974,12 @@ int4 RulePullsubIndirect::applyOp(PcodeOp *op,Funcdata &data)
@@ -976,7 +976,12 @@ int4 RulePullsubIndirect::applyOp(PcodeOp *op,Funcdata &data)
Varnode *outvn = op->getOut();
if (outvn->isPrecisLo()||outvn->isPrecisHi()) return 0; // Don't pull apart double precision object
@@ -176,7 +152,7 @@ index b5bdb4700..ef741545c 100644
consume = ~consume;
if ((consume & indir->getIn(0)->getConsume())!=0) return 0;
@@ -6785,8 +6790,9 @@ int4 RulePtrsubCharConstant::applyOp(PcodeOp *op,Funcdata &data)
@@ -6803,8 +6808,9 @@ int4 RulePtrsubCharConstant::applyOp(PcodeOp *op,Funcdata &data)
Varnode *sb = op->getIn(0);
Datatype *sbType = sb->getTypeReadFacing(op);
if (sbType->getMetatype() != TYPE_PTR) return 0;
@@ -188,7 +164,7 @@ index b5bdb4700..ef741545c 100644
Varnode *vn1 = op->getIn(1);
if (!vn1->isConstant()) return 0;
Varnode *outvn = op->getOut();
@@ -7822,7 +7828,11 @@ int4 RuleSubvarSubpiece::applyOp(PcodeOp *op,Funcdata &data)
@@ -8616,7 +8622,11 @@ int4 RuleSubvarSubpiece::applyOp(PcodeOp *op,Funcdata &data)
Varnode *outvn = op->getOut();
int4 flowsize = outvn->getSize();
uintb mask = calc_mask( flowsize );
@@ -202,10 +178,10 @@ index b5bdb4700..ef741545c 100644
if (!aggressive) {
if ((vn->getConsume() & mask) != vn->getConsume()) return 0;
diff --git a/Ghidra/Features/Decompiler/src/decompile/cpp/semantics.cc b/Ghidra/Features/Decompiler/src/decompile/cpp/semantics.cc
index f8c1580a8..8ae5ff293 100644
index cd9b9835b..8a4616c3b 100644
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/semantics.cc
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/semantics.cc
@@ -20,6 +20,7 @@ ConstTpl::ConstTpl(const_type tp)
@@ -22,6 +22,7 @@ ConstTpl::ConstTpl(const_type tp)
{ // Constructor for relative jump constants and uniques
type = tp;
@@ -213,7 +189,7 @@ index f8c1580a8..8ae5ff293 100644
}
ConstTpl::ConstTpl(const_type tp,uintb val)
@@ -54,6 +55,7 @@ ConstTpl::ConstTpl(AddrSpace *sid)
@@ -56,6 +57,7 @@ ConstTpl::ConstTpl(AddrSpace *sid)
{
type = spaceid;
value.spaceid = sid;
@@ -222,12 +198,12 @@ index f8c1580a8..8ae5ff293 100644
bool ConstTpl::isConstSpace(void) const
diff --git a/Ghidra/Features/Decompiler/src/decompile/cpp/semantics.hh b/Ghidra/Features/Decompiler/src/decompile/cpp/semantics.hh
index dccf0437d..f7f598667 100644
index e0b069959..9117a45c7 100644
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/semantics.hh
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/semantics.hh
@@ -46,7 +46,7 @@ private:
static void printHandleSelector(ostream &s,v_field val);
static v_field readHandleSelector(const string &name);
@@ -47,7 +47,7 @@ class ConstTpl {
uintb value_real;
v_field select; // Which part of handle to use as constant
public:
- ConstTpl(void) { type = real; value_real = 0; }
+ ConstTpl(void) { type = real; value_real = 0; select = v_space; }
@@ -235,10 +211,10 @@ index dccf0437d..f7f598667 100644
type=op2.type; value=op2.value; value_real=op2.value_real; select=op2.select; }
ConstTpl(const_type tp,uintb val);
diff --git a/Ghidra/Features/Decompiler/src/decompile/cpp/slgh_compile.cc b/Ghidra/Features/Decompiler/src/decompile/cpp/slgh_compile.cc
index 3ec58b9d0..55fcfd7c8 100644
index c060053bf..c9004023c 100644
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/slgh_compile.cc
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/slgh_compile.cc
@@ -2150,8 +2150,8 @@ string SleighCompile::checkSymbols(SymbolScope *scope)
@@ -2164,8 +2164,8 @@ string SleighCompile::checkSymbols(SymbolScope *scope)
ostringstream msg;
SymbolTree::const_iterator iter;
for(iter=scope->begin();iter!=scope->end();++iter) {
@@ -248,24 +224,11 @@ index 3ec58b9d0..55fcfd7c8 100644
if (sym->getRefCount() == 0)
msg << " Label <" << sym->getName() << "> was placed but not used" << endl;
else if (!sym->isPlaced())
diff --git a/Ghidra/Features/Decompiler/src/decompile/cpp/slghsymbol.cc b/Ghidra/Features/Decompiler/src/decompile/cpp/slghsymbol.cc
index 5f4a8fe32..50bc33b8b 100644
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/slghsymbol.cc
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/slghsymbol.cc
@@ -2499,7 +2499,7 @@ void ContextOp::restoreXml(const Element *el,SleighBase *trans)
const List &list(el->getChildren());
List::const_iterator iter;
iter = list.begin();
- patexp = (PatternValue *)PatternExpression::restoreExpression(*iter,trans);
+ patexp = PatternExpression::restoreExpression(*iter,trans);
patexp->layClaim();
}
diff --git a/Ghidra/Features/Decompiler/src/decompile/cpp/type.cc b/Ghidra/Features/Decompiler/src/decompile/cpp/type.cc
index b8dbcd55b..b2d0c1bb6 100644
index e6292e138..bd31b7470 100644
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/type.cc
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/type.cc
@@ -3073,8 +3073,8 @@ void TypeFactory::recalcPointerSubmeta(Datatype *base,sub_metatype sub)
@@ -3561,8 +3561,8 @@ void TypeFactory::recalcPointerSubmeta(Datatype *base,sub_metatype sub)
top.submeta = sub; // Search on the incorrect submeta
iter = tree.lower_bound(&top);
while(iter != tree.end()) {
@@ -276,10 +239,10 @@ index b8dbcd55b..b2d0c1bb6 100644
++iter;
if (ptr->submeta == sub) {
diff --git a/Ghidra/Features/Decompiler/src/decompile/unittests/testfloatemu.cc b/Ghidra/Features/Decompiler/src/decompile/unittests/testfloatemu.cc
index ab99382a3..67d92c573 100644
index c35bde877..061e53677 100644
--- a/Ghidra/Features/Decompiler/src/decompile/unittests/testfloatemu.cc
+++ b/Ghidra/Features/Decompiler/src/decompile/unittests/testfloatemu.cc
@@ -338,7 +338,7 @@ TEST(float_opTrunc_to_int) {
@@ -346,7 +346,7 @@ TEST(float_opTrunc_to_int) {
for(float f:float_test_values) {
// avoid undefined behavior
@@ -289,5 +252,5 @@ index ab99382a3..67d92c573 100644
uintb true_result = ((uintb)(int32_t)f) & 0xffffffff;
uintb encoding = format.getEncoding(f);
--
2.32.1 (Apple Git-133)
2.44.0
@@ -1,165 +0,0 @@
From 3100df1ece29160185e1bc9602a3b4c299914965 Mon Sep 17 00:00:00 2001
From: Eric Kilmer <eric.d.kilmer@gmail.com>
Date: Sun, 13 Feb 2022 12:59:42 -0500
Subject: [PATCH 1/4] Small improvements to C++ decompiler testing from CLI
* Fixes argument parsing to accept more than one option for specifying
paths.
* Return a non-zero exit code (clamped to max value 255, even if more
than 255 tests fail) indicating number of failed tests. This is
helpful when running in a script (like in CI) to detect failures
instead of detecting failures through manual visual inspection of
output text.
---
.../Decompiler/src/decompile/cpp/test.cc | 42 ++++++++++++++-----
.../Decompiler/src/decompile/cpp/test.hh | 2 +-
.../src/decompile/cpp/testfunction.cc | 3 +-
.../src/decompile/cpp/testfunction.hh | 2 +-
4 files changed, 36 insertions(+), 13 deletions(-)
diff --git a/Ghidra/Features/Decompiler/src/decompile/cpp/test.cc b/Ghidra/Features/Decompiler/src/decompile/cpp/test.cc
index e81f2564a..ebc049c29 100644
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/test.cc
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/test.cc
@@ -14,6 +14,9 @@
* limitations under the License.
*/
#include "test.hh"
+
+#include <algorithm>
+
#include "libdecomp.hh"
vector<UnitTest *> UnitTest::tests;
@@ -21,7 +24,8 @@ vector<UnitTest *> UnitTest::tests;
/// Run all the tests unless a non-empty set of names is passed in.
/// In which case, only the named tests in the set are run.
/// \param testNames is the set of names
-void UnitTest::run(set<string> &testNames)
+/// \return number of failed tests
+int UnitTest::run(set<string> &testNames)
{
int total = 0;
@@ -42,6 +46,7 @@ void UnitTest::run(set<string> &testNames)
}
std::cerr << "==============================" << std::endl;
std::cerr << passed << "/" << total << " tests passed." << std::endl;
+ return total - passed;
}
/// Create list of the absolute path of all tests to be run
@@ -85,7 +90,7 @@ int main(int argc, char **argv) {
set<string> dataTestNames;
string dirname("../datatests");
string sleighdirname("../../../../../../..");
- if (argc > 0) {
+ while (argc > 0) {
string command(argv[0]);
if (command == "-path") {
dirname = argv[1];
@@ -109,30 +114,47 @@ int main(int argc, char **argv) {
argv += 1;
argc -= 1;
}
- }
- if (argc > 0) {
- string command(argv[0]);
- if (command == "unittests") {
+ else if (command == "unittests") {
runUnitTests = true;
runDataTests = false; // Run only unit tests
unitTestNames.insert(argv + 1,argv + argc);
+ break;
}
else if (command == "datatests") {
runUnitTests = false; // Run only data-tests
runDataTests = true;
dataTestNames.insert(argv + 1,argv + argc);
+ break;
}
else {
- cout << "USAGE: ghidra_test [-path <datatestdir>] [[unittests|datatests] [testname1 testname2 ...]]" << endl;
+ cout << "USAGE: ghidra_test [-usesleighenv] [-sleighpath <sleighdir>] [-path <datatestdir>] [[unittests|datatests] [testname1 testname2 ...]]" << endl;
+ return -1;
}
}
startDecompilerLibrary(sleighdirname.c_str());
- if (runUnitTests)
- UnitTest::run(unitTestNames);
+
+ // Keep track of failed tests as return code to indicate failures, clamped at
+ // max 255 value
+ int failedTests = 0;
+ if (runUnitTests) {
+ int errors = UnitTest::run(unitTestNames);
+ // Clamp at 255 max return code
+ failedTests = std::min(
+ failedTests +
+ (errors < 0 ? 255 : std::min(errors, 255)),
+ 255);
+ }
if (runDataTests) {
vector<string> testFiles;
gatherDataTests(dirname,dataTestNames,testFiles);
cout << endl << endl;
- FunctionTestCollection::runTestFiles(testFiles,cout);
+ int errors = FunctionTestCollection::runTestFiles(testFiles,cout);
+ // Clamp at 255 max return code
+ failedTests = std::min(
+ failedTests +
+ (errors < 0 ? 255 : std::min(errors, 255)),
+ 255);
}
+
+ return failedTests;
}
diff --git a/Ghidra/Features/Decompiler/src/decompile/cpp/test.hh b/Ghidra/Features/Decompiler/src/decompile/cpp/test.hh
index 8b762c5b1..a138f511d 100644
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/test.hh
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/test.hh
@@ -54,7 +54,7 @@ struct UnitTest {
tests.push_back(this);
}
- static void run(std::set<std::string> &testNames); ///< Run all the instantiated tests
+ static int run(std::set<std::string> &testNames); ///< Run all the instantiated tests
};
diff --git a/Ghidra/Features/Decompiler/src/decompile/cpp/testfunction.cc b/Ghidra/Features/Decompiler/src/decompile/cpp/testfunction.cc
index 6311dba06..4f7110bb4 100644
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/testfunction.cc
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/testfunction.cc
@@ -304,7 +304,7 @@ void FunctionTestCollection::runTests(list<string> &lateStream)
/// Run through all XML files in the given list, processing each in turn.
/// \param testFiles is the given list of test files
/// \param s is the output stream to print results to
-void FunctionTestCollection::runTestFiles(const vector<string> &testFiles,ostream &s)
+int FunctionTestCollection::runTestFiles(const vector<string> &testFiles,ostream &s)
{
int4 totalTestsApplied = 0;
@@ -344,4 +344,5 @@ void FunctionTestCollection::runTestFiles(const vector<string> &testFiles,ostrea
if (iter == failures.end()) break;
}
}
+ return totalTestsApplied - totalTestsSucceeded;
}
diff --git a/Ghidra/Features/Decompiler/src/decompile/cpp/testfunction.hh b/Ghidra/Features/Decompiler/src/decompile/cpp/testfunction.hh
index 52125b401..46abd6bce 100644
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/testfunction.hh
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/testfunction.hh
@@ -91,7 +91,7 @@ class FunctionTestCollection {
void restoreXml(DocumentStorage &store,const Element *el); ///< Load tests from a \<decompilertest> tag.
void restoreXmlOldForm(DocumentStorage &store,const Element *el); ///< Load tests from \<binaryimage> tag.
void runTests(list<string> &lateStream); ///< Run the script and perform the tests
- static void runTestFiles(const vector<string> &testFiles,ostream &s); ///< Run tests for each listed file
+ static int runTestFiles(const vector<string> &testFiles,ostream &s); ///< Run tests for each listed file
};
#endif
--
2.38.1
@@ -1,137 +0,0 @@
From 5189064a0b81b74b5844b461f2f2b4d1a398ab59 Mon Sep 17 00:00:00 2001
From: Eric Kilmer <eric.d.kilmer@gmail.com>
Date: Thu, 28 Jul 2022 09:20:03 -0400
Subject: [PATCH 2/4] Add include guards to decompiler C++ headers
---
Ghidra/Features/Decompiler/src/decompile/cpp/bfd_arch.hh | 5 +++++
Ghidra/Features/Decompiler/src/decompile/cpp/graph.hh | 6 ++++++
Ghidra/Features/Decompiler/src/decompile/cpp/ifaceterm.hh | 5 +++++
Ghidra/Features/Decompiler/src/decompile/cpp/raw_arch.hh | 5 +++++
.../Features/Decompiler/src/decompile/cpp/slgh_compile.hh | 5 +++++
Ghidra/Features/Decompiler/src/decompile/cpp/xml_arch.hh | 6 ++++++
6 files changed, 32 insertions(+)
diff --git a/Ghidra/Features/Decompiler/src/decompile/cpp/bfd_arch.hh b/Ghidra/Features/Decompiler/src/decompile/cpp/bfd_arch.hh
index 875d3bb78..6ade01ecc 100644
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/bfd_arch.hh
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/bfd_arch.hh
@@ -17,6 +17,9 @@
/// \file bfd_arch.hh
/// \brief Specific implementation of Architecture using GNU BFD libraries
+#ifndef __BFD_ARCH__
+#define __BFD_ARCH__
+
#include "sleigh_arch.hh"
#include "loadimage_bfd.hh"
@@ -47,3 +50,5 @@ class BfdArchitecture : public SleighArchitecture {
BfdArchitecture(const string &fname,const string &targ,ostream *estream); ///< Constructor
virtual ~BfdArchitecture(void) {}
};
+
+#endif
diff --git a/Ghidra/Features/Decompiler/src/decompile/cpp/graph.hh b/Ghidra/Features/Decompiler/src/decompile/cpp/graph.hh
index 364a5258d..edd6ce865 100644
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/graph.hh
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/graph.hh
@@ -14,8 +14,14 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+
+#ifndef __GRAPH__
+#define __GRAPH__
+
#include "funcdata.hh"
extern void dump_dataflow_graph(Funcdata &data,ostream &s);
extern void dump_controlflow_graph(const string &name,const BlockGraph &graph,ostream &s);
extern void dump_dom_graph(const string &name,const BlockGraph &graph,ostream &s);
+
+#endif
diff --git a/Ghidra/Features/Decompiler/src/decompile/cpp/ifaceterm.hh b/Ghidra/Features/Decompiler/src/decompile/cpp/ifaceterm.hh
index 3ca912dd6..0b70d8b22 100644
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/ifaceterm.hh
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/ifaceterm.hh
@@ -16,6 +16,9 @@
/// \file ifaceterm.hh
/// \brief Add some terminal capabilities to the command-line interface (IfaceStatus)
+#ifndef __IFACE_TERM__
+#define __IFACE_TERM__
+
#include "interface.hh"
#ifdef __TERMINAL__
@@ -48,3 +51,5 @@ class IfaceTerm : public IfaceStatus {
virtual void popScript(void);
virtual bool isStreamFinished(void) const;
};
+
+#endif
diff --git a/Ghidra/Features/Decompiler/src/decompile/cpp/raw_arch.hh b/Ghidra/Features/Decompiler/src/decompile/cpp/raw_arch.hh
index 2245840a0..490abf901 100644
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/raw_arch.hh
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/raw_arch.hh
@@ -15,6 +15,10 @@
*/
/// \file raw_arch.hh
/// \brief Bare bones capability for treating a file as a raw executable image
+
+#ifndef __RAW_ARCH__
+#define __RAW_ARCH__
+
#include "sleigh_arch.hh"
#include "loadimage.hh"
@@ -46,3 +50,4 @@ class RawBinaryArchitecture : public SleighArchitecture {
virtual ~RawBinaryArchitecture(void) {}
};
+#endif
diff --git a/Ghidra/Features/Decompiler/src/decompile/cpp/slgh_compile.hh b/Ghidra/Features/Decompiler/src/decompile/cpp/slgh_compile.hh
index e7ab19185..8fd9ba2fd 100644
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/slgh_compile.hh
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/slgh_compile.hh
@@ -16,6 +16,9 @@
/// \file slgh_compile.hh
/// \brief High-level control of the sleigh compilation process
+#ifndef __SLGH_COMPILE__
+#define __SLGH_COMPILE__
+
#include "sleighbase.hh"
#include "pcodecompile.hh"
#include "filemanage.hh"
@@ -446,3 +449,5 @@ class SleighCompile : public SleighBase {
extern SleighCompile *slgh; ///< A global reference to the SLEIGH compiler accessible to the parse functions
extern int yydebug; ///< Debug state for the SLEIGH parse functions
+
+#endif
diff --git a/Ghidra/Features/Decompiler/src/decompile/cpp/xml_arch.hh b/Ghidra/Features/Decompiler/src/decompile/cpp/xml_arch.hh
index d395fb8a3..6371148b0 100644
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/xml_arch.hh
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/xml_arch.hh
@@ -15,6 +15,10 @@
*/
/// \file xml_arch.hh
/// \brief Extension to read executables based on an XML format
+
+#ifndef __XML_ARCH__
+#define __XML_ARCH__
+
#include "sleigh_arch.hh"
#include "loadimage_xml.hh"
@@ -45,3 +49,5 @@ class XmlArchitecture : public SleighArchitecture {
XmlArchitecture(const string &fname,const string &targ,ostream *estream); ///< Constructor
virtual ~XmlArchitecture(void) {}
};
+
+#endif
--
2.38.1
@@ -1,14 +1,15 @@
From 773dda85b84a03c8795e27f1df87e6024bdb208a Mon Sep 17 00:00:00 2001
From 290b06621c7a8c32c1470d16dbd8740876d57640 Mon Sep 17 00:00:00 2001
From: Alex Cameron <asc@tetsuo.sh>
Date: Wed, 3 Aug 2022 20:01:18 +1000
Subject: [PATCH] Use `stroull` instead of `stroul` to parse address offsets
Subject: [PATCH 2/5] Use `stroull` instead of `stroul` to parse address
offsets
---
Ghidra/Features/Decompiler/src/decompile/cpp/space.cc | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/Ghidra/Features/Decompiler/src/decompile/cpp/space.cc b/Ghidra/Features/Decompiler/src/decompile/cpp/space.cc
index c51e58560..c5cc7541d 100644
index bda09fc94..d077ee375 100644
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/space.cc
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/space.cc
@@ -16,6 +16,8 @@
@@ -17,10 +18,10 @@ index c51e58560..c5cc7541d 100644
+#include <climits>
+
namespace ghidra {
AttributeId ATTRIB_BASE = AttributeId("base",89);
AttributeId ATTRIB_DEADCODEDELAY = AttributeId("deadcodedelay",90);
AttributeId ATTRIB_DELAY = AttributeId("delay", 91);
@@ -268,7 +270,10 @@ uintb AddrSpace::read(const string &s,int4 &size) const
@@ -274,7 +276,10 @@ uintb AddrSpace::read(const string &s,int4 &size) const
}
}
catch(LowlevelError &err) { // Name doesn't exist
@@ -33,5 +34,5 @@ index c51e58560..c5cc7541d 100644
enddata = (const char *) tmpdata;
if (enddata - s.c_str() == s.size()) { // If no size or offset override
--
2.32.1 (Apple Git-133)
2.44.0
@@ -0,0 +1,26 @@
From a7fc8b440ab58cb377460e11c7449488ff5abc96 Mon Sep 17 00:00:00 2001
From: Eric Kilmer <eric.d.kilmer@gmail.com>
Date: Sat, 30 Mar 2024 18:46:16 -0400
Subject: [PATCH 5/5] Add missing index check to prevent errors in Windows
Not sure why this only appears when testing on Windows.
---
Ghidra/Features/Decompiler/src/decompile/cpp/ifacedecomp.cc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Ghidra/Features/Decompiler/src/decompile/cpp/ifacedecomp.cc b/Ghidra/Features/Decompiler/src/decompile/cpp/ifacedecomp.cc
index ac94d261c..a76ad389b 100644
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/ifacedecomp.cc
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/ifacedecomp.cc
@@ -1842,7 +1842,7 @@ void IfcProtooverride::execute(istream &s)
s >> ws;
Address callpoint(parse_machaddr(s,discard,*dcp->conf->types));
int4 i;
- for(i=0;dcp->fd->numCalls();++i)
+ for(i=0;i<dcp->fd->numCalls();++i)
if (dcp->fd->getCallSpecs(i)->getOp()->getAddr() == callpoint) break;
if (i == dcp->fd->numCalls())
throw IfaceExecutionError("No call is made at this address");
--
2.44.0
+37 -17
View File
@@ -22,37 +22,43 @@ set_property(CACHE sleigh_RELEASE_TYPE PROPERTY STRINGS "stable" "HEAD")
find_package(Git REQUIRED)
# Ghidra pinned stable version commit
set(ghidra_version "10.2")
set(ghidra_version "11.1")
set(ghidra_git_tag "Ghidra_${ghidra_version}_build")
set(ghidra_shallow TRUE)
set(sleigh_ADDITIONAL_PATCHES "" CACHE STRING
"The accepted patch format is git patch files, to be applied via git am. The format of the list is a CMake semicolon separated list.")
# See this thread for more details https://github.community/t/github-actions-bot-email-address/17204/5
set(ghidra_patch_user "github-actions[bot]")
set(ghidra_patch_email "41898282+github-actions[bot]@users.noreply.github.com")
# pinned stable patches list
set(ghidra_patches
PATCH_COMMAND "${GIT_EXECUTABLE}" am --ignore-space-change --ignore-whitespace --no-gpg-sign
"${CMAKE_CURRENT_LIST_DIR}/patches/stable/0001-Small-improvements-to-C-decompiler-testing-from-CLI.patch"
"${CMAKE_CURRENT_LIST_DIR}/patches/stable/0002-Add-include-guards-to-decompiler-C-headers.patch"
"${CMAKE_CURRENT_LIST_DIR}/patches/stable/0003-Fix-UBSAN-errors-in-decompiler.patch"
"${CMAKE_CURRENT_LIST_DIR}/patches/stable/0004-Use-stroull-instead-of-stroul-to-parse-address-offse.patch"
PATCH_COMMAND "${GIT_EXECUTABLE}" config user.name "${ghidra_patch_user}" &&
"${GIT_EXECUTABLE}" config user.email "${ghidra_patch_email}" &&
"${GIT_EXECUTABLE}" am --ignore-space-change --ignore-whitespace --no-gpg-sign
"${CMAKE_CURRENT_LIST_DIR}/patches/stable/0001-Fix-UBSAN-errors-in-decompiler.patch"
"${CMAKE_CURRENT_LIST_DIR}/patches/stable/0002-Use-stroull-instead-of-stroul-to-parse-address-offse.patch"
"${CMAKE_CURRENT_LIST_DIR}/patches/stable/0005-Add-missing-index-check-to-prevent-errors-in-Windows.patch"
)
# Ghidra pinned commits used for pinning last known working HEAD commit
if("${sleigh_RELEASE_TYPE}" STREQUAL "HEAD")
# TODO: Try to remember to look at Ghidra/application.properties
# TODO: CMake only likes numeric characters in the version string....
set(ghidra_head_version "10.3")
set(ghidra_head_version "11.2")
set(ghidra_version "${ghidra_head_version}")
set(ghidra_head_git_tag "97097daa681d43ee3a57c10523c382ec7cfafa88")
set(ghidra_head_git_tag "195abea7e4a4a81a31077e90026e2f4ea0c30c40")
set(ghidra_git_tag "${ghidra_head_git_tag}")
set(ghidra_shallow FALSE)
set(ghidra_patches
PATCH_COMMAND "${GIT_EXECUTABLE}" am --ignore-space-change --ignore-whitespace --no-gpg-sign
"${CMAKE_CURRENT_LIST_DIR}/patches/HEAD/0001-Small-improvements-to-C-decompiler-testing-from-CLI.patch"
"${CMAKE_CURRENT_LIST_DIR}/patches/HEAD/0002-Add-include-guards-to-decompiler-C-headers.patch"
"${CMAKE_CURRENT_LIST_DIR}/patches/HEAD/0003-Fix-UBSAN-errors-in-decompiler.patch"
"${CMAKE_CURRENT_LIST_DIR}/patches/HEAD/0004-Use-stroull-instead-of-stroul-to-parse-address-offse.patch"
PATCH_COMMAND "${GIT_EXECUTABLE}" config user.name "${ghidra_patch_user}" &&
"${GIT_EXECUTABLE}" config user.email "${ghidra_patch_email}" &&
"${GIT_EXECUTABLE}" am --ignore-space-change --ignore-whitespace --no-gpg-sign
"${CMAKE_CURRENT_LIST_DIR}/patches/HEAD/0001-Fix-UBSAN-errors-in-decompiler.patch"
"${CMAKE_CURRENT_LIST_DIR}/patches/HEAD/0002-Use-stroull-instead-of-stroul-to-parse-address-offse.patch"
"${CMAKE_CURRENT_LIST_DIR}/patches/HEAD/0005-Add-missing-index-check-to-prevent-errors-in-Windows.patch"
)
string(SUBSTRING "${ghidra_git_tag}" 0 7 ghidra_short_commit)
else()
@@ -158,11 +164,14 @@ set(sleigh_deccore_source_list
"${library_root}/opbehavior.cc"
"${library_root}/paramid.cc"
"${library_root}/unionresolve.cc"
"${library_root}/modelrules.cc"
"${library_root}/signature.cc"
"${library_root}/multiprecision.cc"
)
#if("${sleigh_RELEASE_TYPE}" STREQUAL "HEAD")
# list(APPEND sleigh_deccore_source_list
# )
#endif()
# if("${sleigh_RELEASE_TYPE}" STREQUAL "HEAD")
# list(APPEND sleigh_deccore_source_list
# )
# endif()
set(sleigh_extra_source_list
"${library_root}/callgraph.cc"
@@ -191,7 +200,13 @@ set(sleigh_source_list
"${library_root}/semantics.cc"
"${library_root}/context.cc"
"${library_root}/filemanage.cc"
"${library_root}/slaformat.cc"
"${library_root}/compression.cc"
)
# if("${sleigh_RELEASE_TYPE}" STREQUAL "HEAD")
# list(APPEND sleigh_source_list
# )
# endif()
set(sleigh_ghidra_source_list
"${library_root}/ghidra_arch.cc"
@@ -205,7 +220,12 @@ set(sleigh_ghidra_source_list
"${library_root}/ghidra_process.cc"
"${library_root}/comment_ghidra.cc"
"${library_root}/string_ghidra.cc"
"${library_root}/signature_ghidra.cc"
)
# if("${sleigh_RELEASE_TYPE}" STREQUAL "HEAD")
# list(APPEND sleigh_ghidra_source_list
# )
# endif()
set(sleigh_slacomp_source_list
"${library_root}/slgh_compile.cc"
+12
View File
@@ -28,11 +28,14 @@ set(spec_file_list
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/ARM/data/languages/ARM7_le.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/ARM/data/languages/ARM8_be.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/ARM/data/languages/ARM8_le.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/ARM/data/languages/ARM8m_be.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/ARM/data/languages/ARM8m_le.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/Atmel/data/languages/avr32a.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/Atmel/data/languages/avr8.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/Atmel/data/languages/avr8e.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/Atmel/data/languages/avr8eind.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/Atmel/data/languages/avr8xmega.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/BPF/data/languages/BPF_le.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/CP1600/data/languages/CP1600.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/CR16/data/languages/CR16B.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/CR16/data/languages/CR16C.slaspec"
@@ -56,6 +59,10 @@ set(spec_file_list
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/HCS12/data/languages/HCS12.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/HCS12/data/languages/HCS12X.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/JVM/data/languages/JVM.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/Loongarch/data/languages/loongarch32_f32.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/Loongarch/data/languages/loongarch32_f64.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/Loongarch/data/languages/loongarch64_f32.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/Loongarch/data/languages/loongarch64_f64.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/M8C/data/languages/m8c.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/MC6800/data/languages/6805.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/MC6800/data/languages/6809.slaspec"
@@ -86,6 +93,8 @@ set(spec_file_list
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/PowerPC/data/languages/ppc_32_be.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/PowerPC/data/languages/ppc_32_e500_be.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/PowerPC/data/languages/ppc_32_e500_le.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/PowerPC/data/languages/ppc_32_e500mc_be.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/PowerPC/data/languages/ppc_32_e500mc_le.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/PowerPC/data/languages/ppc_32_le.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/PowerPC/data/languages/ppc_32_quicciii_be.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/PowerPC/data/languages/ppc_32_quicciii_le.slaspec"
@@ -121,8 +130,11 @@ set(spec_file_list
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/Toy/data/languages/toy_wsz_be.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/Toy/data/languages/toy_wsz_le.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/V850/data/languages/V850.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/Xtensa/data/languages/xtensa_be.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/Xtensa/data/languages/xtensa_le.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/Z80/data/languages/z180.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/Z80/data/languages/z80.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/eBPF/data/languages/eBPF_le.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/tricore/data/languages/tricore.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/x86/data/languages/x86-64.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/x86/data/languages/x86.slaspec"
+12
View File
@@ -28,11 +28,14 @@ set(spec_file_list
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/ARM/data/languages/ARM7_le.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/ARM/data/languages/ARM8_be.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/ARM/data/languages/ARM8_le.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/ARM/data/languages/ARM8m_be.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/ARM/data/languages/ARM8m_le.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/Atmel/data/languages/avr32a.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/Atmel/data/languages/avr8.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/Atmel/data/languages/avr8e.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/Atmel/data/languages/avr8eind.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/Atmel/data/languages/avr8xmega.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/BPF/data/languages/BPF_le.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/CP1600/data/languages/CP1600.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/CR16/data/languages/CR16B.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/CR16/data/languages/CR16C.slaspec"
@@ -56,6 +59,10 @@ set(spec_file_list
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/HCS12/data/languages/HCS12.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/HCS12/data/languages/HCS12X.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/JVM/data/languages/JVM.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/Loongarch/data/languages/loongarch32_f32.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/Loongarch/data/languages/loongarch32_f64.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/Loongarch/data/languages/loongarch64_f32.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/Loongarch/data/languages/loongarch64_f64.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/M8C/data/languages/m8c.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/MC6800/data/languages/6805.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/MC6800/data/languages/6809.slaspec"
@@ -86,6 +93,8 @@ set(spec_file_list
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/PowerPC/data/languages/ppc_32_be.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/PowerPC/data/languages/ppc_32_e500_be.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/PowerPC/data/languages/ppc_32_e500_le.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/PowerPC/data/languages/ppc_32_e500mc_be.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/PowerPC/data/languages/ppc_32_e500mc_le.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/PowerPC/data/languages/ppc_32_le.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/PowerPC/data/languages/ppc_32_quicciii_be.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/PowerPC/data/languages/ppc_32_quicciii_le.slaspec"
@@ -121,8 +130,11 @@ set(spec_file_list
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/Toy/data/languages/toy_wsz_be.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/Toy/data/languages/toy_wsz_le.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/V850/data/languages/V850.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/Xtensa/data/languages/xtensa_be.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/Xtensa/data/languages/xtensa_le.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/Z80/data/languages/z180.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/Z80/data/languages/z80.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/eBPF/data/languages/eBPF_le.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/tricore/data/languages/tricore.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/x86/data/languages/x86-64.slaspec"
"${ghidrasource_SOURCE_DIR}/Ghidra/Processors/x86/data/languages/x86.slaspec"
+2
View File
@@ -59,6 +59,8 @@ target_include_directories(sleigh_support
SYSTEM
PUBLIC
"$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/include>"
# For libconfig.h
"$<BUILD_INTERFACE:${PROJECT_BINARY_DIR}/include>"
)
if(NOT CMAKE_SKIP_INSTALL_RULES)
+115 -102
View File
@@ -15,108 +15,121 @@
#pragma GCC diagnostic ignored "-Wsign-compare"
#pragma GCC diagnostic ignored "-Wunused-parameter"
#endif
#include <sleigh/action.hh>
#include <sleigh/address.hh>
#include <sleigh/architecture.hh>
#include <sleigh/block.hh>
#include <sleigh/blockaction.hh>
#include <sleigh/callgraph.hh>
#include <sleigh/capability.hh>
#include <sleigh/cast.hh>
#include <sleigh/codedata.hh>
#include <sleigh/comment.hh>
#include <sleigh/comment_ghidra.hh>
#include <sleigh/condexe.hh>
#include <sleigh/context.hh>
#include <sleigh/coreaction.hh>
#include <sleigh/cover.hh>
#include <sleigh/cpool.hh>
#include <sleigh/cpool_ghidra.hh>
#include <sleigh/crc32.hh>
#include <sleigh/database.hh>
#include <sleigh/database_ghidra.hh>
#include <sleigh/doccore.hh>
#include <sleigh/docmain.hh>
#include <sleigh/double.hh>
#include <sleigh/dynamic.hh>
#include <sleigh/emulate.hh>
#include <sleigh/emulateutil.hh>
#include <sleigh/error.hh>
#include <sleigh/filemanage.hh>
#include <sleigh/float.hh>
#include <sleigh/flow.hh>
#include <sleigh/fspec.hh>
#include <sleigh/funcdata.hh>
#include <sleigh/ghidra_arch.hh>
#include <sleigh/ghidra_context.hh>
#include <sleigh/ghidra_process.hh>
#include <sleigh/ghidra_translate.hh>
#include <sleigh/globalcontext.hh>
#include <sleigh/grammar.hh>
#include <sleigh/graph.hh>
#include <sleigh/heritage.hh>
#include <sleigh/ifacedecomp.hh>
#include <sleigh/ifaceterm.hh>
#include <sleigh/inject_ghidra.hh>
#include <sleigh/inject_sleigh.hh>
#include <sleigh/interface.hh>
#include <sleigh/jumptable.hh>
#include <sleigh/libdecomp.hh>
#include <sleigh/loadimage.hh>
#include <sleigh/loadimage_ghidra.hh>
#include <sleigh/loadimage_xml.hh>
#include <sleigh/memstate.hh>
#include <sleigh/merge.hh>
#include <sleigh/op.hh>
#include <sleigh/opbehavior.hh>
#include <sleigh/opcodes.hh>
#include <sleigh/options.hh>
#include <sleigh/override.hh>
#include <sleigh/paramid.hh>
#include <sleigh/partmap.hh>
#include <sleigh/pcodecompile.hh>
#include <sleigh/pcodeinject.hh>
#include <sleigh/pcodeparse.hh>
#include <sleigh/pcoderaw.hh>
#include <sleigh/prefersplit.hh>
#include <sleigh/prettyprint.hh>
#include <sleigh/printc.hh>
#include <sleigh/printjava.hh>
#include <sleigh/printlanguage.hh>
#include <sleigh/rangemap.hh>
#include <sleigh/rangeutil.hh>
#include <sleigh/raw_arch.hh>
#include <sleigh/ruleaction.hh>
#include <sleigh/rulecompile.hh>
#include <sleigh/semantics.hh>
#include <sleigh/sleigh.hh>
#include <sleigh/sleigh_arch.hh>
#include <sleigh/sleighbase.hh>
#include <sleigh/slgh_compile.hh>
#include <sleigh/slghparse.hh>
#include <sleigh/slghpatexpress.hh>
#include <sleigh/slghpattern.hh>
#include <sleigh/slghsymbol.hh>
#include <sleigh/space.hh>
#include <sleigh/string_ghidra.hh>
#include <sleigh/stringmanage.hh>
#include <sleigh/subflow.hh>
#include <sleigh/testfunction.hh>
#include <sleigh/transform.hh>
#include <sleigh/translate.hh>
#include <sleigh/type.hh>
#include <sleigh/typegrp_ghidra.hh>
#include <sleigh/typeop.hh>
#include <sleigh/types.h>
#include <sleigh/unify.hh>
#include <sleigh/userop.hh>
#include <sleigh/variable.hh>
#include <sleigh/varmap.hh>
#include <sleigh/varnode.hh>
#include <sleigh/xml.hh>
#include <sleigh/xml_arch.hh>
#include <sleigh/unionresolve.hh>
#include <sleigh/marshal.hh>
#include <ghidra/action.hh>
#include <ghidra/address.hh>
#include <ghidra/architecture.hh>
#include <ghidra/block.hh>
#include <ghidra/blockaction.hh>
#include <ghidra/callgraph.hh>
#include <ghidra/capability.hh>
#include <ghidra/cast.hh>
#include <ghidra/codedata.hh>
#include <ghidra/comment.hh>
#include <ghidra/comment_ghidra.hh>
#include <ghidra/condexe.hh>
#include <ghidra/context.hh>
#include <ghidra/coreaction.hh>
#include <ghidra/cover.hh>
#include <ghidra/cpool.hh>
#include <ghidra/cpool_ghidra.hh>
#include <ghidra/crc32.hh>
#include <ghidra/database.hh>
#include <ghidra/database_ghidra.hh>
#include <ghidra/doccore.hh>
#include <ghidra/docmain.hh>
#include <ghidra/double.hh>
#include <ghidra/dynamic.hh>
#include <ghidra/emulate.hh>
#include <ghidra/emulateutil.hh>
#include <ghidra/error.hh>
#include <ghidra/filemanage.hh>
#include <ghidra/float.hh>
#include <ghidra/flow.hh>
#include <ghidra/fspec.hh>
#include <ghidra/funcdata.hh>
#include <ghidra/ghidra_arch.hh>
#include <ghidra/ghidra_context.hh>
#include <ghidra/ghidra_process.hh>
#include <ghidra/ghidra_translate.hh>
#include <ghidra/globalcontext.hh>
#include <ghidra/grammar.hh>
#include <ghidra/graph.hh>
#include <ghidra/heritage.hh>
#include <ghidra/ifacedecomp.hh>
#include <ghidra/ifaceterm.hh>
#include <ghidra/inject_ghidra.hh>
#include <ghidra/inject_sleigh.hh>
#include <ghidra/interface.hh>
#include <ghidra/jumptable.hh>
#include <ghidra/libdecomp.hh>
#include <ghidra/loadimage.hh>
#include <ghidra/loadimage_ghidra.hh>
#include <ghidra/loadimage_xml.hh>
#include <ghidra/memstate.hh>
#include <ghidra/merge.hh>
#include <ghidra/op.hh>
#include <ghidra/opbehavior.hh>
#include <ghidra/opcodes.hh>
#include <ghidra/options.hh>
#include <ghidra/override.hh>
#include <ghidra/paramid.hh>
#include <ghidra/partmap.hh>
#include <ghidra/pcodecompile.hh>
#include <ghidra/pcodeinject.hh>
#include <ghidra/pcodeparse.hh>
#include <ghidra/pcoderaw.hh>
#include <ghidra/prefersplit.hh>
#include <ghidra/prettyprint.hh>
#include <ghidra/printc.hh>
#include <ghidra/printjava.hh>
#include <ghidra/printlanguage.hh>
#include <ghidra/rangemap.hh>
#include <ghidra/rangeutil.hh>
#include <ghidra/raw_arch.hh>
#include <ghidra/ruleaction.hh>
#include <ghidra/rulecompile.hh>
#include <ghidra/semantics.hh>
#include <ghidra/sleigh.hh>
#include <ghidra/sleigh_arch.hh>
#include <ghidra/sleighbase.hh>
#include <ghidra/slgh_compile.hh>
// This is required because slghparse.hh does not have a namespace block
namespace ghidra {
#include <ghidra/slghparse.hh>
} // End namespace ghidra
#include <ghidra/slghpatexpress.hh>
#include <ghidra/slghpattern.hh>
#include <ghidra/slghsymbol.hh>
#include <ghidra/space.hh>
#include <ghidra/string_ghidra.hh>
#include <ghidra/stringmanage.hh>
#include <ghidra/subflow.hh>
#include <ghidra/testfunction.hh>
#include <ghidra/transform.hh>
#include <ghidra/translate.hh>
#include <ghidra/type.hh>
#include <ghidra/typegrp_ghidra.hh>
#include <ghidra/typeop.hh>
#include <ghidra/types.h>
#include <ghidra/unify.hh>
#include <ghidra/userop.hh>
#include <ghidra/variable.hh>
#include <ghidra/varmap.hh>
#include <ghidra/varnode.hh>
#include <ghidra/xml.hh>
#include <ghidra/xml_arch.hh>
#include <ghidra/unionresolve.hh>
#include <ghidra/marshal.hh>
#include <ghidra/analyzesigs.hh>
#include <ghidra/modelrules.hh>
#include <ghidra/signature.hh>
#include <ghidra/signature_ghidra.hh>
#include <ghidra/compression.hh>
#include <ghidra/multiprecision.hh>
#include <ghidra/slaformat.hh>
// #ifdef sleigh_RELEASE_IS_HEAD
// #endif
#ifndef _MSC_VER
#pragma GCC diagnostic pop
+34 -4
View File
@@ -20,14 +20,16 @@ add_executable(sleigh_ghidra_test
"${library_root}/../unittests/testcirclerange.cc"
"${library_root}/../unittests/testfloatemu.cc"
"${library_root}/../unittests/testfuncproto.cc"
"${library_root}/../unittests/testtypes.cc"
"${library_root}/../unittests/testmarshal.cc"
"${library_root}/../unittests/testparamstore.cc"
)
#if(sleigh_RELEASE_IS_HEAD)
# target_sources(sleigh_ghidra_test PRIVATE
# )
#endif()
# if(sleigh_RELEASE_IS_HEAD)
# target_sources(sleigh_ghidra_test PRIVATE
# )
# endif()
target_compile_features(sleigh_ghidra_test PRIVATE cxx_std_11)
target_include_directories(sleigh_ghidra_test PRIVATE "${library_root}")
@@ -40,6 +42,8 @@ if(HAVE_TERMIOS_H)
endif()
sleigh_add_optional_defines(sleigh_ghidra_test PRIVATE)
target_link_libraries(sleigh_ghidra_test PRIVATE ZLIB::ZLIB)
add_test(
NAME sleigh_ghidra_unittest
COMMAND sleigh_ghidra_test -sleighpath "${PROJECT_BINARY_DIR}" unittests
@@ -51,3 +55,29 @@ add_test(
-path "${library_root}/../datatests"
datatests
)
#
# Test for removal of using namespace std patches
#
if(sleigh_BUILD_SUPPORT)
add_executable(sleigh_namespace_std_test
no_using_namespace_std.cpp
)
target_link_libraries(sleigh_namespace_std_test
PRIVATE
sleigh::sla
sleigh::decomp
sleigh::support
)
if(WIN32)
# Ensure no issue with /permissive- and std::byte colliding deeply in the
# sleigh headers when compiling against Windows headers
target_compile_features(sleigh_namespace_std_test PRIVATE cxx_std_20)
endif()
# Really only testing that it compiles
add_test(
NAME sleigh_namespace_std_test
COMMAND sleigh_namespace_std_test
)
endif()
+13
View File
@@ -0,0 +1,13 @@
struct vector {};
struct set {};
struct unordered_map {};
struct string {};
#include <sleigh/libsleigh.hh>
int main() {
vector v;
set s;
unordered_map m;
string str;
}
+3
View File
@@ -50,6 +50,9 @@ set_target_properties(sleigh_decompiler PROPERTIES
OUTPUT_NAME_DEBUG decomp_dbg
)
find_package(ZLIB REQUIRED)
target_link_libraries(sleigh_decompiler PRIVATE ZLIB::ZLIB)
if(NOT CMAKE_SKIP_INSTALL_RULES)
include("GNUInstallDirs")
+3
View File
@@ -46,6 +46,9 @@ set_target_properties(sleigh_ghidra PROPERTIES
OUTPUT_NAME_DEBUG ghidra_dbg
)
find_package(ZLIB REQUIRED)
target_link_libraries(sleigh_ghidra PRIVATE ZLIB::ZLIB)
if(NOT CMAKE_SKIP_INSTALL_RULES)
include("GNUInstallDirs")
+3
View File
@@ -36,6 +36,9 @@ set_target_properties(sleigh_sleigh PROPERTIES
OUTPUT_NAME_DEBUG sleigh_dbg
)
find_package(ZLIB REQUIRED)
target_link_libraries(sleigh_sleigh PRIVATE ZLIB::ZLIB)
if(NOT CMAKE_SKIP_INSTALL_RULES)
include("GNUInstallDirs")