Lauri Vasama
0ab9f769dd
Add CDataModel in ABI definition
2026-05-02 17:21:47 +03:00
Giacomo Vercesi
27f419c8cd
Fix and ban namespace clobbering
...
Fix an instance where the `std` namespace got clobbered into the global
namespace by accident.
2026-02-16 10:34:38 +01:00
Ivan Krysak
f391392fe9
Use explicit separator strings
2025-07-23 11:38:52 +02:00
Khaled Ismaeel
53a5ff07cf
Remove embedded TUPLE-TREE-YAML
2025-04-30 15:08:45 +02:00
Ivan Krysak
f494ae5f5f
Standardize comment formatting
...
Use `*something*` instead of `_something_` when adding emphasis.
2025-02-13 13:09:50 +02:00
Ivan Krysak
a93ffd3760
Rename UnusedStackArgumentBytes
...
Old name was `StackBytesAllocatedForRegisterArguments`.
2025-02-12 16:43:19 +02:00
Ivan Krysak
672ee5df50
Replace std::string_view with llvm::StringRef
2024-11-06 15:43:13 +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
ce11f37334
abi::Definition: move documentation out
2024-10-08 13:53:53 +02:00
Ivan Krysak
6d44a4b1c2
ABI: introduce UseStrictAggregateAlignmentRules
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
b20bcbe1d4
ABI: introduce BigArgumentsUsePointersToCopy
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
d5d1a7da99
ABI: introduce ReturnValueLocationIsReturned
2024-10-08 13:53:51 +02:00
Ivan Krysak
dfa7478685
Adopt reworked model::Type
2024-06-27 11:05:51 +02:00
Ivan Krysak
ac587cbb4f
Model: rename Type into TypeDefinition
2024-06-27 11:05:48 +02:00
Ivan Krysak
4676c951a0
ABI: update outdated comments
2024-06-27 11:05:48 +02:00
Alessandro Di Federico
0459b9d084
Introduce RegisterUsageAnalyses
2024-04-19 18:33:00 +02:00
Ivan Krysak
e62d4f79ef
ABI: remove an obsolete definition parameter
...
Since pointer to copy system got straightenned up, the old way of
marking them (`abi::Definition::UsePointerToCopyForStackArguments`)
is no longer needed.
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
fe025e37ef
ABI: short-circuit zero-offset to always be zero
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
3fdd7d8e8a
ABI: introduce a way to set stack argument offset
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
78510010f8
ABI: rename isIncompatibleWith
...
The new name is `isPreliminarilyCompatibleWith`.
2024-01-29 11:57:54 +02:00
Ivan Krysak
e7c456afd2
ABI: improve register state deduction docs
2024-01-29 11:57:54 +02:00
Ivan Krysak
4cb38a722c
ABI: disallow ABI flags to be optional
2024-01-29 11:57:54 +02:00
Ivan Krysak
4093cd30c4
ABI: provide alignment computation for model::Type
2024-01-29 11:57:54 +02:00
Ivan Krysak
386cb26f6d
ABI: introduce a new ABI configuration option
...
It's called `AllowUnnaturallyAlignedTypesInRegisters` and explicitly
allows weirdly aligned structs in registers.
2024-01-29 11:57:54 +02:00
Ivan Krysak
16dc85cb0f
ABI: improve unnatural alignment support
2024-01-29 11:57:54 +02:00
Ivan Krysak
54ffd723e6
ABI: decouple alignment from model::VerifyHelper
2024-01-29 11:57:54 +02:00
Ivan Krysak
77b1acaf00
Prefer uint64_t to size_t wherever relevant
2024-01-29 11:57:54 +02:00
Ivan Krysak
b25a32de2a
Stop using std:: prefix for std::size_t
2024-01-29 11:57:54 +02:00
Ivan Krysak
15be26f9fa
Minor Improvements
2024-01-29 11:57:54 +02:00
Ivan Krysak
775852c6c9
ABI: fix a problem with return value location
...
If the location was not also used a normal argument, it would get lost
when sorting argument registers.
2023-11-02 17:10:04 +01:00
Ivan Krysak
dbc99ff587
ABI: improve a register sorting error message
2023-11-02 17:10:03 +01:00
Ivan Krysak
cfe28d8e56
Stop using std:: prefix for u?int\d+_t types
2023-11-02 17:10:03 +01:00
Ivan Krysak
9f1d9fd5d0
Use Container::contains() where appropriate
2023-07-02 15:06:11 +00:00
Ivan Krysak
bc98e0079f
Formatting: change PenaltyReturnTypeOnItsOwnLine
...
The new value is 21.
2023-07-02 13:20:49 +02:00
Alessandro Di Federico
52521f8cac
Adopt more standard library's features
2023-04-08 08:42:23 +02:00
Ivan Krysak
e84c76019a
ABI: introduce an additional definition option
...
The new option is `NoRegisterArgumentsCanComeAfterStackOnes`
If it's set to `true`, then no register argument can follow any stack
argument under the said abi, otherwise such "shuffling" of arguments
is allowed.
2023-03-15 10:19:03 +01:00
Ivan Krysak
30b9234a04
abi::Definition: introduce a padding helper
2023-03-15 10:19:02 +01:00
Ivan Krysak
89b3def533
ABI: move RegisterOrder onto the runtime trait
2023-03-15 10:19:02 +01:00
Ivan Krysak
9e393578c9
ABI: move state deduction onto the runtime trait
2023-03-15 10:19:02 +01:00
Ivan Krysak
769e5c1cbe
ABI: add a natural alignment calculation helper
2023-03-15 10:19:02 +01:00
Ivan Krysak
8b675e131e
ABI: introduce runtime abi definition
2023-03-15 10:19:02 +01:00