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
Alessandro Di Federico
c1cbb4e9a0
Initialize pointers to nullptr
2024-09-27 12:07:17 +02:00
Ivan Krysak
8f41b0017e
Model: fix failure to parse void
2024-08-30 14:40:09 +02:00
Alessandro Di Federico
cba1d6fa51
PDBImporter: fix .pdb path lookup
2024-08-16 13:01:57 +02:00
Alessandro Di Federico
7b00473859
PDBImporter: rework .pdb search
2024-08-05 17:41:34 +02:00
Ivan Krysak
b900e36a68
CommonTypeMethods: introduce isAggregate
2024-06-27 11:05:52 +02:00
Ivan Krysak
b72e2fd87b
Model: allow omission of void size
2024-06-27 11:05:52 +02:00
Ivan Krysak
4a2db0ba4f
UpcastablePointer: streamline empty behavior
2024-06-27 11:05:52 +02:00
Ivan Krysak
776a5cdc52
Model: move path data away from the header
2024-06-27 11:05:51 +02:00
Ivan Krysak
52aa0b5942
Model: introduce filters
2024-06-27 11:05:51 +02:00
Ivan Krysak
dfa7478685
Adopt reworked model::Type
2024-06-27 11:05:51 +02:00
Ivan Krysak
f2d12ec94a
Model: fix metadata helpers
...
Before now, when called on an non-supported type, they were just
silently doing nothing.
Also, they now correctly handle const inputs.
2024-06-27 11:05:51 +02:00
Ivan Krysak
925690a1e1
VerifyHelper: reduce pointer usage
2024-06-27 11:05:50 +02:00
Ivan Krysak
b6625e8913
Model: simplify fixModel pass
...
Instead of getting reimplemented/updated, it now just reuses normal
type verification routines.
2024-06-27 11:05:50 +02:00
Ivan Krysak
39264e73fa
Model: introduce new Type system
2024-06-27 11:05:50 +02:00
Ivan Krysak
277cba213c
Model: separate verification
2024-06-27 11:05:49 +02:00
Ivan Krysak
9e6bf29f74
TTG: pull dump helper into the template
2024-06-27 11:05:49 +02:00
Ivan Krysak
927e8006b9
Model: rename TypePath to DefinitionReference
2024-06-27 11:05:49 +02:00
Ivan Krysak
087ecbc534
TypeSystemPrinter: remove unused method
2024-06-27 11:05:49 +02:00
Ivan Krysak
32fd1eed5b
TTG: move classof boilerplate into the template
2024-06-27 11:05:49 +02:00
Ivan Krysak
37f424da06
TTG: move UpcastableX typedef to the template
2024-06-27 11:05:49 +02:00
Ivan Krysak
6a1018b860
Remove unused linter suppressors
2024-06-27 11:05:48 +02:00
Ivan Krysak
ac587cbb4f
Model: rename Type into TypeDefinition
2024-06-27 11:05:48 +02:00
Ivan Krysak
d613023a53
Model: drop an obsolete assert
2024-06-27 11:05:48 +02:00
Ivan Krysak
26c68b78ea
Model: drop makeTypeWithID
2024-06-27 11:05:48 +02:00
Ivan Krysak
84c8822c37
Model: drop TypedRegister
2024-06-27 11:05:48 +02:00
Ivan Krysak
7ff1a0f487
Model: remove mostly unused Types.h header
2024-06-27 11:05:48 +02:00
Alessandro Di Federico
f60c1bb4ad
s/TrackGuard/DisableTracking/
2024-06-20 10:24:51 +02:00
Alessandro Di Federico
a6cf3fbb83
Centralize computation of llvm::Function names
...
This commit introduces a function to obtain the name assigned to a
`llvm::Function` associated to a `model::Function`. This simplifies the
codebase but also enables us to introduce an option to produce
human-friendly names for debugging/testing purposes.
2024-06-20 10:24:49 +02:00
Alessandro Di Federico
3097e94a0d
Enable fetching call site prototype without CFG
...
Before this commit, we used to attach to call site a metadata to trace
back the call site to the CFG (i.e., `FunctionMetadata`).
This led several passes in revng-c to depend on `FunctionMetadata` just
for this.
This commit, attaches to call sites a reference to the prototype itself
(on the `revng.prototype` metadata), breaking many of such dependencies.
2024-06-20 10:24:49 +02:00
Alessandro Di Federico
b350d12ad2
TTG: spread some optional: true around
2024-06-20 10:24:49 +02:00
Alessandro Di Federico
d07d6c4f1f
Drop leftover Section.h
2024-06-20 10:24:49 +02:00
Massimo Fioravanti
f783868dde
Model: adopt tryGet instead of find() != end()
2024-06-20 09:57:36 +02:00
Massimo Fioravanti
43349943a7
Stop serializing the model in the IR
2024-06-20 09:57:36 +02:00
Lauri Vasama
3e33a300d5
Introduce RawFunctionType::Architecture
2024-05-29 15:42:15 +02:00
Lauri Vasama
185afcf4c0
Fix spelling of FunctionEntryMDName
2024-05-29 15:42:15 +02:00
Alessandro Di Federico
47c3dd8f0f
Drop model::Segment::Sections
2024-05-22 10:25:25 +02:00
Alessandro Di Federico
31b1b66f44
Reorder model::Binary fields
2024-05-22 10:25:25 +02:00
Alessandro Di Federico
bf6cefc05a
Externalize functions to improve build times
2024-05-03 21:52:40 +02:00
Alessandro Di Federico
fe1dffcffd
Add some missing includes
...
This is in preparation of reducing headers in Debug.h.
2024-05-03 21:52:40 +02:00
Ivan Krysak
77fb7e6e5b
Yield: introduce BasicBlockPrefix option
2024-03-18 10:58:55 +00:00
Ivan Krysak
948d905752
Add PrintFullMetaAddress configuration option
2024-03-18 11:58:11 +01:00
Ivan Krysak
2bffccaaf6
Move ImmediateStyle configuration to the model
2024-03-18 11:58:11 +01:00
Ivan Krysak
184aa03847
Move AddressStyle configuration to the model
2024-03-18 11:58:11 +01:00
Ivan Krysak
2827c9d7f7
Move UseATTSyntax configuration to the model
2024-03-18 11:58:11 +01:00
Ivan Krysak
371784afbd
Model: introduce basic disassembly configuration
2024-03-18 07:20:41 +00:00
Alessandro Di Federico
e93d8ba09f
RawBinaryView:getByOffset: fix of by =
2024-03-15 17:13:20 +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
Ivan Krysak
e708a3655b
ABI: drop incomplete clrcall support
2024-02-09 15:09:37 +00:00