Ivan Krysak
dace089658
EFA: improve robustness against non-existent FSO
2024-03-18 17:23:57 +01:00
Ivan Krysak
d36296a27c
Doxygen: be extra explicit about layout usage
2024-03-18 13:27:53 +00:00
Ivan Krysak
f6ae268249
PTML: fix doxygen stack indication
2024-03-18 13:27:53 +00:00
Ivan Krysak
bedbf7c1d9
EFA: split importModel into multiple methods
2024-03-18 14:27:47 +01:00
Ivan Krysak
1860bbff8a
EFA: update clobbered register list computation
2024-03-18 13:27:34 +00:00
Ivan Krysak
256df3f92a
EFA: update preserved register diffing
2024-03-18 13:27:34 +00:00
Ivan Krysak
c40e775570
EFA: reorder prototype-based summary importer
...
This lets up cleanly "bail out" after only some of the computation
is done. This way we avoid reading information we don't really use
from the model based on who is the specific user of the oracle.
2024-03-18 13:27:34 +00:00
Ivan Krysak
e92907865c
EFA: turn importPrototype into a helper struct
2024-03-18 13:27:31 +00:00
Ivan Krysak
b7ddd6ebbe
EnforceABI: stop using Layout
2024-03-18 12:24:21 +00:00
Ivan Krysak
db017e0e2d
EFA: stop using Layout
2024-03-18 12:24:21 +00:00
Ivan Krysak
d83479f2fa
Lift: stop using Layout
2024-03-18 12:24:21 +00:00
Ivan Krysak
b4e4d73d49
Layout: introduce usedRegisters helper
2024-03-18 12:24:21 +00:00
Ivan Krysak
25bd3b437f
Distributor: add nextPositionBasedIndex
2024-03-18 12:24:21 +00:00
Ivan Krysak
80375de3cb
Layout: introduce finalStackOffset helper
2024-03-18 12:24:21 +00:00
Ivan Krysak
c003a62212
Layout: rework dump
2024-03-18 12:24:21 +00:00
Ivan Krysak
08041ba771
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 19:05:10 +01:00
Alessandro Di Federico
250354bd27
ValueMaterializer: work around unreachable blocks
2024-03-15 19:05:10 +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