Report a bug
		
				If you spot a problem with this page, click here to create a Bugzilla issue.
		
			Improve this page
		
			Quickly fork, edit online, and submit a pull request for this page.
			Requires a signed-in GitHub account. This works well for small changes.
			If you'd like to make larger changes you may want to consider using
			a local clone.
		
	dmd.argtypes_aarch64
Break down a D type into basic (register) types for the AArch64 ABI.
Authors: 
Martin Kinkelin
License: 
Source argtypes_aarch64.d
Documentation https://dlang.org/phobos/dmd_argtypes_aarch64.html
- TypeTupletoArgTypes_aarch64(Typet);
- This breaks a type down into 'simpler' types that can be passed to a function in registers, and returned in registers. This is the implementation for the AAPCS64 ABI, based on https://github.com/ARM-software/abi-aa/blob/master/aapcs64/aapcs64.rst.Parameters:Type ttype to break down Returns:tuple of 1 type iftcan be passed in registers; e.g., a static array for Homogeneous Floating-point/Vector Aggregates (HFVA). A tuple of zero length means the type cannot be passed/returned in registers. null indicates a void.
- boolisHFVA(Typet, intmaxNumElements= 4, Type*rewriteType= null);
- A Homogeneous Floating-point/Vector Aggregate (HFA/HVA) is an ARM/AArch64 concept that consists of up to 4 elements of the same floating point/vector type. It is the aggregate final data layout that matters so structs, unions, static arrays and complex numbers can result in an HFVA.simple HFAs: struct F1 {float f;} struct D4 {double a,b,c,d;} interesting HFA: struct {F1[2] vals; float weight;} If the type is an HFVA andrewriteTypeis specified, it is set to a corresponding static array type.
Copyright © 1999-2025 by the D Language Foundation | Page generated by
Ddoc on Mon Mar 31 10:27:44 2025