Initial x86 support

Includes a bit of work to make adding new
architectures easier in the future
This commit is contained in:
2024-03-16 23:30:27 -06:00
parent aecb078b2a
commit bbe49eb8b4
17 changed files with 844 additions and 289 deletions

View File

@@ -12,12 +12,13 @@ A local diffing tool for decompilation projects.
"""
[features]
all = ["config", "dwarf", "mips", "ppc"]
all = ["config", "dwarf", "mips", "ppc", "x86"]
any-arch = [] # Implicit, used to check if any arch is enabled
config = []
dwarf = ["gimli"]
mips = ["any-arch", "rabbitizer"]
ppc = ["any-arch", "cwdemangle", "ppc750cl"]
x86 = ["any-arch", "iced-x86", "msvc-demangler"]
[dependencies]
anyhow = "1.0.81"
@@ -29,7 +30,7 @@ gimli = { version = "0.28.1", default-features = false, features = ["read-all"],
log = "0.4.21"
memmap2 = "0.9.4"
num-traits = "0.2.18"
object = { version = "0.34.0", features = ["read_core", "std", "elf"], default-features = false }
object = { version = "0.34.0", features = ["read_core", "std", "elf", "pe"], default-features = false }
ppc750cl = { git = "https://github.com/encounter/ppc750cl", rev = "4a2bbbc6f84dcb76255ab6f3595a8d4a0ce96618", optional = true }
rabbitizer = { version = "1.9.2", optional = true }
serde = { version = "1", features = ["derive"] }
@@ -40,3 +41,12 @@ globset = { version = "0.4.14", features = ["serde1"] }
semver = "1.0.22"
serde_json = "1.0.114"
serde_yaml = "0.9.32"
# x86
msvc-demangler = { version = "0.10.0", optional = true }
[dependencies.iced-x86]
version = "1.21.0"
#default-features = false
#features = ["std", "decoder", "intel"]
features = ["exhaustive_enums"]
optional = true