Filippo Cremonese
7f7a222410
python-model: handle importing multiple versions
2022-02-23 18:03:36 +01:00
Filippo Cremonese
09a995ba51
python-model: generate from jsonschema
2022-02-23 18:03:35 +01:00
Filippo Cremonese
23c40e3b51
revng: fix imports
...
Add missing log_error include and remove other unused imports.
2022-02-23 18:02:50 +01:00
Filippo Cremonese
6672eb8dbc
Turn Python scripts into modules
2022-02-23 18:02:42 +01:00
Filippo Cremonese
d5e5e16887
Apply and enforce python formatting with black
2022-02-23 18:02:39 +01:00
Filippo Cremonese
1dc7efe2b0
tuple_tree_generator: emit jsonschema
2022-02-23 17:37:03 +01:00
Filippo Cremonese
2877ead7ed
revng-model-to-json: handle SIGINT
2022-02-23 17:36:38 +01:00
Filippo Cremonese
8511cbf40b
tuple_tree_generator: drop tags
...
They were more harmful than beneficial.
2022-02-23 17:36:34 +01:00
Alessandro Di Federico
10dc6744b4
mv include/revng/{Model,TupleTree}/EnumTraits.h
...
`EnumTraits.h` is not model-specific.
2022-02-23 17:32:50 +01:00
Alessandro Di Federico
cca7e5b443
check-revng-conventions: improve performance
...
We used to run `clang-format` and the other checks twice, but it was not
strictly necessary.
2022-02-23 17:31:41 +01:00
Pietro Fezzardi
06dc78382b
MakeModelGEPPass: fix AddressOf parameters
...
Before this commit, the type parameter of AddressOf calls was
erroneously set to the same type of the associated ModelGEP.
This commit fixes the problem, setting the type parameter of AddressOf
calls to the pointee type.
2022-02-15 11:44:04 +01:00
Alessandro Di Federico
3417703ae8
Merge branch 'feature/generic-register-function-arguments'
2022-02-14 19:11:46 +01:00
Alessandro Di Federico
b7f5884f8c
DynamicFunction::name: no OriginalName direct use
2022-02-14 17:54:32 +01:00
Ivan Krysak
1df6bbc6d6
Introduce ABI testing infrastructure
2022-02-14 13:35:37 +01:00
Ivan Krysak
a122ff0431
Introduce register state deduction unit tests
2022-02-14 13:35:37 +01:00
Ivan Krysak
242b885a78
Remove obsolete ABI utilities
2022-02-14 13:35:37 +01:00
Ivan Krysak
371f5c4555
Implement ABI-based register state deductions
...
This will help EarlyFunctionAnalysis in providing more accurate results,
in case assumptions about the ABI can be made.
2022-02-14 13:35:37 +01:00
Ivan Krysak
9771ae29d6
Move RegisterState to ABI
2022-02-14 13:35:37 +01:00
Ivan Krysak
cafe44097b
ABI: introduce default function type generation
2022-02-14 13:35:37 +01:00
Ivan Krysak
8d876b0def
ABI: introduce bulk function conversion
2022-02-14 13:35:37 +01:00
Ivan Krysak
e20e65ca9a
Require a description when registering a pass
2022-02-14 13:35:36 +01:00
Ivan Krysak
7369e49eba
Implement "best effort" function type convertion
2022-02-14 13:35:36 +01:00
Ivan Krysak
5c671e8446
Add abi::Trait specialization for s390x ABI
2022-02-14 13:35:36 +01:00
Ivan Krysak
75c00f5112
Add abi::Trait specialization for mips ABI
2022-02-14 13:35:36 +01:00
Ivan Krysak
c9daab2ce4
Add abi::Trait specializations for arm ABIs
2022-02-14 13:35:36 +01:00
Ivan Krysak
4069d547b6
Add abi::Trait specializations for x86 ABIs
2022-02-14 13:35:36 +01:00
Ivan Krysak
756d0f7376
Add abi::Trait specializations for x86_64 ABIs
2022-02-14 13:35:36 +01:00
Ivan Krysak
d30c4c54fb
Introduce trait to describe ABIs
2022-02-14 13:35:36 +01:00
Ivan Krysak
68129c9221
Add model::Binary::DefaultABI field
2022-02-14 13:35:36 +01:00
Ivan Krysak
d108f7f049
Extend model::ABI enumeration
2022-02-14 11:28:36 +01:00
Ivan Krysak
c14567e3d0
Make TupleTree::visitReferences public
2022-02-14 11:28:36 +01:00
Ivan Krysak
fd3e7243c1
Remove an unused parameter from TupleTree::clone
2022-02-14 11:28:36 +01:00
Ivan Krysak
ec625e8533
Define architecture-specific register access
2022-02-14 11:28:36 +01:00
Ivan Krysak
9b7eb76ac4
Introduce enumSwitch
2022-02-14 11:28:36 +01:00
Ivan Krysak
a67bc8d1a6
revng-model-diff: return error on mismatch
2022-02-14 10:57:30 +01:00
Ivan Krysak
bac670a38a
monotone_framework_lattice: move generation notice
...
It made it look like the template was autogenerated.
2022-02-14 10:57:20 +01:00
Ivan Krysak
3bb266125c
Add always_true and always_false traits
2022-02-14 10:57:10 +01:00
Ivan Krysak
a21dff02de
Add additional registers to the model
2022-02-14 10:57:00 +01:00
Ivan Krysak
7151c587f9
Prevent TupleTreeReference::isValid() asserts
2022-02-14 10:56:50 +01:00
Ivan Krysak
dfeb437b45
Fix a minor convertible_to concept issue
2022-02-14 10:56:40 +01:00
Alessandro Di Federico
a38819d8d9
revng-pipeline tests: cleanup temporary files
...
Certain revng-pipeline tests did not clean up temporary files leading to
weird effects running the tests twice in the same build directory.
2022-02-14 10:56:30 +01:00
Alessandro Di Federico
ec6d4dbe74
Ensure all files end with a newline
2022-02-14 10:56:15 +01:00
Alessandro Di Federico
806f076709
Minor changes
2022-02-14 09:39:44 +01:00
Alvise de Faveri
7593d4da23
PromoteCSVs: promote PC CSVs
2022-02-12 12:04:14 +01:00
Massimo Fioravanti
ef1b59158f
revng-translate: propagate arguments after --
2022-02-11 18:45:13 +01:00
Pietro Fezzardi
f8535a9085
Merge feature/limit-stack-size into develop
2022-02-11 17:32:30 +01:00
Alessandro Di Federico
48fcca58ae
DetectStackSize: limit stack arguments/frame size
2022-02-11 17:28:02 +01:00
Pietro Fezzardi
f2fcf93aea
Revert "Drop torture tests"
...
This reverts commit e65b313e5e .
2022-02-11 16:53:20 +01:00
Alvise de Faveri
812b73f2a2
Remove opaquepc()
...
We can set the PC to the expected value after each call instead
of creating an `opaquepc()` call.
2022-02-11 13:42:29 +01:00
Pietro Fezzardi
d02a3f3d7d
Merge feature/helpers-to-header into develop
2022-02-10 18:04:51 +01:00