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
4e81a34cd7
ABI: separate 'gcc' editions of microsoft ABIs
2024-02-09 15:09:37 +00:00
Ivan Krysak
16feb420c3
ABI-tests: handle stack argument offset gracefully
2024-02-09 15:09:37 +00:00
Ivan Krysak
3fdd7d8e8a
ABI: introduce a way to set stack argument offset
2024-02-09 15:09:37 +00:00
Ivan Krysak
3efd08b07a
ABI: fix microsoft x64 abi definitions
2024-02-09 15:09:37 +00:00
Ivan Krysak
654e0958e9
ABI-tests: remove obsolete abi replacement
...
See the `replace-abi.py` script for how it's done now.
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
d2fe578091
ABI: add getArchitecture helper
2024-02-09 15:09:37 +00:00
Ivan Krysak
f1f6fc5e12
ABI: assert on 0-sized stack arguments
2024-02-09 15:09:37 +00:00
Ivan Krysak
b75406f711
ABI-tests: make ID matching more robust
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
fffd62391c
Model: introduce hasMetadata helper
2024-02-09 15:09:37 +00:00
Ivan Krysak
5fcdfebbaf
ABI-tests: support pointers-to-copy on the stack
2024-02-09 15:09:37 +00:00
Ivan Krysak
24e907525e
ABI-tests: support pointers-to-copy in registers
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
a1ddbe5d83
ABI-tests: improve reported errors
2024-02-09 15:09:37 +00:00
Ivan Krysak
e16cf87106
ABI-tests: specify the default PDB location
2024-02-09 15:09:37 +00:00
Ivan Krysak
d1a78d903b
ABI-tests: make tested function set leaner
2024-02-09 15:09:37 +00:00
Ivan Krysak
43c6780baf
ABI-tests: introduce ID list deduplication
2024-02-09 15:09:37 +00:00
Ivan Krysak
f08d1a2f81
ABI-tests: prefer model::Type::Key to RFT *
2024-02-09 15:09:37 +00:00
Ivan Krysak
cf0ce66674
ABI-tests: use updated stdout.yml file format
...
This also allows to simplify the resulting datastructure somewhat.
2024-02-09 15:09:37 +00:00
Ivan Krysak
4a8455e994
ABI-tests: separate value preservation verifier
2024-02-09 15:09:37 +00:00
Ivan Krysak
d13e83163d
Minor improvements
2024-02-09 15:09:37 +00:00
Ivan Krysak
34039dea68
ABI: move ToCABIFunctionType analysis to revng
2024-02-09 16:07:59 +01:00
Alessandro Di Federico
36457a24b2
SegregateStack: support PointerToCopy arguments
2024-02-09 15:07:03 +00:00
Alessandro Di Federico
d231df7d8b
Merge branch 'feature/reorganize-tests'
2024-02-09 10:23:04 +01:00
Alessandro Di Federico
c3d848ef4c
Merge branch 'feature/reorganize-tests'
2024-02-09 10:04:53 +01:00
Ivan Krysak
8a74ff94b7
ABI: prevent emission of unsupported primitives
2024-02-09 10:04:27 +01:00
Alessandro Di Federico
03642de797
Standardize unit test names
2024-02-09 10:04:27 +01:00
Alessandro Di Federico
2282f1db60
CMake: fix pointless rebuilds
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
aaa1b26468
AAPCS ABI: drop support for int128_t
2024-02-09 10:04:26 +01:00
Alessandro Di Federico
c6fa8f77ee
Fix typescript wrappers being rebuild every build
2024-02-09 10:04:26 +01:00
Alessandro Di Federico
6cacb56c96
Reorganize test suite
2024-02-09 10:04:25 +01:00
Alessandro Di Federico
346b367c19
Drop revng efa-extractcfg
2024-02-09 10:04:25 +01:00
Alessandro Di Federico
757f7e21d7
Import docs
2024-02-09 10:04:24 +01:00
Alessandro Di Federico
d9367954a4
Convert all public strings to kebab-case
2024-02-09 10:04:24 +01:00
Giacomo Vercesi
5978300476
codespell: ignore CSS files
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
2bdca8ab03
Rename steps and analyses
2024-02-09 10:04:22 +01:00