Files
revng-revng/share/revng/abi/AAPCS.yml
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

67 lines
1.1 KiB
YAML

#
# This file is distributed under the MIT License. See LICENSE.md for details.
#
ABI: AAPCS
ArgumentsArePositionBased: false
OnlyStartDoubleArgumentsFromAnEvenRegister: true
ArgumentsCanBeSplitBetweenRegistersAndStack: true
NoRegisterArgumentsCanComeAfterStackOnes: true
UsePointerToCopyForStackArguments: false
CalleeIsResponsibleForStackCleanup: false
StackAlignment: 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
- q4_arm
- q5_arm
- q6_arm
- q7_arm
ReturnValueLocationRegister: r0_arm
ScalarTypes:
- Size: 1
- Size: 2
- Size: 4
- Size: 8
- Size: 16
FloatingPointScalarTypes:
- Size: 2
- Size: 4
- Size: 8