mirror of
https://github.com/lifting-bits/sleigh
synced 2026-06-21 13:56:12 +00:00
Compare commits
43 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 81a04f2e1c | |||
| a0345f9df2 | |||
| 0c3b79aa33 | |||
| b4f479a86f | |||
| ee82a39842 | |||
| 71870b0bcd | |||
| b2cd7abc2e | |||
| 40d91fd61b | |||
| 67c695f263 | |||
| c4cab14295 | |||
| e46879c87f | |||
| 5d9f0a1862 | |||
| f9bbbbcdb0 | |||
| cfa08a5f9c | |||
| 7702679f9e | |||
| 8ab198294f | |||
| 064320f431 | |||
| 0ea1abe327 | |||
| 8c12126d65 | |||
| 10ad498c54 | |||
| 534adad29a | |||
| 393adb711e | |||
| fb4dec76cb | |||
| 331f4cc2b7 | |||
| 0d84e6ffb5 | |||
| f84470ac10 | |||
| 04d1204eb5 | |||
| 1c5fad6a6b | |||
| 459824f983 | |||
| ea5986827e | |||
| 393ed42fc6 | |||
| 57e6d7c79d | |||
| 8c5b8049a6 | |||
| 7b1232ec99 | |||
| f9a4905c31 | |||
| ff5929e1fc | |||
| 844e5e07fe | |||
| 51bd95f360 | |||
| f63b99a700 | |||
| f1d1eab45f | |||
| 83ae3b5dfe | |||
| 548b28c67d | |||
| f23739ee3f |
@@ -25,7 +25,7 @@ jobs:
|
||||
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
|
||||
@@ -182,7 +182,7 @@ jobs:
|
||||
# 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: ${{ env.DEB_PACKAGE_NAME }}
|
||||
path: ${{ env.DEB_PACKAGE_PATH }}
|
||||
@@ -196,7 +196,7 @@ jobs:
|
||||
# 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: ${{ env.RPM_PACKAGE_NAME }}
|
||||
path: ${{ env.RPM_PACKAGE_PATH }}
|
||||
@@ -209,7 +209,7 @@ jobs:
|
||||
# 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: ${{ env.TGZ_PACKAGE_NAME }}
|
||||
path: ${{ env.TGZ_PACKAGE_PATH }}
|
||||
|
||||
@@ -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'
|
||||
@@ -27,7 +27,7 @@ jobs:
|
||||
|
||||
# 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:
|
||||
|
||||
+16
-9
@@ -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,28 @@ 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"
|
||||
)
|
||||
#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")
|
||||
|
||||
#
|
||||
# sla
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
From 098585db4fa8c8eb9184851a40ef6706f1d176ed Mon Sep 17 00:00:00 2001
|
||||
From 67ac779382508ab0d5ff10bcb0a8453068cce5a2 Mon Sep 17 00:00:00 2001
|
||||
From: Alex Cameron <asc@tetsuo.sh>
|
||||
Date: Mon, 7 Feb 2022 02:02:03 +1100
|
||||
Subject: [PATCH 1/3] Fix UBSAN errors in decompiler
|
||||
Date: Mon, 5 Jun 2023 16:45:04 +1200
|
||||
Subject: [PATCH 1/2] 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 +++++-
|
||||
@@ -17,32 +16,10 @@ Subject: [PATCH 1/3] Fix UBSAN errors in decompiler
|
||||
.../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(-)
|
||||
12 files changed, 57 insertions(+), 21 deletions(-)
|
||||
|
||||
diff --git a/Ghidra/Features/Decompiler/src/decompile/cpp/address.cc b/Ghidra/Features/Decompiler/src/decompile/cpp/address.cc
|
||||
index 2eb08b96a..07bf3ba55 100644
|
||||
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/address.cc
|
||||
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/address.cc
|
||||
@@ -687,7 +687,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;
|
||||
@@ -701,7 +701,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 1402bbd80..4b271e055 100644
|
||||
index 82771cc04..da78c8071 100644
|
||||
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/fspec.cc
|
||||
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/fspec.cc
|
||||
@@ -2661,8 +2661,12 @@ void ProtoModelMerged::decode(Decoder &decoder)
|
||||
@@ -97,16 +74,16 @@ index 0e3decc80..403ec35a7 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 fcd75cc7d..6da2a2a7c 100644
|
||||
index aebcfd910..6c47e6eb1 100644
|
||||
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/opbehavior.cc
|
||||
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/opbehavior.cc
|
||||
@@ -750,7 +750,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;
|
||||
@@ -159,7 +136,7 @@ index ca9d71ab9..85d4dd281 100644
|
||||
return res;
|
||||
}
|
||||
diff --git a/Ghidra/Features/Decompiler/src/decompile/cpp/ruleaction.cc b/Ghidra/Features/Decompiler/src/decompile/cpp/ruleaction.cc
|
||||
index f11ab8dea..66a0b32fc 100644
|
||||
index ae2e502c1..a22b8ebdc 100644
|
||||
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/ruleaction.cc
|
||||
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/ruleaction.cc
|
||||
@@ -976,7 +976,12 @@ int4 RulePullsubIndirect::applyOp(PcodeOp *op,Funcdata &data)
|
||||
@@ -176,7 +153,7 @@ index f11ab8dea..66a0b32fc 100644
|
||||
consume = ~consume;
|
||||
if ((consume & indir->getIn(0)->getConsume())!=0) return 0;
|
||||
|
||||
@@ -6778,8 +6783,9 @@ int4 RulePtrsubCharConstant::applyOp(PcodeOp *op,Funcdata &data)
|
||||
@@ -6789,8 +6794,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 +165,7 @@ index f11ab8dea..66a0b32fc 100644
|
||||
Varnode *vn1 = op->getIn(1);
|
||||
if (!vn1->isConstant()) return 0;
|
||||
Varnode *outvn = op->getOut();
|
||||
@@ -8509,7 +8515,11 @@ int4 RuleSubvarSubpiece::applyOp(PcodeOp *op,Funcdata &data)
|
||||
@@ -8600,7 +8606,11 @@ int4 RuleSubvarSubpiece::applyOp(PcodeOp *op,Funcdata &data)
|
||||
Varnode *outvn = op->getOut();
|
||||
int4 flowsize = outvn->getSize();
|
||||
uintb mask = calc_mask( flowsize );
|
||||
@@ -225,7 +202,7 @@ diff --git a/Ghidra/Features/Decompiler/src/decompile/cpp/semantics.hh b/Ghidra/
|
||||
index 8e283dca0..652600c16 100644
|
||||
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/semantics.hh
|
||||
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/semantics.hh
|
||||
@@ -48,7 +48,7 @@ class ConstTpl {
|
||||
@@ -48,7 +48,7 @@ private:
|
||||
static void printHandleSelector(ostream &s,v_field val);
|
||||
static v_field readHandleSelector(const string &name);
|
||||
public:
|
||||
@@ -262,10 +239,10 @@ index b308e1b71..af2982aee 100644
|
||||
}
|
||||
|
||||
diff --git a/Ghidra/Features/Decompiler/src/decompile/cpp/type.cc b/Ghidra/Features/Decompiler/src/decompile/cpp/type.cc
|
||||
index f1c0b6452..68de180fc 100644
|
||||
index 32ede6b0f..238d97f40 100644
|
||||
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/type.cc
|
||||
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/type.cc
|
||||
@@ -3296,8 +3296,8 @@ void TypeFactory::recalcPointerSubmeta(Datatype *base,sub_metatype sub)
|
||||
@@ -3384,8 +3384,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()) {
|
||||
@@ -289,5 +266,5 @@ index c35bde877..061e53677 100644
|
||||
uintb true_result = ((uintb)(int32_t)f) & 0xffffffff;
|
||||
uintb encoding = format.getEncoding(f);
|
||||
--
|
||||
2.40.0
|
||||
2.39.2 (Apple Git-143)
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From a2d412ce5edb750ee1f768a4a7ebfeaece6f7976 Mon Sep 17 00:00:00 2001
|
||||
From 9fd26cd754b6f83e45199db896fd0fcea23cd59d Mon Sep 17 00:00:00 2001
|
||||
From: Alex Cameron <asc@tetsuo.sh>
|
||||
Date: Wed, 3 Aug 2022 20:01:18 +1000
|
||||
Subject: [PATCH 2/3] Use `stroull` instead of `stroul` to parse address
|
||||
Subject: [PATCH 2/2] Use `stroull` instead of `stroul` to parse address
|
||||
offsets
|
||||
|
||||
---
|
||||
@@ -34,5 +34,5 @@ index bf4e1dc96..594b4583a 100644
|
||||
enddata = (const char *) tmpdata;
|
||||
if (enddata - s.c_str() == s.size()) { // If no size or offset override
|
||||
--
|
||||
2.40.0
|
||||
2.39.2 (Apple Git-143)
|
||||
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
From 098585db4fa8c8eb9184851a40ef6706f1d176ed Mon Sep 17 00:00:00 2001
|
||||
From: Alex Cameron <asc@tetsuo.sh>
|
||||
Date: Mon, 7 Feb 2022 02:02:03 +1100
|
||||
Subject: [PATCH 1/3] Fix UBSAN errors in decompiler
|
||||
From 0e437cb96249306d17f26ff6614871ecd9b37359 Mon Sep 17 00:00:00 2001
|
||||
From: "github-actions[bot]"
|
||||
<41898282+github-actions[bot]@users.noreply.github.com>
|
||||
Date: Wed, 2 Aug 2023 23:19:42 +1000
|
||||
Subject: [PATCH 1/2] 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 +++++-
|
||||
@@ -17,32 +17,10 @@ Subject: [PATCH 1/3] Fix UBSAN errors in decompiler
|
||||
.../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(-)
|
||||
12 files changed, 57 insertions(+), 21 deletions(-)
|
||||
|
||||
diff --git a/Ghidra/Features/Decompiler/src/decompile/cpp/address.cc b/Ghidra/Features/Decompiler/src/decompile/cpp/address.cc
|
||||
index 2eb08b96a..07bf3ba55 100644
|
||||
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/address.cc
|
||||
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/address.cc
|
||||
@@ -687,7 +687,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;
|
||||
@@ -701,7 +701,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 1402bbd80..4b271e055 100644
|
||||
index 8380d3cd..a18d5007 100644
|
||||
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/fspec.cc
|
||||
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/fspec.cc
|
||||
@@ -2661,8 +2661,12 @@ void ProtoModelMerged::decode(Decoder &decoder)
|
||||
@@ -61,7 +39,7 @@ index 1402bbd80..4b271e055 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 f77817073..283d81c31 100644
|
||||
index f7781707..283d81c3 100644
|
||||
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/funcdata_varnode.cc
|
||||
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/funcdata_varnode.cc
|
||||
@@ -503,7 +503,13 @@ void Funcdata::setHighLevel(void)
|
||||
@@ -80,7 +58,7 @@ index f77817073..283d81c31 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 0e3decc80..403ec35a7 100644
|
||||
index 0e3decc8..403ec35a 100644
|
||||
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/op.cc
|
||||
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/op.cc
|
||||
@@ -672,7 +672,11 @@ uintb PcodeOp::getNZMaskLocal(bool cliploop) const
|
||||
@@ -97,7 +75,7 @@ index 0e3decc80..403ec35a7 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 fcd75cc7d..6da2a2a7c 100644
|
||||
index fcd75cc7..ed0e005a 100644
|
||||
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/opbehavior.cc
|
||||
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/opbehavior.cc
|
||||
@@ -750,7 +750,13 @@ uintb OpBehaviorPiece::evaluateBinary(int4 sizeout,int4 sizein,uintb in1,uintb i
|
||||
@@ -106,7 +84,7 @@ index fcd75cc7d..6da2a2a7c 100644
|
||||
{
|
||||
- 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,7 +94,7 @@ index fcd75cc7d..6da2a2a7c 100644
|
||||
}
|
||||
|
||||
diff --git a/Ghidra/Features/Decompiler/src/decompile/cpp/pcodecompile.cc b/Ghidra/Features/Decompiler/src/decompile/cpp/pcodecompile.cc
|
||||
index ca9d71ab9..85d4dd281 100644
|
||||
index ca9d71ab..85d4dd28 100644
|
||||
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/pcodecompile.cc
|
||||
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/pcodecompile.cc
|
||||
@@ -621,8 +621,10 @@ vector<OpTpl *> *PcodeCompile::assignBitRange(VarnodeTpl *vn,uint4 bitoffset,uin
|
||||
@@ -159,7 +137,7 @@ index ca9d71ab9..85d4dd281 100644
|
||||
return res;
|
||||
}
|
||||
diff --git a/Ghidra/Features/Decompiler/src/decompile/cpp/ruleaction.cc b/Ghidra/Features/Decompiler/src/decompile/cpp/ruleaction.cc
|
||||
index f11ab8dea..66a0b32fc 100644
|
||||
index 4851365d..d069d1c9 100644
|
||||
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/ruleaction.cc
|
||||
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/ruleaction.cc
|
||||
@@ -976,7 +976,12 @@ int4 RulePullsubIndirect::applyOp(PcodeOp *op,Funcdata &data)
|
||||
@@ -176,7 +154,7 @@ index f11ab8dea..66a0b32fc 100644
|
||||
consume = ~consume;
|
||||
if ((consume & indir->getIn(0)->getConsume())!=0) return 0;
|
||||
|
||||
@@ -6778,8 +6783,9 @@ int4 RulePtrsubCharConstant::applyOp(PcodeOp *op,Funcdata &data)
|
||||
@@ -6782,8 +6787,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 +166,7 @@ index f11ab8dea..66a0b32fc 100644
|
||||
Varnode *vn1 = op->getIn(1);
|
||||
if (!vn1->isConstant()) return 0;
|
||||
Varnode *outvn = op->getOut();
|
||||
@@ -8509,7 +8515,11 @@ int4 RuleSubvarSubpiece::applyOp(PcodeOp *op,Funcdata &data)
|
||||
@@ -8593,7 +8599,11 @@ int4 RuleSubvarSubpiece::applyOp(PcodeOp *op,Funcdata &data)
|
||||
Varnode *outvn = op->getOut();
|
||||
int4 flowsize = outvn->getSize();
|
||||
uintb mask = calc_mask( flowsize );
|
||||
@@ -202,7 +180,7 @@ index f11ab8dea..66a0b32fc 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 2e3531ea2..42482be7c 100644
|
||||
index 2e3531ea..42482be7 100644
|
||||
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/semantics.cc
|
||||
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/semantics.cc
|
||||
@@ -22,6 +22,7 @@ ConstTpl::ConstTpl(const_type tp)
|
||||
@@ -222,10 +200,10 @@ index 2e3531ea2..42482be7c 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 8e283dca0..652600c16 100644
|
||||
index 8e283dca..652600c1 100644
|
||||
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/semantics.hh
|
||||
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/semantics.hh
|
||||
@@ -48,7 +48,7 @@ class ConstTpl {
|
||||
@@ -48,7 +48,7 @@ private:
|
||||
static void printHandleSelector(ostream &s,v_field val);
|
||||
static v_field readHandleSelector(const string &name);
|
||||
public:
|
||||
@@ -235,7 +213,7 @@ index 8e283dca0..652600c16 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 b40f74389..3c37958df 100644
|
||||
index b40f7438..3c37958d 100644
|
||||
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/slgh_compile.cc
|
||||
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/slgh_compile.cc
|
||||
@@ -2163,8 +2163,8 @@ string SleighCompile::checkSymbols(SymbolScope *scope)
|
||||
@@ -249,7 +227,7 @@ index b40f74389..3c37958df 100644
|
||||
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 b308e1b71..af2982aee 100644
|
||||
index b308e1b7..af2982ae 100644
|
||||
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/slghsymbol.cc
|
||||
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/slghsymbol.cc
|
||||
@@ -2569,7 +2569,7 @@ void ContextOp::restoreXml(const Element *el,SleighBase *trans)
|
||||
@@ -262,10 +240,10 @@ index b308e1b71..af2982aee 100644
|
||||
}
|
||||
|
||||
diff --git a/Ghidra/Features/Decompiler/src/decompile/cpp/type.cc b/Ghidra/Features/Decompiler/src/decompile/cpp/type.cc
|
||||
index f1c0b6452..68de180fc 100644
|
||||
index 30faf0b6..e76a0619 100644
|
||||
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/type.cc
|
||||
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/type.cc
|
||||
@@ -3296,8 +3296,8 @@ void TypeFactory::recalcPointerSubmeta(Datatype *base,sub_metatype sub)
|
||||
@@ -3359,8 +3359,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,7 +254,7 @@ index f1c0b6452..68de180fc 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 c35bde877..061e53677 100644
|
||||
index c35bde87..061e5367 100644
|
||||
--- a/Ghidra/Features/Decompiler/src/decompile/unittests/testfloatemu.cc
|
||||
+++ b/Ghidra/Features/Decompiler/src/decompile/unittests/testfloatemu.cc
|
||||
@@ -346,7 +346,7 @@ TEST(float_opTrunc_to_int) {
|
||||
@@ -289,5 +267,5 @@ index c35bde877..061e53677 100644
|
||||
uintb true_result = ((uintb)(int32_t)f) & 0xffffffff;
|
||||
uintb encoding = format.getEncoding(f);
|
||||
--
|
||||
2.40.0
|
||||
2.39.2 (Apple Git-143)
|
||||
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
From a2d412ce5edb750ee1f768a4a7ebfeaece6f7976 Mon Sep 17 00:00:00 2001
|
||||
From: Alex Cameron <asc@tetsuo.sh>
|
||||
Date: Wed, 3 Aug 2022 20:01:18 +1000
|
||||
Subject: [PATCH 2/3] Use `stroull` instead of `stroul` to parse address
|
||||
From 95f230f46bdb95aa4aab7f5d320691f87107fb36 Mon Sep 17 00:00:00 2001
|
||||
From: "github-actions[bot]"
|
||||
<41898282+github-actions[bot]@users.noreply.github.com>
|
||||
Date: Wed, 2 Aug 2023 23:20:14 +1000
|
||||
Subject: [PATCH 2/2] Use `stroull` instead of `stroul` to parse address
|
||||
offsets
|
||||
|
||||
---
|
||||
@@ -9,7 +10,7 @@ Subject: [PATCH 2/3] 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 bf4e1dc96..594b4583a 100644
|
||||
index bf4e1dc9..594b4583 100644
|
||||
--- a/Ghidra/Features/Decompiler/src/decompile/cpp/space.cc
|
||||
+++ b/Ghidra/Features/Decompiler/src/decompile/cpp/space.cc
|
||||
@@ -16,6 +16,8 @@
|
||||
@@ -34,5 +35,5 @@ index bf4e1dc96..594b4583a 100644
|
||||
enddata = (const char *) tmpdata;
|
||||
if (enddata - s.c_str() == s.size()) { // If no size or offset override
|
||||
--
|
||||
2.40.0
|
||||
2.39.2 (Apple Git-143)
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@ set_property(CACHE sleigh_RELEASE_TYPE PROPERTY STRINGS "stable" "HEAD")
|
||||
find_package(Git REQUIRED)
|
||||
|
||||
# Ghidra pinned stable version commit
|
||||
set(ghidra_version "10.3")
|
||||
set(ghidra_version "11.0")
|
||||
set(ghidra_git_tag "Ghidra_${ghidra_version}_build")
|
||||
set(ghidra_shallow TRUE)
|
||||
|
||||
@@ -46,9 +46,9 @@ set(ghidra_patches
|
||||
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.4")
|
||||
set(ghidra_head_version "11.1")
|
||||
set(ghidra_version "${ghidra_head_version}")
|
||||
set(ghidra_head_git_tag "3e9419d4d793dad0619e51769474be61d6968ef9")
|
||||
set(ghidra_head_git_tag "fa8eff4d33f6323bcd8e26615d5a362046bb2756")
|
||||
set(ghidra_git_tag "${ghidra_head_git_tag}")
|
||||
set(ghidra_shallow FALSE)
|
||||
set(ghidra_patches
|
||||
@@ -162,11 +162,13 @@ 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"
|
||||
)
|
||||
#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"
|
||||
@@ -209,7 +211,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"
|
||||
|
||||
@@ -57,6 +57,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"
|
||||
@@ -87,6 +91,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"
|
||||
@@ -122,6 +128,8 @@ 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"
|
||||
|
||||
@@ -57,6 +57,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"
|
||||
@@ -87,6 +91,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"
|
||||
@@ -122,6 +128,8 @@ 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"
|
||||
|
||||
+110
-102
@@ -15,110 +15,118 @@
|
||||
#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 <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 <sleigh/slghparse.hh>
|
||||
#include <ghidra/slghparse.hh>
|
||||
} // End namespace ghidra
|
||||
#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/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>
|
||||
|
||||
// #ifdef sleigh_RELEASE_IS_HEAD
|
||||
// #endif
|
||||
|
||||
#ifndef _MSC_VER
|
||||
#pragma GCC diagnostic pop
|
||||
|
||||
@@ -23,6 +23,7 @@ add_executable(sleigh_ghidra_test
|
||||
"${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)
|
||||
|
||||
Reference in New Issue
Block a user