/* HashedVShaders.PushEnd(VShaderSimulatorHashInfo(96527590, WrapperToVShaderPrepareHash96527590, WrapperToVShaderRestoreHash96527590, WrapperToVShaderCompiledHash96527590); */ void VShaderSimulator::WrapperToVShaderPrepareHash96527590(VShaderSimulator *ThisPtr) { ThisPtr->VShaderPrepareHash96527590(); } void VShaderSimulator::WrapperToVShaderRestoreHash96527590(VShaderSimulator *ThisPtr) { ThisPtr->VShaderRestoreHash96527590(); } void VShaderSimulator::WrapperToVShaderCompiledHash96527590(VShaderSimulator *ThisPtr, const VertexData &VData) { ThisPtr->VShaderCompiledHash96527590(VData); } void VShaderSimulator::VShaderPrepareHash96527590() { // // Definitions // ConstFloatRegisters[8] = Vec4f(0, 1, 0, 0); } void VShaderSimulator::VShaderRestoreHash96527590() { // // Definitions // ConstFloatRegisters[8] = g_Context->Managers.State.VShaderFloatConstants[8]; } void VShaderSimulator::VShaderCompiledHash96527590(const VertexData &VData) { // // Declarations // InputRegisters[0] = VData.Position; InputRegisters[1] = VData.Normal; InputRegisters[2] = VData.Color[0]; OutputTextureRegisters[0] = VData.Position; OutputTextureRegisters[1] = VData.Color[0]; OutputTextureRegisters[2] = VData.Color[1]; OutputTextureRegisters[3] = VData.TexCoord[0]; OutputTextureRegisters[4] = VData.TexCoord[1]; OutputTextureRegisters[5] = VData.TexCoord[2]; OutputTextureRegisters[6] = VData.TexCoord[3]; OutputTextureRegisters[7] = VData.Position; // // Instructions // // // mul r0, c1, v0.y // { Vec4f Result, Sources[2], SourcesPreSwizzle[2]; Sources[0] = ConstFloatRegisters[1]; SourcesPreSwizzle[1] = InputRegisters[0]; Vec4Swizzle(Sources[1], SourcesPreSwizzle[1], y, y, y, y); INST_VS_MUL(Result, Sources); Vec4f &Destination = TempRegisters[0]; Destination = Result; } // // mad r0, v0.x, c0, r0 // { Vec4f Result, Sources[3], SourcesPreSwizzle[3]; SourcesPreSwizzle[0] = InputRegisters[0]; Vec4Swizzle(Sources[0], SourcesPreSwizzle[0], x, x, x, x); Sources[1] = ConstFloatRegisters[0]; Sources[2] = TempRegisters[0]; INST_VS_MAD(Result, Sources); Vec4f &Destination = TempRegisters[0]; Destination = Result; } // // mad r0, v0.z, c2, r0 // { Vec4f Result, Sources[3], SourcesPreSwizzle[3]; SourcesPreSwizzle[0] = InputRegisters[0]; Vec4Swizzle(Sources[0], SourcesPreSwizzle[0], z, z, z, z); Sources[1] = ConstFloatRegisters[2]; Sources[2] = TempRegisters[0]; INST_VS_MAD(Result, Sources); Vec4f &Destination = TempRegisters[0]; Destination = Result; } // // add r0, r0, c3 // { Vec4f Result, Sources[2], SourcesPreSwizzle[2]; Sources[0] = TempRegisters[0]; Sources[1] = ConstFloatRegisters[3]; Result = Sources[0] + Sources[1]; Vec4f &Destination = TempRegisters[0]; Destination = Result; } // // mul r1, r0.y, c5 // { Vec4f Result, Sources[2], SourcesPreSwizzle[2]; SourcesPreSwizzle[0] = TempRegisters[0]; Vec4Swizzle(Sources[0], SourcesPreSwizzle[0], y, y, y, y); Sources[1] = ConstFloatRegisters[5]; INST_VS_MUL(Result, Sources); Vec4f &Destination = TempRegisters[1]; Destination = Result; } // // mad r1, r0.x, c4, r1 // { Vec4f Result, Sources[3], SourcesPreSwizzle[3]; SourcesPreSwizzle[0] = TempRegisters[0]; Vec4Swizzle(Sources[0], SourcesPreSwizzle[0], x, x, x, x); Sources[1] = ConstFloatRegisters[4]; Sources[2] = TempRegisters[1]; INST_VS_MAD(Result, Sources); Vec4f &Destination = TempRegisters[1]; Destination = Result; } // // mad r1, r0.z, c6, r1 // { Vec4f Result, Sources[3], SourcesPreSwizzle[3]; SourcesPreSwizzle[0] = TempRegisters[0]; Vec4Swizzle(Sources[0], SourcesPreSwizzle[0], z, z, z, z); Sources[1] = ConstFloatRegisters[6]; Sources[2] = TempRegisters[1]; INST_VS_MAD(Result, Sources); Vec4f &Destination = TempRegisters[1]; Destination = Result; } // // mad oT0, r0.w, c7, r1 // { Vec4f Result, Sources[3], SourcesPreSwizzle[3]; SourcesPreSwizzle[0] = TempRegisters[0]; Vec4Swizzle(Sources[0], SourcesPreSwizzle[0], w, w, w, w); Sources[1] = ConstFloatRegisters[7]; Sources[2] = TempRegisters[1]; INST_VS_MAD(Result, Sources); Vec4f &Destination = OutputTextureRegisters[0]; Destination = Result; } // // add r1.xy, -c23.yxzw, v0.yxzw // { Vec4f Result, Sources[2], SourcesPreSwizzle[2]; SourcesPreSwizzle[0] = -ConstFloatRegisters[23]; Vec4Swizzle(Sources[0], SourcesPreSwizzle[0], y, y, y, y); SourcesPreSwizzle[1] = InputRegisters[0]; Vec4Swizzle(Sources[1], SourcesPreSwizzle[1], y, y, y, y); Result = Sources[0] + Sources[1]; Vec4f &Destination = TempRegisters[1]; Destination.x = Result.x; Destination.y = Result.y; } // // mov r2.xy, c18 // { Vec4f Result, Source, SourcePreSwizzle; Source = ConstFloatRegisters[18]; Result = Source; Vec4f &Destination = TempRegisters[2]; Destination.x = Result.x; Destination.y = Result.y; } // // mad oT3.xy, r1, r2.yxzw, c13.yxzw // { Vec4f Result, Sources[3], SourcesPreSwizzle[3]; Sources[0] = TempRegisters[1]; SourcesPreSwizzle[1] = TempRegisters[2]; Vec4Swizzle(Sources[1], SourcesPreSwizzle[1], y, y, y, y); SourcesPreSwizzle[2] = ConstFloatRegisters[13]; Vec4Swizzle(Sources[2], SourcesPreSwizzle[2], y, y, y, y); INST_VS_MAD(Result, Sources); Vec4f &Destination = OutputTextureRegisters[3]; Destination.x = Result.x; Destination.y = Result.y; } // // mov r2.xy, c19 // { Vec4f Result, Source, SourcePreSwizzle; Source = ConstFloatRegisters[19]; Result = Source; Vec4f &Destination = TempRegisters[2]; Destination.x = Result.x; Destination.y = Result.y; } // // mad oT4.xy, r1, r2.yxzw, c14.yxzw // { Vec4f Result, Sources[3], SourcesPreSwizzle[3]; Sources[0] = TempRegisters[1]; SourcesPreSwizzle[1] = TempRegisters[2]; Vec4Swizzle(Sources[1], SourcesPreSwizzle[1], y, y, y, y); SourcesPreSwizzle[2] = ConstFloatRegisters[14]; Vec4Swizzle(Sources[2], SourcesPreSwizzle[2], y, y, y, y); INST_VS_MAD(Result, Sources); Vec4f &Destination = OutputTextureRegisters[4]; Destination.x = Result.x; Destination.y = Result.y; } // // mov r2.xy, c20 // { Vec4f Result, Source, SourcePreSwizzle; Source = ConstFloatRegisters[20]; Result = Source; Vec4f &Destination = TempRegisters[2]; Destination.x = Result.x; Destination.y = Result.y; } // // mad oT5.xy, r1, r2.yxzw, c15.yxzw // { Vec4f Result, Sources[3], SourcesPreSwizzle[3]; Sources[0] = TempRegisters[1]; SourcesPreSwizzle[1] = TempRegisters[2]; Vec4Swizzle(Sources[1], SourcesPreSwizzle[1], y, y, y, y); SourcesPreSwizzle[2] = ConstFloatRegisters[15]; Vec4Swizzle(Sources[2], SourcesPreSwizzle[2], y, y, y, y); INST_VS_MAD(Result, Sources); Vec4f &Destination = OutputTextureRegisters[5]; Destination.x = Result.x; Destination.y = Result.y; } // // mov r2.xy, c21 // { Vec4f Result, Source, SourcePreSwizzle; Source = ConstFloatRegisters[21]; Result = Source; Vec4f &Destination = TempRegisters[2]; Destination.x = Result.x; Destination.y = Result.y; } // // mad oT6.xy, r1, r2.yxzw, c16.yxzw // { Vec4f Result, Sources[3], SourcesPreSwizzle[3]; Sources[0] = TempRegisters[1]; SourcesPreSwizzle[1] = TempRegisters[2]; Vec4Swizzle(Sources[1], SourcesPreSwizzle[1], y, y, y, y); SourcesPreSwizzle[2] = ConstFloatRegisters[16]; Vec4Swizzle(Sources[2], SourcesPreSwizzle[2], y, y, y, y); INST_VS_MAD(Result, Sources); Vec4f &Destination = OutputTextureRegisters[6]; Destination.x = Result.x; Destination.y = Result.y; } // // mad r0.w, r0.z, c12.x, c12.y // { Vec4f Result, Sources[3], SourcesPreSwizzle[3]; SourcesPreSwizzle[0] = TempRegisters[0]; Vec4Swizzle(Sources[0], SourcesPreSwizzle[0], z, z, z, z); SourcesPreSwizzle[1] = ConstFloatRegisters[12]; Vec4Swizzle(Sources[1], SourcesPreSwizzle[1], x, x, x, x); SourcesPreSwizzle[2] = ConstFloatRegisters[12]; Vec4Swizzle(Sources[2], SourcesPreSwizzle[2], y, y, y, y); INST_VS_MAD(Result, Sources); Vec4f &Destination = TempRegisters[0]; Destination.w = Result.w; } // // max r0.w, r0.w, c8.x // { Vec4f Result, Sources[2], SourcesPreSwizzle[2]; SourcesPreSwizzle[0] = TempRegisters[0]; Vec4Swizzle(Sources[0], SourcesPreSwizzle[0], w, w, w, w); SourcesPreSwizzle[1] = ConstFloatRegisters[8]; Vec4Swizzle(Sources[1], SourcesPreSwizzle[1], x, x, x, x); Result = Vec4f::Maximize(Sources[0], Sources[1]); Vec4f &Destination = TempRegisters[0]; Destination.w = Result.w; } // // pow r1.x, r0.w, c12.z // { Vec4f Result, Sources[2], SourcesPreSwizzle[2]; SourcesPreSwizzle[0] = TempRegisters[0]; Vec4Swizzle(Sources[0], SourcesPreSwizzle[0], w, w, w, w); SourcesPreSwizzle[1] = ConstFloatRegisters[12]; Vec4Swizzle(Sources[1], SourcesPreSwizzle[1], z, z, z, z); INST_VS_POW(Result, Sources); Vec4f &Destination = TempRegisters[1]; Destination.x = Result.x; } // // min oT7.x, r1.x, c8.y // { Vec4f Result, Sources[2], SourcesPreSwizzle[2]; SourcesPreSwizzle[0] = TempRegisters[1]; Vec4Swizzle(Sources[0], SourcesPreSwizzle[0], x, x, x, x); SourcesPreSwizzle[1] = ConstFloatRegisters[8]; Vec4Swizzle(Sources[1], SourcesPreSwizzle[1], y, y, y, y); Result = Vec4f::Minimize(Sources[0], Sources[1]); Vec4f &Destination = OutputTextureRegisters[7]; Destination.x = Result.x; } // // dp3 r0.w, -r0, -r0 // { Vec4f Result, Sources[2], SourcesPreSwizzle[2]; Sources[0] = -TempRegisters[0]; Sources[1] = -TempRegisters[0]; INST_VS_DP3(Result, Sources); Vec4f &Destination = TempRegisters[0]; Destination.w = Result.w; } // // rsq r0.w, r0.w // { Vec4f Result, Source, SourcePreSwizzle; SourcePreSwizzle = TempRegisters[0]; Vec4Swizzle(Source, SourcePreSwizzle, w, w, w, w); INST_VS_RSQ(Result, Source); Vec4f &Destination = TempRegisters[0]; Destination.w = Result.w; } // // mad r1.xyz, -r0, r0.w, c24 // { Vec4f Result, Sources[3], SourcesPreSwizzle[3]; Sources[0] = -TempRegisters[0]; SourcesPreSwizzle[1] = TempRegisters[0]; Vec4Swizzle(Sources[1], SourcesPreSwizzle[1], w, w, w, w); Sources[2] = ConstFloatRegisters[24]; INST_VS_MAD(Result, Sources); Vec4f &Destination = TempRegisters[1]; Destination.x = Result.x; Destination.y = Result.y; Destination.z = Result.z; } // // nrm r2.xyz, r1 // { Vec4f Result, Source, SourcePreSwizzle; Source = TempRegisters[1]; INST_VS_NRM(Result, Source); Vec4f &Destination = TempRegisters[2]; Destination.x = Result.x; Destination.y = Result.y; Destination.z = Result.z; } // // mul r1.xyz, c1, v1.y // { Vec4f Result, Sources[2], SourcesPreSwizzle[2]; Sources[0] = ConstFloatRegisters[1]; SourcesPreSwizzle[1] = InputRegisters[1]; Vec4Swizzle(Sources[1], SourcesPreSwizzle[1], y, y, y, y); INST_VS_MUL(Result, Sources); Vec4f &Destination = TempRegisters[1]; Destination.x = Result.x; Destination.y = Result.y; Destination.z = Result.z; } // // mad r1.xyz, v1.x, c0, r1 // { Vec4f Result, Sources[3], SourcesPreSwizzle[3]; SourcesPreSwizzle[0] = InputRegisters[1]; Vec4Swizzle(Sources[0], SourcesPreSwizzle[0], x, x, x, x); Sources[1] = ConstFloatRegisters[0]; Sources[2] = TempRegisters[1]; INST_VS_MAD(Result, Sources); Vec4f &Destination = TempRegisters[1]; Destination.x = Result.x; Destination.y = Result.y; Destination.z = Result.z; } // // mad r1.xyz, v1.z, c2, r1 // { Vec4f Result, Sources[3], SourcesPreSwizzle[3]; SourcesPreSwizzle[0] = InputRegisters[1]; Vec4Swizzle(Sources[0], SourcesPreSwizzle[0], z, z, z, z); Sources[1] = ConstFloatRegisters[2]; Sources[2] = TempRegisters[1]; INST_VS_MAD(Result, Sources); Vec4f &Destination = TempRegisters[1]; Destination.x = Result.x; Destination.y = Result.y; Destination.z = Result.z; } // // dp3 r0.w, r2, r1 // { Vec4f Result, Sources[2], SourcesPreSwizzle[2]; Sources[0] = TempRegisters[2]; Sources[1] = TempRegisters[1]; INST_VS_DP3(Result, Sources); Vec4f &Destination = TempRegisters[0]; Destination.w = Result.w; } // // max r0.w, r0.w, c8.x // { Vec4f Result, Sources[2], SourcesPreSwizzle[2]; SourcesPreSwizzle[0] = TempRegisters[0]; Vec4Swizzle(Sources[0], SourcesPreSwizzle[0], w, w, w, w); SourcesPreSwizzle[1] = ConstFloatRegisters[8]; Vec4Swizzle(Sources[1], SourcesPreSwizzle[1], x, x, x, x); Result = Vec4f::Maximize(Sources[0], Sources[1]); Vec4f &Destination = TempRegisters[0]; Destination.w = Result.w; } // // pow r1.w, r0.w, c27.w // { Vec4f Result, Sources[2], SourcesPreSwizzle[2]; SourcesPreSwizzle[0] = TempRegisters[0]; Vec4Swizzle(Sources[0], SourcesPreSwizzle[0], w, w, w, w); SourcesPreSwizzle[1] = ConstFloatRegisters[27]; Vec4Swizzle(Sources[1], SourcesPreSwizzle[1], w, w, w, w); INST_VS_POW(Result, Sources); Vec4f &Destination = TempRegisters[1]; Destination.w = Result.w; } // // mul oT2.xyz, r1.w, c27 // { Vec4f Result, Sources[2], SourcesPreSwizzle[2]; SourcesPreSwizzle[0] = TempRegisters[1]; Vec4Swizzle(Sources[0], SourcesPreSwizzle[0], w, w, w, w); Sources[1] = ConstFloatRegisters[27]; INST_VS_MUL(Result, Sources); Vec4f &Destination = OutputTextureRegisters[2]; Destination.x = Result.x; Destination.y = Result.y; Destination.z = Result.z; } // // mov r2.xyz, c1 // { Vec4f Result, Source, SourcePreSwizzle; Source = ConstFloatRegisters[1]; Result = Source; Vec4f &Destination = TempRegisters[2]; Destination.x = Result.x; Destination.y = Result.y; Destination.z = Result.z; } // // mul r3.xyz, r2, c28.y // { Vec4f Result, Sources[2], SourcesPreSwizzle[2]; Sources[0] = TempRegisters[2]; SourcesPreSwizzle[1] = ConstFloatRegisters[28]; Vec4Swizzle(Sources[1], SourcesPreSwizzle[1], y, y, y, y); INST_VS_MUL(Result, Sources); Vec4f &Destination = TempRegisters[3]; Destination.x = Result.x; Destination.y = Result.y; Destination.z = Result.z; } // // mov r4.xyz, c0 // { Vec4f Result, Source, SourcePreSwizzle; Source = ConstFloatRegisters[0]; Result = Source; Vec4f &Destination = TempRegisters[4]; Destination.x = Result.x; Destination.y = Result.y; Destination.z = Result.z; } // // mad r3.xyz, c28.x, r4, r3 // { Vec4f Result, Sources[3], SourcesPreSwizzle[3]; SourcesPreSwizzle[0] = ConstFloatRegisters[28]; Vec4Swizzle(Sources[0], SourcesPreSwizzle[0], x, x, x, x); Sources[1] = TempRegisters[4]; Sources[2] = TempRegisters[3]; INST_VS_MAD(Result, Sources); Vec4f &Destination = TempRegisters[3]; Destination.x = Result.x; Destination.y = Result.y; Destination.z = Result.z; } // // mov r5.xyz, c2 // { Vec4f Result, Source, SourcePreSwizzle; Source = ConstFloatRegisters[2]; Result = Source; Vec4f &Destination = TempRegisters[5]; Destination.x = Result.x; Destination.y = Result.y; Destination.z = Result.z; } // // mad r3.xyz, c28.z, r5, r3 // { Vec4f Result, Sources[3], SourcesPreSwizzle[3]; SourcesPreSwizzle[0] = ConstFloatRegisters[28]; Vec4Swizzle(Sources[0], SourcesPreSwizzle[0], z, z, z, z); Sources[1] = TempRegisters[5]; Sources[2] = TempRegisters[3]; INST_VS_MAD(Result, Sources); Vec4f &Destination = TempRegisters[3]; Destination.x = Result.x; Destination.y = Result.y; Destination.z = Result.z; } // // add r3.xyz, -r0, r3 // { Vec4f Result, Sources[2], SourcesPreSwizzle[2]; Sources[0] = -TempRegisters[0]; Sources[1] = TempRegisters[3]; Result = Sources[0] + Sources[1]; Vec4f &Destination = TempRegisters[3]; Destination.x = Result.x; Destination.y = Result.y; Destination.z = Result.z; } // // dp3 r0.w, r3, r3 // { Vec4f Result, Sources[2], SourcesPreSwizzle[2]; Sources[0] = TempRegisters[3]; Sources[1] = TempRegisters[3]; INST_VS_DP3(Result, Sources); Vec4f &Destination = TempRegisters[0]; Destination.w = Result.w; } // // rsq r0.w, r0.w // { Vec4f Result, Source, SourcePreSwizzle; SourcePreSwizzle = TempRegisters[0]; Vec4Swizzle(Source, SourcePreSwizzle, w, w, w, w); INST_VS_RSQ(Result, Source); Vec4f &Destination = TempRegisters[0]; Destination.w = Result.w; } // // rcp r1.w, r0.w // { Vec4f Result, Source, SourcePreSwizzle; SourcePreSwizzle = TempRegisters[0]; Vec4Swizzle(Source, SourcePreSwizzle, w, w, w, w); INST_VS_RCP(Result, Source); Vec4f &Destination = TempRegisters[1]; Destination.w = Result.w; } // // mul r3.xyz, r3, r0.w // { Vec4f Result, Sources[2], SourcesPreSwizzle[2]; Sources[0] = TempRegisters[3]; SourcesPreSwizzle[1] = TempRegisters[0]; Vec4Swizzle(Sources[1], SourcesPreSwizzle[1], w, w, w, w); INST_VS_MUL(Result, Sources); Vec4f &Destination = TempRegisters[3]; Destination.x = Result.x; Destination.y = Result.y; Destination.z = Result.z; } // // dp3 r0.w, r3, r1 // { Vec4f Result, Sources[2], SourcesPreSwizzle[2]; Sources[0] = TempRegisters[3]; Sources[1] = TempRegisters[1]; INST_VS_DP3(Result, Sources); Vec4f &Destination = TempRegisters[0]; Destination.w = Result.w; } // // mul r3.xyz, r0.w, c29 // { Vec4f Result, Sources[2], SourcesPreSwizzle[2]; SourcesPreSwizzle[0] = TempRegisters[0]; Vec4Swizzle(Sources[0], SourcesPreSwizzle[0], w, w, w, w); Sources[1] = ConstFloatRegisters[29]; INST_VS_MUL(Result, Sources); Vec4f &Destination = TempRegisters[3]; Destination.x = Result.x; Destination.y = Result.y; Destination.z = Result.z; } // // mad r0.w, c30.y, r1.w, c30.x // { Vec4f Result, Sources[3], SourcesPreSwizzle[3]; SourcesPreSwizzle[0] = ConstFloatRegisters[30]; Vec4Swizzle(Sources[0], SourcesPreSwizzle[0], y, y, y, y); SourcesPreSwizzle[1] = TempRegisters[1]; Vec4Swizzle(Sources[1], SourcesPreSwizzle[1], w, w, w, w); SourcesPreSwizzle[2] = ConstFloatRegisters[30]; Vec4Swizzle(Sources[2], SourcesPreSwizzle[2], x, x, x, x); INST_VS_MAD(Result, Sources); Vec4f &Destination = TempRegisters[0]; Destination.w = Result.w; } // // mul r1.w, r1.w, r1.w // { Vec4f Result, Sources[2], SourcesPreSwizzle[2]; SourcesPreSwizzle[0] = TempRegisters[1]; Vec4Swizzle(Sources[0], SourcesPreSwizzle[0], w, w, w, w); SourcesPreSwizzle[1] = TempRegisters[1]; Vec4Swizzle(Sources[1], SourcesPreSwizzle[1], w, w, w, w); INST_VS_MUL(Result, Sources); Vec4f &Destination = TempRegisters[1]; Destination.w = Result.w; } // // mad r0.w, r1.w, c30.z, r0.w // { Vec4f Result, Sources[3], SourcesPreSwizzle[3]; SourcesPreSwizzle[0] = TempRegisters[1]; Vec4Swizzle(Sources[0], SourcesPreSwizzle[0], w, w, w, w); SourcesPreSwizzle[1] = ConstFloatRegisters[30]; Vec4Swizzle(Sources[1], SourcesPreSwizzle[1], z, z, z, z); SourcesPreSwizzle[2] = TempRegisters[0]; Vec4Swizzle(Sources[2], SourcesPreSwizzle[2], w, w, w, w); INST_VS_MAD(Result, Sources); Vec4f &Destination = TempRegisters[0]; Destination.w = Result.w; } // // rcp r0.w, r0.w // { Vec4f Result, Source, SourcePreSwizzle; SourcePreSwizzle = TempRegisters[0]; Vec4Swizzle(Source, SourcePreSwizzle, w, w, w, w); INST_VS_RCP(Result, Source); Vec4f &Destination = TempRegisters[0]; Destination.w = Result.w; } // // dp3 r1.w, c24, r1 // { Vec4f Result, Sources[2], SourcesPreSwizzle[2]; Sources[0] = ConstFloatRegisters[24]; Sources[1] = TempRegisters[1]; INST_VS_DP3(Result, Sources); Vec4f &Destination = TempRegisters[1]; Destination.w = Result.w; } // // mov r6.xyz, c26 // { Vec4f Result, Source, SourcePreSwizzle; Source = ConstFloatRegisters[26]; Result = Source; Vec4f &Destination = TempRegisters[6]; Destination.x = Result.x; Destination.y = Result.y; Destination.z = Result.z; } // // mad r6.xyz, r6, r1.w, c25 // { Vec4f Result, Sources[3], SourcesPreSwizzle[3]; Sources[0] = TempRegisters[6]; SourcesPreSwizzle[1] = TempRegisters[1]; Vec4Swizzle(Sources[1], SourcesPreSwizzle[1], w, w, w, w); Sources[2] = ConstFloatRegisters[25]; INST_VS_MAD(Result, Sources); Vec4f &Destination = TempRegisters[6]; Destination.x = Result.x; Destination.y = Result.y; Destination.z = Result.z; } // // mad r3.xyz, r3, r0.w, r6 // { Vec4f Result, Sources[3], SourcesPreSwizzle[3]; Sources[0] = TempRegisters[3]; SourcesPreSwizzle[1] = TempRegisters[0]; Vec4Swizzle(Sources[1], SourcesPreSwizzle[1], w, w, w, w); Sources[2] = TempRegisters[6]; INST_VS_MAD(Result, Sources); Vec4f &Destination = TempRegisters[3]; Destination.x = Result.x; Destination.y = Result.y; Destination.z = Result.z; } // // mul r6.xyz, r2, c31.y // { Vec4f Result, Sources[2], SourcesPreSwizzle[2]; Sources[0] = TempRegisters[2]; SourcesPreSwizzle[1] = ConstFloatRegisters[31]; Vec4Swizzle(Sources[1], SourcesPreSwizzle[1], y, y, y, y); INST_VS_MUL(Result, Sources); Vec4f &Destination = TempRegisters[6]; Destination.x = Result.x; Destination.y = Result.y; Destination.z = Result.z; } // // mad r6.xyz, c31.x, r4, r6 // { Vec4f Result, Sources[3], SourcesPreSwizzle[3]; SourcesPreSwizzle[0] = ConstFloatRegisters[31]; Vec4Swizzle(Sources[0], SourcesPreSwizzle[0], x, x, x, x); Sources[1] = TempRegisters[4]; Sources[2] = TempRegisters[6]; INST_VS_MAD(Result, Sources); Vec4f &Destination = TempRegisters[6]; Destination.x = Result.x; Destination.y = Result.y; Destination.z = Result.z; } // // mad r6.xyz, c31.z, r5, r6 // { Vec4f Result, Sources[3], SourcesPreSwizzle[3]; SourcesPreSwizzle[0] = ConstFloatRegisters[31]; Vec4Swizzle(Sources[0], SourcesPreSwizzle[0], z, z, z, z); Sources[1] = TempRegisters[5]; Sources[2] = TempRegisters[6]; INST_VS_MAD(Result, Sources); Vec4f &Destination = TempRegisters[6]; Destination.x = Result.x; Destination.y = Result.y; Destination.z = Result.z; } // // add r6.xyz, -r0, r6 // { Vec4f Result, Sources[2], SourcesPreSwizzle[2]; Sources[0] = -TempRegisters[0]; Sources[1] = TempRegisters[6]; Result = Sources[0] + Sources[1]; Vec4f &Destination = TempRegisters[6]; Destination.x = Result.x; Destination.y = Result.y; Destination.z = Result.z; } // // dp3 r0.w, r6, r6 // { Vec4f Result, Sources[2], SourcesPreSwizzle[2]; Sources[0] = TempRegisters[6]; Sources[1] = TempRegisters[6]; INST_VS_DP3(Result, Sources); Vec4f &Destination = TempRegisters[0]; Destination.w = Result.w; } // // rsq r0.w, r0.w // { Vec4f Result, Source, SourcePreSwizzle; SourcePreSwizzle = TempRegisters[0]; Vec4Swizzle(Source, SourcePreSwizzle, w, w, w, w); INST_VS_RSQ(Result, Source); Vec4f &Destination = TempRegisters[0]; Destination.w = Result.w; } // // rcp r1.w, r0.w // { Vec4f Result, Source, SourcePreSwizzle; SourcePreSwizzle = TempRegisters[0]; Vec4Swizzle(Source, SourcePreSwizzle, w, w, w, w); INST_VS_RCP(Result, Source); Vec4f &Destination = TempRegisters[1]; Destination.w = Result.w; } // // mul r6.xyz, r6, r0.w // { Vec4f Result, Sources[2], SourcesPreSwizzle[2]; Sources[0] = TempRegisters[6]; SourcesPreSwizzle[1] = TempRegisters[0]; Vec4Swizzle(Sources[1], SourcesPreSwizzle[1], w, w, w, w); INST_VS_MUL(Result, Sources); Vec4f &Destination = TempRegisters[6]; Destination.x = Result.x; Destination.y = Result.y; Destination.z = Result.z; } // // dp3 r0.w, r6, r1 // { Vec4f Result, Sources[2], SourcesPreSwizzle[2]; Sources[0] = TempRegisters[6]; Sources[1] = TempRegisters[1]; INST_VS_DP3(Result, Sources); Vec4f &Destination = TempRegisters[0]; Destination.w = Result.w; } // // mul r6.xyz, r0.w, c32 // { Vec4f Result, Sources[2], SourcesPreSwizzle[2]; SourcesPreSwizzle[0] = TempRegisters[0]; Vec4Swizzle(Sources[0], SourcesPreSwizzle[0], w, w, w, w); Sources[1] = ConstFloatRegisters[32]; INST_VS_MUL(Result, Sources); Vec4f &Destination = TempRegisters[6]; Destination.x = Result.x; Destination.y = Result.y; Destination.z = Result.z; } // // mad r0.w, c33.y, r1.w, c33.x // { Vec4f Result, Sources[3], SourcesPreSwizzle[3]; SourcesPreSwizzle[0] = ConstFloatRegisters[33]; Vec4Swizzle(Sources[0], SourcesPreSwizzle[0], y, y, y, y); SourcesPreSwizzle[1] = TempRegisters[1]; Vec4Swizzle(Sources[1], SourcesPreSwizzle[1], w, w, w, w); SourcesPreSwizzle[2] = ConstFloatRegisters[33]; Vec4Swizzle(Sources[2], SourcesPreSwizzle[2], x, x, x, x); INST_VS_MAD(Result, Sources); Vec4f &Destination = TempRegisters[0]; Destination.w = Result.w; } // // mul r1.w, r1.w, r1.w // { Vec4f Result, Sources[2], SourcesPreSwizzle[2]; SourcesPreSwizzle[0] = TempRegisters[1]; Vec4Swizzle(Sources[0], SourcesPreSwizzle[0], w, w, w, w); SourcesPreSwizzle[1] = TempRegisters[1]; Vec4Swizzle(Sources[1], SourcesPreSwizzle[1], w, w, w, w); INST_VS_MUL(Result, Sources); Vec4f &Destination = TempRegisters[1]; Destination.w = Result.w; } // // mad r0.w, r1.w, c33.z, r0.w // { Vec4f Result, Sources[3], SourcesPreSwizzle[3]; SourcesPreSwizzle[0] = TempRegisters[1]; Vec4Swizzle(Sources[0], SourcesPreSwizzle[0], w, w, w, w); SourcesPreSwizzle[1] = ConstFloatRegisters[33]; Vec4Swizzle(Sources[1], SourcesPreSwizzle[1], z, z, z, z); SourcesPreSwizzle[2] = TempRegisters[0]; Vec4Swizzle(Sources[2], SourcesPreSwizzle[2], w, w, w, w); INST_VS_MAD(Result, Sources); Vec4f &Destination = TempRegisters[0]; Destination.w = Result.w; } // // rcp r0.w, r0.w // { Vec4f Result, Source, SourcePreSwizzle; SourcePreSwizzle = TempRegisters[0]; Vec4Swizzle(Source, SourcePreSwizzle, w, w, w, w); INST_VS_RCP(Result, Source); Vec4f &Destination = TempRegisters[0]; Destination.w = Result.w; } // // mad r3.xyz, r6, r0.w, r3 // { Vec4f Result, Sources[3], SourcesPreSwizzle[3]; Sources[0] = TempRegisters[6]; SourcesPreSwizzle[1] = TempRegisters[0]; Vec4Swizzle(Sources[1], SourcesPreSwizzle[1], w, w, w, w); Sources[2] = TempRegisters[3]; INST_VS_MAD(Result, Sources); Vec4f &Destination = TempRegisters[3]; Destination.x = Result.x; Destination.y = Result.y; Destination.z = Result.z; } // // mul r2.xyz, r2, c34.y // { Vec4f Result, Sources[2], SourcesPreSwizzle[2]; Sources[0] = TempRegisters[2]; SourcesPreSwizzle[1] = ConstFloatRegisters[34]; Vec4Swizzle(Sources[1], SourcesPreSwizzle[1], y, y, y, y); INST_VS_MUL(Result, Sources); Vec4f &Destination = TempRegisters[2]; Destination.x = Result.x; Destination.y = Result.y; Destination.z = Result.z; } // // mad r2.xyz, c34.x, r4, r2 // { Vec4f Result, Sources[3], SourcesPreSwizzle[3]; SourcesPreSwizzle[0] = ConstFloatRegisters[34]; Vec4Swizzle(Sources[0], SourcesPreSwizzle[0], x, x, x, x); Sources[1] = TempRegisters[4]; Sources[2] = TempRegisters[2]; INST_VS_MAD(Result, Sources); Vec4f &Destination = TempRegisters[2]; Destination.x = Result.x; Destination.y = Result.y; Destination.z = Result.z; } // // mad r2.xyz, c34.z, r5, r2 // { Vec4f Result, Sources[3], SourcesPreSwizzle[3]; SourcesPreSwizzle[0] = ConstFloatRegisters[34]; Vec4Swizzle(Sources[0], SourcesPreSwizzle[0], z, z, z, z); Sources[1] = TempRegisters[5]; Sources[2] = TempRegisters[2]; INST_VS_MAD(Result, Sources); Vec4f &Destination = TempRegisters[2]; Destination.x = Result.x; Destination.y = Result.y; Destination.z = Result.z; } // // add r0.xyz, -r0, r2 // { Vec4f Result, Sources[2], SourcesPreSwizzle[2]; Sources[0] = -TempRegisters[0]; Sources[1] = TempRegisters[2]; Result = Sources[0] + Sources[1]; Vec4f &Destination = TempRegisters[0]; Destination.x = Result.x; Destination.y = Result.y; Destination.z = Result.z; } // // dp3 r0.w, r0, r0 // { Vec4f Result, Sources[2], SourcesPreSwizzle[2]; Sources[0] = TempRegisters[0]; Sources[1] = TempRegisters[0]; INST_VS_DP3(Result, Sources); Vec4f &Destination = TempRegisters[0]; Destination.w = Result.w; } // // rsq r0.w, r0.w // { Vec4f Result, Source, SourcePreSwizzle; SourcePreSwizzle = TempRegisters[0]; Vec4Swizzle(Source, SourcePreSwizzle, w, w, w, w); INST_VS_RSQ(Result, Source); Vec4f &Destination = TempRegisters[0]; Destination.w = Result.w; } // // rcp r1.w, r0.w // { Vec4f Result, Source, SourcePreSwizzle; SourcePreSwizzle = TempRegisters[0]; Vec4Swizzle(Source, SourcePreSwizzle, w, w, w, w); INST_VS_RCP(Result, Source); Vec4f &Destination = TempRegisters[1]; Destination.w = Result.w; } // // mul r0.xyz, r0, r0.w // { Vec4f Result, Sources[2], SourcesPreSwizzle[2]; Sources[0] = TempRegisters[0]; SourcesPreSwizzle[1] = TempRegisters[0]; Vec4Swizzle(Sources[1], SourcesPreSwizzle[1], w, w, w, w); INST_VS_MUL(Result, Sources); Vec4f &Destination = TempRegisters[0]; Destination.x = Result.x; Destination.y = Result.y; Destination.z = Result.z; } // // dp3 r0.x, r0, r1 // { Vec4f Result, Sources[2], SourcesPreSwizzle[2]; Sources[0] = TempRegisters[0]; Sources[1] = TempRegisters[1]; INST_VS_DP3(Result, Sources); Vec4f &Destination = TempRegisters[0]; Destination.x = Result.x; } // // mul r0.xyz, r0.x, c35 // { Vec4f Result, Sources[2], SourcesPreSwizzle[2]; SourcesPreSwizzle[0] = TempRegisters[0]; Vec4Swizzle(Sources[0], SourcesPreSwizzle[0], x, x, x, x); Sources[1] = ConstFloatRegisters[35]; INST_VS_MUL(Result, Sources); Vec4f &Destination = TempRegisters[0]; Destination.x = Result.x; Destination.y = Result.y; Destination.z = Result.z; } // // mad r0.w, c36.y, r1.w, c36.x // { Vec4f Result, Sources[3], SourcesPreSwizzle[3]; SourcesPreSwizzle[0] = ConstFloatRegisters[36]; Vec4Swizzle(Sources[0], SourcesPreSwizzle[0], y, y, y, y); SourcesPreSwizzle[1] = TempRegisters[1]; Vec4Swizzle(Sources[1], SourcesPreSwizzle[1], w, w, w, w); SourcesPreSwizzle[2] = ConstFloatRegisters[36]; Vec4Swizzle(Sources[2], SourcesPreSwizzle[2], x, x, x, x); INST_VS_MAD(Result, Sources); Vec4f &Destination = TempRegisters[0]; Destination.w = Result.w; } // // mul r1.x, r1.w, r1.w // { Vec4f Result, Sources[2], SourcesPreSwizzle[2]; SourcesPreSwizzle[0] = TempRegisters[1]; Vec4Swizzle(Sources[0], SourcesPreSwizzle[0], w, w, w, w); SourcesPreSwizzle[1] = TempRegisters[1]; Vec4Swizzle(Sources[1], SourcesPreSwizzle[1], w, w, w, w); INST_VS_MUL(Result, Sources); Vec4f &Destination = TempRegisters[1]; Destination.x = Result.x; } // // mad r0.w, r1.x, c36.z, r0.w // { Vec4f Result, Sources[3], SourcesPreSwizzle[3]; SourcesPreSwizzle[0] = TempRegisters[1]; Vec4Swizzle(Sources[0], SourcesPreSwizzle[0], x, x, x, x); SourcesPreSwizzle[1] = ConstFloatRegisters[36]; Vec4Swizzle(Sources[1], SourcesPreSwizzle[1], z, z, z, z); SourcesPreSwizzle[2] = TempRegisters[0]; Vec4Swizzle(Sources[2], SourcesPreSwizzle[2], w, w, w, w); INST_VS_MAD(Result, Sources); Vec4f &Destination = TempRegisters[0]; Destination.w = Result.w; } // // rcp r0.w, r0.w // { Vec4f Result, Source, SourcePreSwizzle; SourcePreSwizzle = TempRegisters[0]; Vec4Swizzle(Source, SourcePreSwizzle, w, w, w, w); INST_VS_RCP(Result, Source); Vec4f &Destination = TempRegisters[0]; Destination.w = Result.w; } // // mad r0.xyz, r0, r0.w, r3 // { Vec4f Result, Sources[3], SourcesPreSwizzle[3]; Sources[0] = TempRegisters[0]; SourcesPreSwizzle[1] = TempRegisters[0]; Vec4Swizzle(Sources[1], SourcesPreSwizzle[1], w, w, w, w); Sources[2] = TempRegisters[3]; INST_VS_MAD(Result, Sources); Vec4f &Destination = TempRegisters[0]; Destination.x = Result.x; Destination.y = Result.y; Destination.z = Result.z; } // // min r0.xyz, r0, c8.y // { Vec4f Result, Sources[2], SourcesPreSwizzle[2]; Sources[0] = TempRegisters[0]; SourcesPreSwizzle[1] = ConstFloatRegisters[8]; Vec4Swizzle(Sources[1], SourcesPreSwizzle[1], y, y, y, y); Result = Vec4f::Minimize(Sources[0], Sources[1]); Vec4f &Destination = TempRegisters[0]; Destination.x = Result.x; Destination.y = Result.y; Destination.z = Result.z; } // // mul oT1.xyz, r0, v2 // { Vec4f Result, Sources[2], SourcesPreSwizzle[2]; Sources[0] = TempRegisters[0]; Sources[1] = InputRegisters[2]; INST_VS_MUL(Result, Sources); Vec4f &Destination = OutputTextureRegisters[1]; Destination.x = Result.x; Destination.y = Result.y; Destination.z = Result.z; } // // mov oT1.w, c8.y // { Vec4f Result, Source, SourcePreSwizzle; SourcePreSwizzle = ConstFloatRegisters[8]; Vec4Swizzle(Source, SourcePreSwizzle, y, y, y, y); Result = Source; Vec4f &Destination = OutputTextureRegisters[1]; Destination.w = Result.w; } // // mov oT2.w, c8.y // { Vec4f Result, Source, SourcePreSwizzle; SourcePreSwizzle = ConstFloatRegisters[8]; Vec4Swizzle(Source, SourcePreSwizzle, y, y, y, y); Result = Source; Vec4f &Destination = OutputTextureRegisters[2]; Destination.w = Result.w; } }