Ivan Krysak
a3ab8e2415
ABI-docs: add a basic explanation
2024-10-08 13:53:53 +02:00
Ivan Krysak
724f8bfb59
ABI: streamline terminology
...
"packed" is used instead of "unnaturally aligned".
2024-10-08 13:53:53 +02:00
Ivan Krysak
4bdc7f83b5
ABI: drop incomplete pascal support
2024-10-08 13:53:53 +02:00
Ivan Krysak
5150fbd8c8
ABI: Limit usage of the StackAlignment option
2024-10-08 13:53:53 +02:00
Ivan Krysak
ce11f37334
abi::Definition: move documentation out
2024-10-08 13:53:53 +02:00
Ivan Krysak
3f803ccc5c
ABI-tests: add potential padding support
2024-10-08 13:53:53 +02:00
Ivan Krysak
6063015975
ABI-tests: support return-value-less SPTAR
2024-10-08 13:53:53 +02:00
Ivan Krysak
659bd01974
ABI: make distribution carry alignment information
...
This allows argument distribution to change based on the previous
argument by only preserving alignment information.
2024-10-08 13:53:53 +02:00
Ivan Krysak
6d44a4b1c2
ABI: introduce UseStrictAggregateAlignmentRules
2024-10-08 13:53:52 +02:00
Ivan Krysak
85474eb228
ABI: let last argument distribution differ
2024-10-08 13:53:52 +02:00
Ivan Krysak
7dfd669bde
ABI: introduce a new configuration option:
...
`StackArgumentsUseRegularStructAlignmentRules`.
2024-10-08 13:53:52 +02:00
Ivan Krysak
b378ac9b17
ABI: improve handling of padding arguments
2024-10-08 13:53:52 +02:00
Ivan Krysak
8c313a73af
Model: make sure segments use generic addresses
2024-10-08 13:53:52 +02:00
Ivan Krysak
561f94115a
ABI: make pointer to copy testing stricter
2024-10-08 13:53:52 +02:00
Ivan Krysak
1289678457
ABI: fix AArch64 pointer-to-copy handling
2024-10-08 13:53:52 +02:00
Ivan Krysak
b20bcbe1d4
ABI: introduce BigArgumentsUsePointersToCopy
2024-10-08 13:53:52 +02:00
Ivan Krysak
99e016f120
ABI: reorganize default ABI helpers
2024-10-08 13:53:52 +02:00
Ivan Krysak
d314c6ca36
ABI: fix a bug related to argument splitting
2024-10-08 13:53:52 +02:00
Ivan Krysak
fb06320154
ABI: introduce Microsoft_AAPCS64
2024-10-08 13:53:52 +02:00
Ivan Krysak
e92c0b68bb
ABI: introduce Apple_AAPCS64
2024-10-08 13:53:52 +02:00
Ivan Krysak
e4d8ead973
ABI: make MinimumStackArgumentSize explicit
2024-10-08 13:53:52 +02:00
Ivan Krysak
d6ca06b864
ABI: handle SPTAR return value register correctly
2024-10-08 13:53:51 +02:00
Ivan Krysak
d5d1a7da99
ABI: introduce ReturnValueLocationIsReturned
2024-10-08 13:53:51 +02:00
Ivan Krysak
a4196fdd5e
ABI: allow unnatural structs in aarch64 registers
2024-10-08 13:53:51 +02:00
Alessandro Di Federico
5db142237b
lddtreeResolve: adopt consumeError
2024-10-04 15:20:06 +02:00
Alessandro Di Federico
38b5de76ed
Merge branch 'feature/new-mass-testing'
2024-10-01 20:34:52 +02:00
Alessandro Di Federico
f998fc2499
Merge branch 'feature/new-mass-testing'
2024-10-01 20:34:45 +02:00
Giacomo Vercesi
683bcf66d8
Drop revng- prefix from libexec executables
...
The revng CLI driver no longer uses the `revng-` prefix for executables
under `libexec/revng`.
2024-10-01 20:34:38 +02:00
Giacomo Vercesi
212cfdc613
mlir_lit_tests: generate proper tar file
...
Using an empty file as a tar file is not 100% compliant. Use an actual
`tar` invocation to generate the file.
2024-10-01 20:34:38 +02:00
Giacomo Vercesi
3fe3a8524a
Implement mass testing
...
Add the `revng mass-testing` commands and auxiliary executables which
simplify running revng on a huge quantity of input executables.
2024-10-01 13:38:21 +02:00
Giacomo Vercesi
9a29c7117b
commands_registry.py: allow subcommands in subdirs
...
Allow external subcommands to live in subdirectories w.r.t. the main
directory.
2024-10-01 13:38:14 +02:00
Giacomo Vercesi
993f66d59c
revng cli: drop revng- prefix from libexec
...
Drop using the `revng-` prefix from all executables under
`libexec/revng/`. Now any executable found under there that is
executable and without extension will be considered a `revng`
subcommand, following the usual command-line rules.
2024-10-01 13:38:14 +02:00
Giacomo Vercesi
e1757b505d
support.py: fix _run_common
...
The `_run_common` function assumed that the `command` argument was
mutable. Change the logic so that it works with immutable collections
(e.g. `tuple`) as well.
2024-10-01 13:38:13 +02:00
Giacomo Vercesi
583988c922
try_run: do not close fds
...
When running a subprocess via `try_run` & friends, do not close the
inherited file descriptors.
2024-10-01 13:38:13 +02:00
Giacomo Vercesi
e9a445b3a8
commands_registry: move to revng.py
...
Move the `commands_registry` instance from the `commands_registry.py` to
`revng.py` where the actual implementation of the registry happens.
2024-10-01 13:38:13 +02:00
Giacomo Vercesi
4474eb68e2
fetch_debuginfo: download files atomically
...
Instead of directly writing the destination file, use the combination of
a `.tmp` suffix and `os.replace` to guarantee that the destination file
is written whole and not partially.
2024-10-01 13:38:13 +02:00
Giacomo Vercesi
f8ffe38687
Unify cache directory logic
...
Make the cache directory logic uniform in Python and C++, move the
respective implementations under support since it's project-wide logic
and not exclusive to debug-info.
2024-10-01 13:38:13 +02:00
Giacomo Vercesi
4ceea9badd
import_idb.py: use setup function
...
Use the `setup` function mechanism to register the command instead of
directly importing the commands registry.
2024-10-01 13:38:13 +02:00
Alessandro Di Federico
1d847e819b
Merge branch 'feature/fix-invalidation'
2024-10-01 12:01:27 +02:00
Alessandro Di Federico
8ca6a0739d
precedence.c.filecheck: fix argument names
...
Due to a bug fix in revng, we're now having arguments in a different
(correct) order. Let the test reflect this.
2024-10-01 11:52:33 +02:00
Alessandro Di Federico
55fd4d9f66
s/cfg.yml/cfg.yml.tar.gz/
2024-09-29 12:53:23 +02:00
Alessandro Di Federico
07e964478d
Invalidation deduceResults after pipe
2024-09-29 12:52:14 +02:00
Alessandro Di Federico
c5f2c8055e
s/cfg.yml/cfg.yml.tar.gz/
2024-09-27 20:45:26 +02:00
Alessandro Di Federico
865ffb9892
Minor changes
2024-09-27 20:45:22 +02:00
Alessandro Di Federico
3aed94688f
Merge branch 'feature/pipe-commits'
2024-09-27 12:08:34 +02:00
Alessandro Di Federico
6a8c9a68dd
Merge branch 'feature/pipe-commits'
2024-09-27 12:07:52 +02:00
Alessandro Di Federico
79689f0da2
s/(LLVMContainer &)TargetsList/\1ModuleContainer/
2024-09-27 12:07:18 +02:00
Alessandro Di Federico
05c01e5216
Drop TargetListContainer
2024-09-27 12:07:18 +02:00
Alessandro Di Federico
4a14c0abb2
UpdateContract: fix uninitialized Context *
2024-09-27 12:07:18 +02:00
Alessandro Di Federico
33cae7de12
Pipeline: reduce usage of Context
2024-09-27 12:07:18 +02:00