英語版
このページの英語版を見る

dmd.argtypes_aarch64

D 型を AArch64 ABI 用の基本(レジスタ)型に分解する。
Authors:
Martin Kinkelin
TypeTuple toArgTypes_aarch64(Type t);
これは、型を "より単純な"型に分解するものである。 型に分解する。 これは、AAPCS64 ABI用の実装である。 https://github.com/ARM-software/abi-aa/blob/master/aapcs64/aapcs64.rst。
Parameters:
Type t 型」を分解する。
Returns:
の場合は1型のタプルである。 tはレジスタで渡すことができる。 例えば、HFVA(Homogeneous Floating-point/Vector Aggregates)のスタティック配列などである。 長さが0のタプルは、その型がレジスタで受け渡しできないことを意味する。 null はvoid を示す。
bool isHFVA(Type t, int maxNumElements = 4, Type* rewriteType = null);
同種浮動小数点/ベクトル集約(HFA/HVA)はARM/AArch64の概念である。 の概念で、同じ浮動小数点/ベクトル型の最大4つの要素で構成される。 型で構成される。重要なのは最終的なデータレイアウトであるため、構造体、共用体、スタティック配列、複素数などが使用できる、 静的配列や複素数もHFVAとなる。
単純なHFA: struct F1 {float f;} struct D4 {double a,b,c,d;}. 興味深いHFA: struct {F1[2] vals; float weight;}.
型がHFVAで、かつ rewriteType型がHFVAであり、かつ 対応する静的配列型に設定される。