Ivan Krysak
d02e338d23
ToCFT: fix last stack argument verification
...
It was still broken, even after `feature/alignment-fixes`, so
this commit softens requirements even further, to allow some of
the desired cases to pass through the verifier.
2024-03-15 15:27:14 +01:00
Alessandro Di Federico
0ae918a6a4
ValueMaterializer: work around unreachable blocks
2024-03-15 15:24:59 +01:00
Alessandro Di Federico
3fb9e58b0a
Progress: cap line length to terminal size
2024-03-01 17:47:28 +01:00
Alessandro Di Federico
aec4be9b07
AttachDebugInfo: improve docs
2024-03-01 14:53:07 +01:00
Alessandro Di Federico
ffe93548c5
Model ::size(): do not suspend tracking
2024-03-01 14:53:07 +01:00
Alessandro Di Federico
7f1a15d1bb
Model: ignore empty ExportedNames
2024-03-01 14:53:07 +01:00
Alessandro Di Federico
db4e5c4a5e
Introduce dumpModel
2024-03-01 14:53:07 +01:00
Alessandro Di Federico
c346e60ee7
PromoteOriginalName: no globals with local names
...
This commit ensures we do not introduce new global symbols that would
make local symbols invalid.
2024-03-01 14:53:06 +01:00
Alessandro Di Federico
6f4923265e
Type verify: improve error reporting
2024-03-01 14:53:06 +01:00
Alessandro Di Federico
3cfd01e617
DwarfImporter: correctly handle Expected
2024-03-01 14:53:06 +01:00
Alessandro Di Federico
c7868b4e7d
Runner: improve logging
2024-03-01 14:53:06 +01:00
Alessandro Di Federico
0da9d1e1a4
Model: fix handling of 0-sized arguments
...
We used to support having a single `void` argument. It was for some
C-compatibility ambitions, but just omitting the argument is perfectly
fine.
Also, the DWARF importer has been fixed to handle typedef'd void as
arguments.
More in general, arguments are now required to always have a size.
2024-03-01 14:53:06 +01:00
Alessandro Di Federico
d9e649d272
Importer/Binary: improve logging
2024-03-01 14:53:06 +01:00
Alessandro Di Federico
aa882f1bef
Importer/Binary: fix default XDG cache path
2024-03-01 14:53:06 +01:00
Alessandro Di Federico
6b4f44af2d
Minor changes
2024-03-01 14:53:06 +01:00
Alessandro Di Federico
2347304b70
Progress.cpp: handle StepsCount == 0
2024-03-01 14:23:30 +01:00
Alessandro Di Federico
340b02c71e
DwarfImporter: improve progress reporting
2024-03-01 14:23:08 +01:00
Ivan Krysak
069d3d3972
ToCABI: improve logger messages
2024-02-09 15:09:37 +00:00
Ivan Krysak
e708a3655b
ABI: drop incomplete clrcall support
2024-02-09 15:09:37 +00:00
Ivan Krysak
c8cd0ab503
ValueDistributor: improve success log message
2024-02-09 15:09:37 +00:00
Ivan Krysak
27491410d6
ABI: introduce a way to disable vector registers
2024-02-09 15:09:37 +00:00
Ivan Krysak
bc6673d90d
ABI: make alignment-computation fails stricter
2024-02-09 15:09:37 +00:00
Ivan Krysak
a018d443e1
ABI: update "safe" conversion list
2024-02-09 15:09:37 +00:00
Ivan Krysak
68301138c0
ABI: redesign register sorting from the ground up
2024-02-09 15:09:37 +00:00
Ivan Krysak
5bf4b3fa1e
ABI: improve robustness to duplicate registers
2024-02-09 15:09:37 +00:00
Ivan Krysak
fffbd27b99
Pipeline: be more explicit when step names collide
2024-02-09 15:09:37 +00:00
Ivan Krysak
9d815d79ec
ToRaw: take advantage of the updated distributor
...
This lets us drop the repeated alignment calculations at
the "leaves" of the conversion. Since new distributor already
provides the necessary information, we can just grab it from
there.
2024-02-09 15:09:37 +00:00
Ivan Krysak
40e443f354
ArgumentDistributor: add a SPTAR helper
2024-02-09 15:09:37 +00:00
Ivan Krysak
526cb7385a
ValueDistributor: support stack argument offset
2024-02-09 15:09:37 +00:00
Ivan Krysak
5c99229c6f
ToRaw: fix issues with how types were selected
...
Pointer-to-copy support was severely flawed.
2024-02-09 15:09:37 +00:00
Ivan Krysak
65cf1f08fd
Distributor: add explicit pointer-to-copy-support
2024-02-09 15:09:37 +00:00
Ivan Krysak
a468698d23
ValueDistributor: be extra explicit around padding
...
Before this, padding was just handled as a part of the size, but that
made it unnecessarily hard to work with. Now, everything padding-related
is extremely explicit.
2024-02-09 15:09:37 +00:00
Ivan Krysak
2e78369ec9
Model: disable float register size mismatch check
2024-02-09 15:09:37 +00:00
Ivan Krysak
5994e4bf05
ToCAFT: always preserve stack types with metadata
2024-02-09 15:09:37 +00:00
Ivan Krysak
af6f9367b2
ImportPE: remove i386-specific values
2024-02-09 15:09:37 +00:00
Djordje Todorovic
79460c6933
PDBImport: Handle forward referenced types
...
A class or a struct type A can be a forward declaration and refer
to another type B in PDB, so we need to follow the references.
We pre-create type for B, when we face type A, and then, when we
visit type B, we populate the fields for the model::type we
pre-created.
In addition, this patch fixes some minor/side bugs:
- Handle SHORT/Int16Short simple type
- Do not delete model::Function if Prototype is invalid.
2024-02-09 15:09:37 +00:00
Ivan Krysak
d13e83163d
Minor improvements
2024-02-09 15:09:37 +00:00
Ivan Krysak
8a74ff94b7
ABI: prevent emission of unsupported primitives
2024-02-09 10:04:27 +01:00
Alessandro Di Federico
19c0999e65
Drop tools/link-for-translation
2024-02-09 10:04:26 +01:00
Alessandro Di Federico
346b367c19
Drop revng efa-extractcfg
2024-02-09 10:04:25 +01:00
Alessandro Di Federico
d9367954a4
Convert all public strings to kebab-case
2024-02-09 10:04:24 +01:00
Alessandro Di Federico
54025b48ff
s/ConvertToRawFunctionType/ConvertFunctionsToRaw/g
2024-02-09 10:04:23 +01:00
Alessandro Di Federico
a9aaa8ced4
s/ToCABIFunctionType/FunctionsToCABI/s
2024-02-09 10:04:23 +01:00
Alessandro Di Federico
66b502f484
Doxygen: function prototype is optional
2024-02-09 10:04:21 +01:00
Alessandro Di Federico
c73e88a8d8
Model: handle missing function prototype
2024-02-09 10:04:20 +01:00
Alessandro Di Federico
83b94026e4
RootAnalyzer: handle missing prototype
2024-02-09 10:04:20 +01:00
Alessandro Di Federico
a04ccb6883
CodeGenerator: relax check on entry point
2024-02-09 10:04:19 +01:00
Alessandro Di Federico
f81851c36b
CodeGenerator: do not tag LLVM intrinsics
2024-02-09 10:04:19 +01:00
Alessandro Di Federico
bef9efc599
EFA, importModel: handle missing prototype
2024-02-09 10:04:18 +01:00
Alessandro Di Federico
4bca30df5d
InlineHelpers: fix bug preventing inlining helpers
2024-02-09 10:04:18 +01:00