Files
revng-revng/share/revng/abi/AAPCS.yml
Ivan Krysak 724f8bfb59 ABI: streamline terminology
"packed" is used instead of "unnaturally aligned".
2024-10-08 13:53:53 +02:00

73 lines
1.3 KiB
YAML

#
# This file is distributed under the MIT License. See LICENSE.md for details.
#
ABI: AAPCS
ArgumentsArePositionBased: false
OnlyStartDoubleArgumentsFromAnEvenRegister: true
ArgumentsCanBeSplitBetweenRegistersAndStack: true
BigArgumentsUsePointersToCopy: false
NoRegisterArgumentsCanComeAfterStackOnes: true
AllowPackedTypesInRegisters: true
CalleeIsResponsibleForStackCleanup: false
FloatsUseGPRs: false
PackStackArguments: false
TreatAllAggregatesAsPacked: false
StackAlignment: 8
MinimumStackArgumentSize: 4
MaximumGPRsPerAggregateArgument: 4
MaximumGPRsPerAggregateReturnValue: 1
MaximumGPRsPerScalarArgument: 4
MaximumGPRsPerScalarReturnValue: 4
GeneralPurposeArgumentRegisters:
- r0_arm
- r1_arm
- r2_arm
- r3_arm
GeneralPurposeReturnValueRegisters:
- r0_arm
- r1_arm
- r2_arm
- r3_arm
VectorArgumentRegisters:
- q0_arm
- q1_arm
- q2_arm
- q3_arm
VectorReturnValueRegisters:
- q0_arm
- q1_arm
- q2_arm
- q3_arm
CalleeSavedRegisters:
- r4_arm
- r5_arm
- r6_arm
- r7_arm
- r8_arm
- r10_arm
- r11_arm
- r14_arm
- q4_arm
- q5_arm
- q6_arm
- q7_arm
ReturnValueLocationRegister: r0_arm
ReturnValueLocationIsReturned: true
ScalarTypes:
- Size: 1
- Size: 2
- Size: 4
- Size: 8
FloatingPointScalarTypes:
- Size: 2
- Size: 4
- Size: 8