008: class CodeGeneratorForMulFloat4 : public Xbyak::CodeGenerator {
009: public:
010:     CodeGeneratorForMulFloat4()
011:     {
012:         // このコードは Linux/x86_64 環境専用
013:         // [関数の引数]
014:         // ・RDI レジスタ: const float *a
015:         // ・RSI レジスタ: const float *b
016:         // ・RDX レジスタ：float *c
017:         // (x64 Windowsの場合、引数レジスタは RCX, RDX, R8 となる)
018:         movups(xmm0, ptr[rdi]);	// xmm0 <- { a[0],a[1],a[2],a[3] }
019:         movups(xmm1, ptr[rsi]);	// xmm1 <- { b[0],b[1],b[2],b[3] }
020:         mulps(xmm0, xmm1);			// xmm0 <- { a[0]*b[0], a[1]*b[1] .... a[3]*b[3] }
021:         movups(ptr[rdx], xmm0);	// { c[0],c[1],c[2],c[3] } <- xmm0
022:         ret();
023:     }
024: };
