Advertisement
Ember

mul2

Nov 26th, 2015
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.16 KB | None | 0 0
  1. Aligned float x[4] = { vector.x, vector.x, vector.x, vector.x };
  2. Aligned float y[4] = { vector.y, vector.y, vector.y, vector.y };
  3. Aligned float z[4] = { vector.z, vector.z, vector.z, vector.z };
  4. Aligned float w[4] = { vector.w, vector.w, vector.w, vector.w };
  5. // -- //
  6. x[0] = x[0] * matrix[0][0];
  7. x[1] = x[1] * matrix[0][1];
  8. x[2] = x[2] * matrix[0][2];
  9. x[3] = x[3] * matrix[0][3];
  10. // -- //
  11. y[0] = y[0] * matrix[1][0];
  12. y[1] = y[1] * matrix[1][1];
  13. y[2] = y[2] * matrix[1][2];
  14. y[3] = y[3] * matrix[1][3];
  15. // -- //
  16. z[0] = z[0] * matrix[2][0];
  17. z[1] = z[1] * matrix[2][1];
  18. z[2] = z[2] * matrix[2][2];
  19. z[3] = z[3] * matrix[2][3];
  20. // -- //
  21. w[0] = w[0] * matrix[3][0];
  22. w[1] = w[1] * matrix[3][1];
  23. w[2] = w[2] * matrix[3][2];
  24. w[3] = w[3] * matrix[3][3];
  25. // -- //
  26. x[0] = x[0] + y[0];
  27. x[1] = x[1] + y[1];
  28. x[2] = x[2] + y[2];
  29. x[3] = x[3] + y[3];
  30. // -- //
  31. z[0] = z[0] + w[0];
  32. z[1] = z[1] + w[1];
  33. z[2] = z[2] + w[2];
  34. z[3] = z[3] + w[3];
  35. // -- //
  36. x[0] = x[0] + z[0];
  37. x[1] = x[1] + z[1];
  38. x[2] = x[2] + z[2];
  39. x[3] = x[3] + z[3];
  40. return Float4(x);
  41.  
  42.  
  43. movss       xmm0,dword ptr [rdx]  
  44.  
  45. movss       xmm4,dword ptr [rdx+4]  
  46.  
  47. add         dword ptr [Floats (013F6D9BB8h)],4  
  48.  
  49.  
  50. movaps      xmmword ptr [r11-18h],xmm6  
  51. movaps      xmmword ptr [r11-28h],xmm7  
  52. movaps      xmmword ptr [r11-38h],xmm8  
  53. mov         rax,rcx  
  54. movss       xmm8,dword ptr [rdx+8]  
  55. movaps      xmmword ptr [r11-48h],xmm9  
  56. movaps      xmmword ptr [r11-58h],xmm10  
  57. movaps      xmmword ptr [r11-68h],xmm11  
  58. movaps      xmmword ptr [r11-78h],xmm12  
  59. movaps      xmmword ptr [rsp+60h],xmm13  
  60. movaps      xmmword ptr [rsp+50h],xmm14  
  61. movss       xmm12,dword ptr [rdx+0Ch]  
  62.  
  63. lea         r11,[r11]  
  64.  
  65. movaps      xmmword ptr [rsp+40h],xmm15  
  66. movaps      xmm2,xmm0  
  67. movaps      xmm1,xmm0  
  68. mulss       xmm2,dword ptr [r8+8]  
  69. mulss       xmm1,dword ptr [r8+4]  
  70. movaps      xmm3,xmm0  
  71. movaps      xmm9,xmm8  
  72. movaps      xmm10,xmm8  
  73. movss       dword ptr [rsp+18h],xmm2  
  74. movss       dword ptr [rsp+14h],xmm1  
  75. mulss       xmm0,dword ptr [r8]  
  76. mulss       xmm3,dword ptr [r8+0Ch]  
  77.  
  78. mulss       xmm9,dword ptr [r8+24h]  
  79. movaps      xmm6,xmm4  
  80. movaps      xmm7,xmm4  
  81. movaps      xmm11,xmm8  
  82. movss       dword ptr [x],xmm0  
  83. movss       dword ptr [rsp+1Ch],xmm3  
  84. movaps      xmm13,xmm12  
  85. movss       dword ptr [rsp+34h],xmm9  
  86. movaps      xmm9,xmmword ptr [r11-48h]  
  87. movaps      xmm14,xmm12  
  88. movaps      xmm15,xmm12  
  89. mulss       xmm6,dword ptr [r8+18h]  
  90. mulss       xmm7,dword ptr [r8+1Ch]  
  91. mulss       xmm8,dword ptr [r8+20h]  
  92. movaps      xmm5,xmm4  
  93. movss       dword ptr [rsp+8],xmm6  
  94. movaps      xmm6,xmmword ptr [r11-18h]  
  95. movss       dword ptr [rsp+0Ch],xmm7  
  96. movaps      xmm7,xmmword ptr [r11-28h]  
  97. movss       dword ptr [z],xmm8  
  98. movaps      xmm8,xmmword ptr [r11-38h]  
  99. mulss       xmm10,dword ptr [r8+28h]  
  100. mulss       xmm13,dword ptr [r8+34h]  
  101. mulss       xmm14,dword ptr [r8+38h]  
  102. movss       dword ptr [rsp+38h],xmm10  
  103. movaps      xmm10,xmmword ptr [r11-58h]  
  104. movss       dword ptr [rsp+24h],xmm13  
  105. movss       dword ptr [rsp+28h],xmm14  
  106. mulss       xmm15,dword ptr [r8+3Ch]  
  107. mulss       xmm4,dword ptr [r8+10h]  
  108. mulss       xmm5,dword ptr [r8+14h]  
  109. movss       dword ptr [rsp+2Ch],xmm15  
  110. movss       dword ptr [rsp],xmm4  
  111. movss       dword ptr [rsp+4],xmm5  
  112. movups      xmm0,xmmword ptr [rsp]  
  113. mulss       xmm12,dword ptr [r8+30h]  
  114. mulss       xmm11,dword ptr [r8+2Ch]  
  115. addps       xmm0,xmmword ptr [x]  
  116. movss       dword ptr [w],xmm12  
  117. movups      xmm2,xmmword ptr [w]  
  118. movss       dword ptr [rsp+3Ch],xmm11  
  119. addps       xmm2,xmmword ptr [z]  
  120. addps       xmm2,xmm0  
  121. movups      xmm3,xmm2  
  122.  
  123. movss       dword ptr [rcx],xmm3  
  124. movaps      xmm0,xmm2  
  125. movaps      xmm1,xmm2  
  126. shufps      xmm3,xmm3,0FFh  
  127. shufps      xmm0,xmm2,55h  
  128. shufps      xmm1,xmm2,0AAh  
  129. movss       dword ptr [rcx+0Ch],xmm3  
  130. movss       dword ptr [rcx+4],xmm0  
  131. movss       dword ptr [rcx+8],xmm1  
  132.  
  133. movaps      xmm11,xmmword ptr [r11-68h]  
  134. movaps      xmm12,xmmword ptr [r11-78h]  
  135. movaps      xmm13,xmmword ptr [rsp+60h]  
  136. movaps      xmm14,xmmword ptr [rsp+50h]  
  137. movaps      xmm15,xmmword ptr [rsp+40h]  
  138. mov         rsp,r11  
  139. ret
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement