SSE で整列操作を使用しようとしていますが、問題が発生しています (驚き)。
typedef struct _declspec(align(16)) Vec4 {
float x;
float y;
float z;
float w;
};
Vec4 SSE_Add(const Vec4 &a, const Vec4 &b) {
_declspec(align(16)) Vec4 return_val;
_asm {
MOV EAX, a // Load pointers into CPU regs
MOV EBX, b
MOVAPS XMM0, [EAX] // Move unaligned vectors to SSE regs
MOVAPS XMM1, [EBX]
ADDPS XMM0, XMM1 // Add vector elements
MOVAPS [return_val], XMM0 // Save the return vector
}
return return_val;
}
でアクセス違反が発生しましたreturn return_val
。これはアライメントの問題ですか?どうすればこれを修正できますか?