5

MSVC を使用して、いくつかの SSE 組み込み関数を使用しています。これをサポートするために、データの一部を 16 バイト境界に配置しました。しかし、x64 ではなく x86 用にコンパイルするようになったので、MSVC は、関数パラメーターを 16 バイトにアラインすることは違法であると主張しています。しかし、それが本当なら、誰でも SSE データ型を関数パラメーターとして送信できるでしょうか?

では、関数で 16 バイトにアラインされたパラメーターを送信するにはどうすればよいでしょうか?

4

1 に答える 1

4

それが本当なら、誰でも SSE データ型を関数パラメーターとして送信できますか?

できません。:) Microsoft の ABI では、参照またはポインタで渡す必要があります。

回避策の 1 つは、 fastcall呼び出し規約を使用することです。これは明らかに、最初のいくつかの SSE 引数を XMM レジスターに渡します。

于 2012-05-07T15:08:29.820 に答える