Advertisement
Guest User

Accurate ADD/SUB

a guest
Sep 24th, 2022
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. 0x1871A0             REC_ACCURATE_ADD_SUB:                   # DATA XREF: .got:off_74C68Cā†“o
  2. 0x1871A0                                                     # .got:off_74C9D4ā†“o
  3. 0x1871A0
  4. 0x1871A0             .set back_chain, -0x200
  5. 0x1871A0             .set anonymous_0, -0x1E4
  6. 0x1871A0
  7. ---------------------------------------------------------
  8. backup_regs:
  9. std       r31, 0xFFFF9970
  10. std       r9, 0xFFFF9968
  11. std       r6, 0xFFFF9950
  12. std       r1, 0xFFFF9928
  13. lis       r1, 0x81
  14. stdu      r1, back_chain(r1)
  15. mr        r31, r1
  16. mfcr      r6
  17. std       r6, 0(r31)
  18. mflr      r6
  19. std       r6, 8(r31)
  20. mfctr     r6
  21. std       r6, 0x10(r31)
  22. mfxer     r6
  23. std       r6, 0x18(r31)
  24. li        r9, 0x40
  25. stvx      v13, r31, r9
  26. addi      r9, r9, 0x10
  27. stvx      v14, r31, r9
  28. addi      r9, r9, 0x10
  29. stvx      v15, r31, r9
  30. addi      r9, r9, 0x10
  31. stvx      v16, r31, r9
  32. addi      r9, r9, 0x10
  33. stvx      v17, r31, r9
  34. addi      r9, r9, 0x10
  35. stvx      v18, r31, r9
  36. addi      r9, r9, 0x10
  37. stvx      v19, r31, r9
  38. addi      r9, r9, 0x10
  39. stvx      v20, r31, r9
  40. addi      r9, r9, 0x10
  41. stvx      v21, r31, r9
  42. addi      r9, r9, 0x10
  43. stvx      v22, r31, r9
  44. addi      r9, r9, 0x10
  45. stvx      v23, r31, r9
  46. addi      r9, r9, 0x10
  47. stvx      v24, r31, r9
  48. addi      r9, r9, 0x10
  49. stvx      v25, r31, r9
  50. addi      r9, r9, 0x10
  51. stvx      v26, r31, r9
  52. addi      r9, r9, 0x10
  53. stvx      v27, r31, r9
  54. addi      r9, r9, 0x10
  55. stvx      v28, r31, r9
  56. ---------------------------------------------------
  57. main code:
  58. li        r9, -0x7EC8
  59. lvxl      v13, 0, r9
  60. addi      r9, r9, 0x10
  61. lvxl      v14, 0, r9
  62. li        r9, -1
  63. clrlwi    r9, r9, 1
  64. stw       r9, 0x20(r31)
  65. li        r9, 0xFF
  66. stw       r9, 0x24(r31)
  67. li        r9, 0x1F
  68. stw       r9, 0x28(r31)
  69. li        r9, 0x17
  70. stw       r9, 0x2C(r31)
  71. li        r9, 0x20
  72. lvxl      v16, r9, r31
  73. li        r9, 0x97
  74. stw       r9, 0x20(r31)
  75. clrlslwi  r9, r9, 31,23
  76. stw       r9, 0x24(r31)
  77. li        r9, 0x19
  78. stw       r9, 0x28(r31)
  79. li        r9, -1
  80. clrrwi    r9, r9, 8
  81. stw       r9, 0x2C(r31)
  82. li        r9, 0x20
  83. lvxl      v15, r9, r31
  84. vspltw    v25, v16, 0
  85. vand      v18, v13, v25
  86. vand      v19, v14, v25
  87. vspltw    v17, v16, 2
  88. vcmpgtsw  v20, v19, v18
  89. vsel      v19, v13, v14, v20
  90. vsel      v14, v14, v13, v20
  91. vmr       v13, v19
  92. vandc     v18, v13, v25
  93. vandc     v21, v14, v25
  94. vspltw    v26, v16, 3
  95. vspltw    v27, v16, 1
  96. vsraw     v19, v13, v26
  97. vand      v19, v19, v27
  98. vsraw     v22, v14, v26
  99. vand      v22, v22, v27
  100. vspltisw  v24, 8
  101. vsrw      v24, v25, v24
  102. vspltw    v25, v15, 1
  103. vand      v20, v13, v24
  104. vor       v20, v20, v25
  105. vand      v23, v14, v24
  106. vor       v23, v23, v25
  107. vandc     v28, v28, v28
  108. vcmpequw  v25, v28, v19
  109. vandc     v20, v20, v25
  110. vcmpequw  v26, v28, v22
  111. vandc     v23, v23, v26
  112. vcmpequw  v24, v28, v21
  113. vand      v25, v25, v24
  114. vcmpequw  v24, v28, v18
  115. vxor      v21, v21, v18
  116. vand      v25, v25, v26
  117. vandc     v25, v25, v24
  118. vandc     v18, v18, v25
  119. vadduwm   v20, v20, v20
  120. vadduwm   v23, v23, v23
  121. vsubuwm   v22, v19, v22
  122. vspltw    v24, v15, 2
  123. vcmpgtsw  v24, v24, v22
  124. vsrw      v23, v23, v22
  125. vandc     v24, v24, v26
  126. vand      v23, v23, v24
  127. vsraw     v24, v21, v17
  128. vxor      v23, v23, v24
  129. vsubuwm   v23, v23, v24
  130. vadduwm   v20, v20, v23
  131. vspltw    v25, v15, 3
  132. vand      v24, v25, v20
  133. vcmpequw  v26, v24, v28
  134. vsel      v24, v24, v20, v26
  135. vcfux     v24, v24, 0
  136. vspltw    v25, v16, 3
  137. vsrw      v24, v24, v25
  138. vspltw    v25, v15, 0
  139. vsubuwm   v24, v25, v24
  140. vslw      v25, v20, v24
  141. vsubuwm   v24, v28, v24
  142. vsrw      v26, v20, v24
  143. vsraw     v27, v24, v17
  144. vsel      v20, v26, v25, v27
  145. vspltisw  v27, 1
  146. vsrw      v20, v20, v27
  147. vsubuwm   v25, v28, v20
  148. vor       v25, v25, v20
  149. vsraw     v25, v25, v17
  150. vsraw     v26, v21, v17
  151. vnot      v26, v26
  152. vor       v25, v25, v26
  153. vadduwm   v19, v19, v24
  154. vsraw     v24, v19, v17
  155. vandc     v19, v19, v24
  156. vspltw    v26, v16, 3
  157. vslw      v26, v19, v26
  158. vsraw     v26, v26, v17
  159. vand      v19, v19, v25
  160. vand      v18, v18, v25
  161. vandc     v20, v20, v26
  162. vandc     v19, v19, v26
  163. vspltw    v24, v16, 0
  164. vspltisw  v27, 7
  165. vsrw      v24, v24, v27
  166. vand      v24, v26, v24
  167. vor       v20, v20, v24
  168. vspltw    v24, v16, 1
  169. vand      v25, v26, v24
  170. vor       v19, v19, v25
  171. vspltisw  v25, 9
  172. vslw      v20, v20, v25
  173. vsrw      v20, v20, v25
  174. vspltw    v24, v16, 1
  175. vand      v19, v19, v24
  176. vspltw    v24, v16, 3
  177. vslw      v19, v19, v24
  178. vor       v18, v18, v20
  179. vor       v18, v18, v19
  180. li        r9, -0x7EC8
  181. stvx      v18, 0, r9
  182. ----------------------------------------------------
  183. restore regs:
  184. li        r9, 0x40
  185. lvx       v13, r31, r9
  186. addi      r9, r9, 0x10
  187. lvx       v14, r31, r9
  188. addi      r9, r9, 0x10
  189. lvxl      v15, r31, r9
  190. addi      r9, r9, 0x10
  191. lvxl      v16, r31, r9
  192. addi      r9, r9, 0x10
  193. lvxl      v17, r31, r9
  194. addi      r9, r9, 0x10
  195. lvxl      v18, r31, r9
  196. addi      r9, r9, 0x10
  197. lvxl      v19, r31, r9
  198. addi      r9, r9, 0x10
  199. lvxl      v20, r31, r9
  200. addi      r9, r9, 0x10
  201. lvxl      v21, r31, r9
  202. addi      r9, r9, 0x10
  203. lvxl      v22, r31, r9
  204. addi      r9, r9, 0x10
  205. lvxl      v23, r31, r9
  206. addi      r9, r9, 0x10
  207. lvxl      v24, r31, r9
  208. addi      r9, r9, 0x10
  209. lvxl      v25, r31, r9
  210. addi      r9, r9, 0x10
  211. lvxl      v26, r31, r9
  212. addi      r9, r9, 0x10
  213. lvxl      v27, r31, r9
  214. addi      r9, r9, 0x10
  215. lvxl      v28, r31, r9
  216. ld        r6, 0(r31)
  217. mtcr      r6
  218. ld        r6, 8(r31)
  219. mtlr      r6
  220. ld        r6, 0x10(r31)
  221. mtctr     r6
  222. ld        r6, 0x18(r31)
  223. mtxer     r6
  224. ld        r1, 0xFFFF9928
  225. ld        r6, 0xFFFF9950
  226. ld        r9, 0xFFFF9968
  227. ld        r31, 0xFFFF9970
  228. blr
Tags: ps2_netemu
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement