デフォルトでは、大きなタイプ(4バイトより大きい)はEABIで8バイトにアラインされます。これは、function(u32, u64)が呼び出されると、u32がにr0なり、u64がとに分割されr2て未使用r3のままになることを意味します。r1
代わりに、コンパイラに4バイトにアラインさせるにはどうすればよいですか?私はこれ(ABIを壊す)などの結果を理解していますが、私は本当に気にしません。カーネル構成でOABIを有効にすると、ARMv7のサポートが無効になるため、OABIの使用を提案しないでください。
4バイトのアラインメントでは、u32は引き続き使用されますr0が、u64はとの間で分割されr1ますr2。