13a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 23a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org /* TODO 33a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org * 43a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org * 1) It would be nice if load/store double could be used 53a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org * at least for the matrix parts. I think for the matrices 63a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org * it is safe, but for the vertices it probably is not due to 73a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org * things like glInterleavedArrays etc. 83a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org * 93a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org * UPDATE: Trying this now in sparc_matrix.h -DaveM_990624 103a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org * 113a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org * 2) One extremely slick trick would be if we could enclose 123a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org * groups of xform calls on the same vertices such that 133a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org * we just load the matrix into f16-->f31 before the calls 143a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org * and then we would not have to do them here. This may be 153a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org * tricky and not much of a gain though. 163a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org */ 173a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 183a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org#include "sparc_matrix.h" 193a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 203a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org#if defined(SVR4) || defined(__SVR4) || defined(__svr4__) || defined(__arch64__) 213a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org /* Solaris requires this for 64-bit. */ 223a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org .register %g2, #scratch 233a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org .register %g3, #scratch 243a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org#endif 253a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 263a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org .text 273a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org .align 64 283a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 293a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org__set_v4f_1: 303a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%o0 + V4F_FLAGS], %g2 313a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org mov 1, %g1 323a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %g1, [%o0 + V4F_SIZE] 333a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org or %g2, VEC_SIZE_1, %g2 343a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org retl 353a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %g2, [%o0 + V4F_FLAGS] 363a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org__set_v4f_2: 373a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%o0 + V4F_FLAGS], %g2 383a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org mov 2, %g1 393a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %g1, [%o0 + V4F_SIZE] 403a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org or %g2, VEC_SIZE_2, %g2 413a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org retl 423a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %g2, [%o0 + V4F_FLAGS] 433a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org__set_v4f_3: 443a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%o0 + V4F_FLAGS], %g2 453a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org mov 3, %g1 463a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %g1, [%o0 + V4F_SIZE] 473a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org or %g2, VEC_SIZE_3, %g2 483a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org retl 493a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %g2, [%o0 + V4F_FLAGS] 503a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org__set_v4f_4: 513a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%o0 + V4F_FLAGS], %g2 523a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org mov 4, %g1 533a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %g1, [%o0 + V4F_SIZE] 543a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org or %g2, VEC_SIZE_4, %g2 553a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org retl 563a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %g2, [%o0 + V4F_FLAGS] 573a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 583a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org /* First the raw versions. */ 593a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 603a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org .globl _mesa_sparc_transform_points1_general 613a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org_mesa_sparc_transform_points1_general: 623a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%o2 + V4F_STRIDE], %o5 633a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org LDPTR [%o2 + V4F_START], %g1 643a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org LDPTR [%o0 + V4F_START], %g2 653a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%o2 + V4F_COUNT], %g3 663a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 673a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org LDMATRIX_0_1_2_3_12_13_14_15(%o1) 683a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 693a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org cmp %g3, 1 703a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %g3, [%o0 + V4F_COUNT] 713a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org bl 3f 723a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org clr %o1 733a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 743a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org be 2f 753a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org andn %g3, 1, %o2 763a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 773a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org1: ld [%g1 + 0x00], %f0 ! LSU Group 783a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org add %g1, %o5, %g1 ! IEU0 793a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%g1 + 0x00], %f8 ! LSU Group 803a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org add %o1, 2, %o1 ! IEU0 813a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org add %g1, %o5, %g1 ! IEU1 823a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f0, M0, %f1 ! FGM Group 1-cycle stall on %f0 833a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f0, M1, %f2 ! FGM Group 843a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f0, M2, %f3 ! FGM Group 853a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f0, M3, %f4 ! FGM Group 863a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f8, M0, %f9 ! FGM Group f1 available 873a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f1, M12, %f1 ! FGA 883a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f1, [%g2 + 0x00] ! LSU 893a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f8, M1, %f10 ! FGM Group f2 available 903a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f2, M13, %f2 ! FGA 913a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f2, [%g2 + 0x04] ! LSU 923a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f8, M2, %f11 ! FGM Group f3 available 933a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f3, M14, %f3 ! FGA 943a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f3, [%g2 + 0x08] ! LSU 953a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f8, M3, %f12 ! FGM Group f4 available 963a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f4, M15, %f4 ! FGA 973a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f4, [%g2 + 0x0c] ! LSU 983a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f9, M12, %f9 ! FGA Group f9 available 993a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f9, [%g2 + 0x10] ! LSU 1003a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f10, M13, %f10 ! FGA Group f10 available 1013a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f10, [%g2 + 0x14] ! LSU 1023a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f11, M14, %f11 ! FGA Group f11 available 1033a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f11, [%g2 + 0x18] ! LSU 1043a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f12, M15, %f12 ! FGA Group f12 available 1053a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f12, [%g2 + 0x1c] ! LSU 1063a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org cmp %o1, %o2 ! IEU1 1073a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org bne 1b ! CTI 1083a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org add %g2, 0x20, %g2 ! IEU0 Group 1093a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 1103a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org cmp %o1, %g3 1113a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org be 3f 1123a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org nop 1133a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 1143a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org2: ld [%g1 + 0x00], %f0 ! LSU Group 1153a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f0, M0, %f1 ! FGM Group 1-cycle stall on %f0 1163a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f0, M1, %f2 ! FGM Group 1173a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f0, M2, %f3 ! FGM Group 1183a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f0, M3, %f4 ! FGM Group 1193a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f1, M12, %f1 ! FGA Group 1203a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f1, [%g2 + 0x00] ! LSU 1213a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f2, M13, %f2 ! FGA Group 1223a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f2, [%g2 + 0x04] ! LSU 1233a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f3, M14, %f3 ! FGA Group 1243a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f3, [%g2 + 0x08] ! LSU 1253a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f4, M15, %f4 ! FGA Group 1263a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f4, [%g2 + 0x0c] ! LSU 1273a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 1283a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org3: 1293a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ba __set_v4f_4 1303a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org nop 1313a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 1323a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org .globl _mesa_sparc_transform_points1_identity 1333a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org_mesa_sparc_transform_points1_identity: 1343a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org cmp %o0, %o2 1353a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org be 4f 1363a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%o2 + V4F_STRIDE], %o5 1373a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org LDPTR [%o2 + V4F_START], %g1 1383a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org LDPTR [%o0 + V4F_START], %g2 1393a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%o2 + V4F_COUNT], %g3 1403a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 1413a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org cmp %g3, 1 1423a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %g3, [%o0 + V4F_COUNT] 1433a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org bl 3f 1443a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org clr %o1 1453a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 1463a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org be 2f 1473a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org andn %g3, 1, %o2 1483a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 1493a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org1: ld [%g1 + 0x00], %f0 ! LSU Group 1503a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org add %g1, %o5, %g1 ! IEU0 1513a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%g1 + 0x00], %f1 ! LSU Group 1523a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org add %o1, 2, %o1 ! IEU0 1533a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org add %g1, %o5, %g1 ! IEU1 1543a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f0, [%g2 + 0x00] ! LSU Group 1553a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org cmp %o1, %o2 ! IEU1 1563a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f1, [%g2 + 0x10] ! LSU Group 1573a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org bne 1b ! CTI 1583a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org add %g2, 0x20, %g2 ! IEU0 1593a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 1603a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org cmp %o1, %g3 1613a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org be 3f 1623a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org nop 1633a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 1643a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org2: ld [%g1 + 0x00], %f0 1653a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org addx %g0, %g0, %g0 1663a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f0, [%g2 + 0x00] 1673a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 1683a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org3: 1693a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ba __set_v4f_1 1703a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org nop 1713a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 1723a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org4: retl 1733a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org nop 1743a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 1753a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org .globl _mesa_sparc_transform_points1_2d 1763a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org_mesa_sparc_transform_points1_2d: 1773a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%o2 + V4F_STRIDE], %o5 1783a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org LDPTR [%o2 + V4F_START], %g1 1793a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org LDPTR [%o0 + V4F_START], %g2 1803a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%o2 + V4F_COUNT], %g3 1813a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 1823a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org LDMATRIX_0_1_12_13(%o1) 1833a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 1843a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org cmp %g3, 1 1853a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %g3, [%o0 + V4F_COUNT] 1863a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org bl 3f 1873a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org clr %o1 1883a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 1893a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org be 2f 1903a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org andn %g3, 1, %o2 1913a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 1923a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org1: ld [%g1 + 0x00], %f0 ! LSU Group 1933a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org add %g1, %o5, %g1 ! IEU0 1943a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%g1 + 0x00], %f8 ! LSU Group 1953a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org add %o1, 2, %o1 ! IEU0 1963a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org add %g1, %o5, %g1 ! IEU1 1973a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f0, M0, %f1 ! FGM Group 1983a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f0, M1, %f2 ! FGM Group 1993a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f8, M0, %f9 ! FGM Group 2003a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f8, M1, %f10 ! FGM Group 2013a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f1, M12, %f3 ! FGA Group f1 available 2023a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f3, [%g2 + 0x00] ! LSU 2033a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f2, M13, %f4 ! FGA Group f2 available 2043a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f4, [%g2 + 0x04] ! LSU 2053a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f9, M12, %f11 ! FGA Group f9 available 2063a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f11, [%g2 + 0x10] ! LSU 2073a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f10, M13, %f12 ! FGA Group f10 available 2083a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f12, [%g2 + 0x14] ! LSU 2093a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org cmp %o1, %o2 ! IEU1 2103a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org bne 1b ! CTI 2113a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org add %g2, 0x20, %g2 ! IEU0 Group 2123a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 2133a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org cmp %o1, %g3 2143a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org be 3f 2153a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org nop 2163a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 2173a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org2: ld [%g1 + 0x00], %f0 2183a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f0, M0, %f1 2193a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f0, M1, %f2 2203a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f1, M12, %f3 2213a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f3, [%g2 + 0x00] 2223a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f2, M13, %f4 2233a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f4, [%g2 + 0x04] 2243a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 2253a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org3: 2263a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ba __set_v4f_2 2273a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org nop 2283a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 2293a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org .globl _mesa_sparc_transform_points1_2d_no_rot 2303a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org_mesa_sparc_transform_points1_2d_no_rot: 2313a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%o2 + V4F_STRIDE], %o5 2323a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org LDPTR [%o2 + V4F_START], %g1 2333a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org LDPTR [%o0 + V4F_START], %g2 2343a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%o2 + V4F_COUNT], %g3 2353a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 2363a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org LDMATRIX_0_12_13(%o1) 2373a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 2383a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org cmp %g3, 1 2393a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %g3, [%o0 + V4F_COUNT] 2403a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org bl 3f 2413a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org clr %o1 2423a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 2433a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org be 2f 2443a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org andn %g3, 1, %o2 2453a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 2463a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org1: ld [%g1 + 0x00], %f0 ! LSU Group 2473a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org add %g1, %o5, %g1 ! IEU0 2483a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%g1 + 0x00], %f4 ! LSU Group 2493a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org add %o1, 2, %o1 ! IEU0 2503a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org add %g1, %o5, %g1 ! IEU1 2513a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f0, M0, %f1 ! FGM Group 2523a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f4, M0, %f5 ! FGM Group 2533a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f1, M12, %f3 ! FGA Group, 2 cycle stall, f1 available 2543a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f3, [%g2 + 0x00] ! LSU 2553a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st M13, [%g2 + 0x04] ! LSU Group, f5 available 2563a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f5, M12, %f6 ! FGA 2573a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f6, [%g2 + 0x10] ! LSU Group 2583a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st M13, [%g2 + 0x14] ! LSU Group 2593a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org cmp %o1, %o2 ! IEU1 2603a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org bne 1b ! CTI 2613a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org add %g2, 0x20, %g2 ! IEU0 Group 2623a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 2633a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org cmp %o1, %g3 2643a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org be 3f 2653a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org nop 2663a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 2673a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org2: ld [%g1 + 0x00], %f0 2683a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f0, M0, %f1 2693a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f1, M12, %f3 2703a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f3, [%g2 + 0x00] 2713a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st M13, [%g2 + 0x04] 2723a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 2733a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org3: 2743a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ba __set_v4f_2 2753a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org nop 2763a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 2773a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org .globl _mesa_sparc_transform_points1_3d 2783a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org_mesa_sparc_transform_points1_3d: 2793a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%o2 + V4F_STRIDE], %o5 2803a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org LDPTR [%o2 + V4F_START], %g1 2813a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org LDPTR [%o0 + V4F_START], %g2 2823a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%o2 + V4F_COUNT], %g3 2833a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 2843a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org LDMATRIX_0_1_2_12_13_14(%o1) 2853a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 2863a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org cmp %g3, 1 2873a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %g3, [%o0 + V4F_COUNT] 2883a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org bl 3f 2893a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org clr %o1 2903a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 2913a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org be 2f 2923a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org andn %g3, 1, %o2 2933a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 2943a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org1: ld [%g1 + 0x00], %f0 ! LSU Group 2953a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org add %g1, %o5, %g1 ! IEU0 2963a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%g1 + 0x00], %f4 ! LSU Group 2973a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org add %o1, 2, %o1 ! IEU0 2983a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org add %g1, %o5, %g1 ! IEU1 2993a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f0, M0, %f1 ! FGM Group 3003a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f0, M1, %f2 ! FGM Group 3013a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f0, M2, %f3 ! FGM Group 3023a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f4, M0, %f5 ! FGM Group 3033a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f1, M12, %f1 ! FGA Group, f1 available 3043a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f1, [%g2 + 0x00] ! LSU 3053a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f4, M1, %f6 ! FGM 3063a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f2, M13, %f2 ! FGA Group, f2 available 3073a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f2, [%g2 + 0x04] ! LSU 3083a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f4, M2, %f7 ! FGM 3093a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f3, M14, %f3 ! FGA Group, f3 available 3103a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f3, [%g2 + 0x08] ! LSU 3113a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f5, M12, %f5 ! FGA Group, f5 available 3123a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f5, [%g2 + 0x10] ! LSU 3133a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f6, M13, %f6 ! FGA Group, f6 available 3143a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f6, [%g2 + 0x14] ! LSU 3153a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f7, M14, %f7 ! FGA Group, f7 available 3163a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f7, [%g2 + 0x18] ! LSU 3173a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org cmp %o1, %o2 ! IEU1 3183a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org bne 1b ! CTI 3193a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org add %g2, 0x20, %g2 ! IEU0 Group 3203a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 3213a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org cmp %o1, %g3 3223a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org be 3f 3233a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org nop 3243a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 3253a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org2: ld [%g1 + 0x00], %f0 3263a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f0, M0, %f1 3273a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f0, M1, %f2 3283a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f0, M2, %f3 3293a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f1, M12, %f1 3303a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f1, [%g2 + 0x00] 3313a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f2, M13, %f2 3323a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f2, [%g2 + 0x04] 3333a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f3, M14, %f3 3343a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f3, [%g2 + 0x08] 3353a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 3363a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org3: 3373a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ba __set_v4f_3 3383a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org nop 3393a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 3403a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org .globl _mesa_sparc_transform_points1_3d_no_rot 3413a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org_mesa_sparc_transform_points1_3d_no_rot: 3423a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%o2 + V4F_STRIDE], %o5 3433a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org LDPTR [%o2 + V4F_START], %g1 3443a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org LDPTR [%o0 + V4F_START], %g2 3453a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%o2 + V4F_COUNT], %g3 3463a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 3473a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org LDMATRIX_0_12_13_14(%o1) 3483a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 3493a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org cmp %g3, 1 3503a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %g3, [%o0 + V4F_COUNT] 3513a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org bl 3f 3523a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org clr %o1 3533a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 3543a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org be 2f 3553a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org andn %g3, 1, %o2 3563a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 3573a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org1: ld [%g1 + 0x00], %f0 ! LSU Group 3583a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org add %g1, %o5, %g1 ! IEU0 3593a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%g1 + 0x00], %f2 ! LSU Group 3603a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org add %o1, 2, %o1 ! IEU0 3613a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org add %g1, %o5, %g1 ! IEU1 3623a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f0, M0, %f1 ! FGM Group 3633a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f2, M0, %f3 ! FGM Group 3643a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f1, M12, %f1 ! FGA Group, 2 cycle stall, f1 available 3653a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f1, [%g2 + 0x00] ! LSU 3663a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f3, M12, %f3 ! FGA Group, f3 available 3673a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st M13, [%g2 + 0x04] ! LSU 3683a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st M14, [%g2 + 0x08] ! LSU Group 3693a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f3, [%g2 + 0x10] ! LSU Group 3703a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st M13, [%g2 + 0x14] ! LSU Group 3713a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st M14, [%g2 + 0x18] ! LSU Group 3723a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org cmp %o1, %o2 ! IEU1 3733a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org bne 1b ! CTI 3743a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org add %g2, 0x20, %g2 ! IEU0 Group 3753a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 3763a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org cmp %o1, %g3 3773a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org be 3f 3783a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org nop 3793a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 3803a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org2: ld [%g1 + 0x00], %f0 3813a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f0, M0, %f1 3823a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f1, M12, %f1 3833a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f1, [%g2 + 0x00] 3843a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st M13, [%g2 + 0x04] 3853a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st M14, [%g2 + 0x08] 3863a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 3873a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org3: 3883a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ba __set_v4f_3 3893a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org nop 3903a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 3913a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org .globl _mesa_sparc_transform_points1_perspective 3923a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org_mesa_sparc_transform_points1_perspective: 3933a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%o2 + V4F_STRIDE], %o5 3943a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org LDPTR [%o2 + V4F_START], %g1 3953a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org LDPTR [%o0 + V4F_START], %g2 3963a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%o2 + V4F_COUNT], %g3 3973a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 3983a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org LDMATRIX_0_14(%o1) 3993a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 4003a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org cmp %g3, 1 4013a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %g3, [%o0 + V4F_COUNT] 4023a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org bl 3f 4033a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org clr %o1 4043a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 4053a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org be 2f 4063a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org andn %g3, 1, %o2 4073a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 4083a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org1: ld [%g1 + 0x00], %f0 ! LSU Group 4093a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org add %g1, %o5, %g1 ! IEU0 4103a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%g1 + 0x00], %f2 ! LSU Group 4113a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org add %o1, 2, %o1 ! IEU0 4123a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org add %g1, %o5, %g1 ! IEU1 4133a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f0, M0, %f1 ! FGM Group 4143a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f1, [%g2 + 0x00] ! LSU 4153a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f2, M0, %f3 ! FGM Group 4163a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %g0, [%g2 + 0x04] ! LSU 4173a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st M14, [%g2 + 0x08] ! LSU Group 4183a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %g0, [%g2 + 0x0c] ! LSU Group 4193a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f3, [%g2 + 0x10] ! LSU Group 4203a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %g0, [%g2 + 0x14] ! LSU Group 4213a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st M14, [%g2 + 0x18] ! LSU Group 4223a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %g0, [%g2 + 0x1c] ! LSU Group 4233a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org cmp %o1, %o2 ! IEU1 4243a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org bne 1b ! CTI 4253a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org add %g2, 0x20, %g2 ! IEU0 Group 4263a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 4273a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org cmp %o1, %g3 4283a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org be 3f 4293a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org nop 4303a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 4313a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org2: ld [%g1 + 0x00], %f0 4323a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f0, M0, %f1 4333a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f1, [%g2 + 0x00] 4343a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %g0, [%g2 + 0x04] 4353a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st M14, [%g2 + 0x08] 4363a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %g0, [%g2 + 0x0c] 4373a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 4383a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org3: 4393a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ba __set_v4f_4 4403a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org nop 4413a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 4423a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org .globl _mesa_sparc_transform_points2_general 4433a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org_mesa_sparc_transform_points2_general: 4443a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%o2 + V4F_STRIDE], %o5 4453a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org LDPTR [%o2 + V4F_START], %g1 4463a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org LDPTR [%o0 + V4F_START], %g2 4473a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%o2 + V4F_COUNT], %g3 4483a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 4493a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org LDMATRIX_0_1_2_3_4_5_6_7_12_13_14_15(%o1) 4503a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 4513a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org cmp %g3, 0 4523a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %g3, [%o0 + V4F_COUNT] 4533a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org be 2f 4543a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org clr %o1 4553a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 4563a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org1: ld [%g1 + 0x00], %f0 ! LSU Group 4573a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%g1 + 0x04], %f1 ! LSU Group 4583a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org add %o1, 1, %o1 ! IEU0 4593a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org add %g1, %o5, %g1 ! IEU1 4603a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f0, M0, %f2 ! FGM Group 4613a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f0, M1, %f3 ! FGM Group 4623a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f0, M2, %f4 ! FGM Group 4633a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f0, M3, %f5 ! FGM Group 4643a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f2, M12, %f2 ! FGA Group f2 available 4653a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f1, M4, %f6 ! FGM 4663a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f3, M13, %f3 ! FGA Group f3 available 4673a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f1, M5, %f7 ! FGM 4683a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f4, M14, %f4 ! FGA Group f4 available 4693a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f1, M6, %f8 ! FGM 4703a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f5, M15, %f5 ! FGA Group f5 available 4713a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f1, M7, %f9 ! FGM 4723a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f2, %f6, %f2 ! FGA Group f6 available 4733a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f2, [%g2 + 0x00] ! LSU 4743a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f3, %f7, %f3 ! FGA Group f7 available 4753a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f3, [%g2 + 0x04] ! LSU 4763a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f4, %f8, %f4 ! FGA Group f8 available 4773a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f4, [%g2 + 0x08] ! LSU 4783a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f5, %f9, %f5 ! FGA Group f9 available 4793a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f5, [%g2 + 0x0c] ! LSU 4803a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org cmp %o1, %g3 ! IEU1 4813a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org bne 1b ! CTI 4823a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org add %g2, 0x10, %g2 ! IEU0 Group 4833a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org2: 4843a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ba __set_v4f_4 4853a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org nop 4863a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 4873a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org .globl _mesa_sparc_transform_points2_identity 4883a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org_mesa_sparc_transform_points2_identity: 4893a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org cmp %o2, %o0 4903a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org be 3f 4913a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%o2 + V4F_STRIDE], %o5 4923a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org LDPTR [%o2 + V4F_START], %g1 4933a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org LDPTR [%o0 + V4F_START], %g2 4943a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%o2 + V4F_COUNT], %g3 4953a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 4963a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org cmp %g3, 0 4973a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %g3, [%o0 + V4F_COUNT] 4983a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org be 2f 4993a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org clr %o1 5003a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 5013a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org1: ld [%g1 + 0x00], %f0 ! LSU Group 5023a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org add %o1, 1, %o1 ! IEU0 5033a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%g1 + 0x04], %f1 ! LSU Group 5043a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org add %g1, %o5, %g1 ! IEU0 5053a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org cmp %o1, %g3 ! IEU1 5063a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f0, [%g2 + 0x00] ! LSU Group 5073a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f1, [%g2 + 0x04] ! LSU Group 5083a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org bne 1b ! CTI 5093a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org add %g2, 0x10, %g2 ! IEU0 5103a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org2: 5113a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ba __set_v4f_2 5123a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org nop 5133a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 5143a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org3: retl 5153a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org nop 5163a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 5173a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org .globl _mesa_sparc_transform_points2_2d 5183a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org_mesa_sparc_transform_points2_2d: 5193a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%o2 + V4F_STRIDE], %o5 5203a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org LDPTR [%o2 + V4F_START], %g1 5213a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org LDPTR [%o0 + V4F_START], %g2 5223a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%o2 + V4F_COUNT], %g3 5233a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 5243a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org LDMATRIX_0_1_4_5_12_13(%o1) 5253a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 5263a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org cmp %g3, 1 5273a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %g3, [%o0 + V4F_COUNT] 5283a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org bl 3f 5293a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org clr %o1 5303a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 5313a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org be 2f 5323a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org andn %g3, 1, %o2 5333a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 5343a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org1: ld [%g1 + 0x00], %f0 ! LSU Group 5353a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%g1 + 0x04], %f1 ! LSU Group 5363a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org add %o1, 2, %o1 ! IEU0 5373a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org add %g1, %o5, %g1 ! IEU1 5383a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f0, M0, %f2 ! FGM 5393a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%g1 + 0x00], %f8 ! LSU Group 5403a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f0, M1, %f3 ! FGM 5413a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%g1 + 0x04], %f9 ! LSU Group 5423a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f1, M4, %f6 ! FGM 5433a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f1, M5, %f7 ! FGM Group 5443a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org add %g1, %o5, %g1 ! IEU0 5453a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f8, M0, %f10 ! FGM Group f2 available 5463a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f2, M12, %f2 ! FGA 5473a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f8, M1, %f11 ! FGM Group f3 available 5483a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f3, M13, %f3 ! FGA 5493a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f9, M4, %f12 ! FGM Group 5503a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f9, M5, %f13 ! FGM Group 5513a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f10, M12, %f10 ! FGA Group f2, f10 available 5523a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f2, %f6, %f2 ! FGA Group f3, f11 available 5533a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f2, [%g2 + 0x00] ! LSU 5543a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f11, M13, %f11 ! FGA Group f12 available 5553a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f3, %f7, %f3 ! FGA Group f13 available 5563a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f3, [%g2 + 0x04] ! LSU 5573a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f10, %f12, %f10 ! FGA Group f10 available 5583a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f10, [%g2 + 0x10] ! LSU 5593a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f11, %f13, %f11 ! FGA Group f11 available 5603a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f11, [%g2 + 0x14] ! LSU 5613a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org cmp %o1, %o2 ! IEU1 5623a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org bne 1b ! CTI 5633a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org add %g2, 0x20, %g2 ! IEU0 Group 5643a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 5653a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org cmp %o1, %g3 5663a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org be 3f 5673a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org nop 5683a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 5693a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org2: ld [%g1 + 0x00], %f0 ! LSU Group 5703a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%g1 + 0x04], %f1 ! LSU Group 5713a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f0, M0, %f2 ! FGM Group 5723a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f0, M1, %f3 ! FGM Group 5733a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f1, M4, %f6 ! FGM Group 5743a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f1, M5, %f7 ! FGM Group 5753a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f2, M12, %f2 ! FGA Group f2 available 5763a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f3, M13, %f3 ! FGA Group f3 available 5773a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f2, %f6, %f2 ! FGA Group 2 cycle stall, f2 available 5783a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f2, [%g2 + 0x00] ! LSU 5793a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f3, %f7, %f3 ! FGA Group f3 available 5803a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f3, [%g2 + 0x04] ! LSU 5813a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 5823a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org3: 5833a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ba __set_v4f_2 5843a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org nop 5853a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 5863a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org .globl _mesa_sparc_transform_points2_2d_no_rot 5873a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org_mesa_sparc_transform_points2_2d_no_rot: 5883a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%o2 + V4F_STRIDE], %o5 5893a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org LDPTR [%o2 + V4F_START], %g1 5903a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org LDPTR [%o0 + V4F_START], %g2 5913a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%o2 + V4F_COUNT], %g3 5923a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 5933a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org LDMATRIX_0_5_12_13(%o1) 5943a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 5953a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org cmp %g3, 1 5963a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %g3, [%o0 + V4F_COUNT] 5973a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org bl 3f 5983a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org clr %o1 5993a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 6003a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org be 2f 6013a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org andn %g3, 1, %o2 6023a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 6033a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org1: ld [%g1 + 0x00], %f0 ! LSU Group 6043a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%g1 + 0x04], %f1 ! LSU Group 6053a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org add %o1, 2, %o1 ! IEU0 6063a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org add %g1, %o5, %g1 ! IEU1 6073a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%g1 + 0x00], %f4 ! LSU Group 6083a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f0, M0, %f2 ! FGM 6093a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%g1 + 0x04], %f5 ! LSU Group 6103a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f1, M5, %f3 ! FGM 6113a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f4, M0, %f6 ! FGM Group 6123a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org add %g1, %o5, %g1 ! IEU0 6133a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f5, M5, %f7 ! FGM Group 6143a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f2, M12, %f2 ! FGA Group f2 available 6153a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f2, [%g2 + 0x00] ! LSU 6163a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f3, M13, %f3 ! FGA Group f3 available 6173a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f3, [%g2 + 0x04] ! LSU 6183a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f6, M12, %f6 ! FGA Group f6 available 6193a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f6, [%g2 + 0x10] ! LSU 6203a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f7, M13, %f7 ! FGA Group f7 available 6213a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f7, [%g2 + 0x14] ! LSU 6223a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org cmp %o1, %o2 ! IEU1 6233a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org bne 1b ! CTI 6243a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org add %g2, 0x20, %g2 ! IEU0 Group 6253a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 6263a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org cmp %o1, %g3 6273a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org be 3f 6283a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org nop 6293a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 6303a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org2: ld [%g1 + 0x00], %f0 ! LSU Group 6313a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%g1 + 0x04], %f1 ! LSU Group 6323a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f0, M0, %f2 ! FGM Group 6333a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f1, M5, %f3 ! FGM Group 6343a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f2, M12, %f2 ! FGA Group, 2 cycle stall, f2 available 6353a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f2, [%g2 + 0x00] ! LSU 6363a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f3, M13, %f3 ! FGA Group f3 available 6373a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f3, [%g2 + 0x04] ! LSU 6383a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 6393a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org3: 6403a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ba __set_v4f_2 6413a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org nop 6423a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 6433a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org /* orig: 12 cycles */ 6443a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org .globl _mesa_sparc_transform_points2_3d 6453a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org_mesa_sparc_transform_points2_3d: 6463a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%o2 + V4F_STRIDE], %o5 6473a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%o2 + V4F_START], %g1 6483a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%o0 + V4F_START], %g2 6493a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%o2 + V4F_COUNT], %g3 6503a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 6513a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org LDMATRIX_0_1_2_3_4_5_6_12_13_14(%o1) 6523a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 6533a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org cmp %g3, 1 6543a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %g3, [%o0 + V4F_COUNT] 6553a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org bl 3f 6563a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org clr %o1 6573a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 6583a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org be 2f 6593a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org andn %g3, 1, %o2 6603a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 6613a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org1: ld [%g1 + 0x00], %f0 ! LSU Group 6623a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%g1 + 0x04], %f1 ! LSU Group 6633a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org add %o1, 2, %o1 ! IEU0 6643a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org add %g1, %o5, %g1 ! IEU1 6653a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%g1 + 0x00], %f9 ! LSU Group 6663a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f0, M0, %f2 ! FGM 6673a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%g1 + 0x04], %f10 ! LSU Group 6683a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f0, M1, %f3 ! FGM 6693a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f0, M2, %f4 ! FGM Group 6703a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org add %g1, %o5, %g1 ! IEU0 6713a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f1, M4, %f6 ! FGM Group 6723a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f1, M5, %f7 ! FGM Group f2 available 6733a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f2, M12, %f2 ! FGA 6743a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f1, M6, %f8 ! FGM Group f3 available 6753a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f3, M13, %f3 ! FGA 6763a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f9, M0, %f11 ! FGM Group f4 available 6773a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f4, M14, %f4 ! FGA 6783a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f9, M1, %f12 ! FGM Group f6 available 6793a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f9, M2, %f13 ! FGM Group f2, f7 available 6803a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f2, %f6, %f2 ! FGA 6813a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f2, [%g2 + 0x00] ! LSU 6823a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f10, M4, %f14 ! FGM Group f3, f8 available 6833a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f3, %f7, %f3 ! FGA 6843a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f3, [%g2 + 0x04] ! LSU 6853a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f10, M5, %f15 ! FGM Group f4, f11 available 6863a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f11, M12, %f11 ! FGA 6873a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f10, M6, %f0 ! FGM Group f12 available 6883a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f12, M13, %f12 ! FGA 6893a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f13, M14, %f13 ! FGA Group f13 available 6903a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f4, %f8, %f4 ! FGA Group f14 available 6913a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f4, [%g2 + 0x08] ! LSU 6923a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f11, %f14, %f11 ! FGA Group f15, f11 available 6933a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f11, [%g2 + 0x10] ! LSU 6943a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f12, %f15, %f12 ! FGA Group f0, f12 available 6953a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f12, [%g2 + 0x14] ! LSU 6963a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f13, %f0, %f13 ! FGA Group f13 available 6973a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f13, [%g2 + 0x18] ! LSU 6983a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 6993a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org cmp %o1, %o2 ! IEU1 7003a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org bne 1b ! CTI 7013a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org add %g2, 0x20, %g2 ! IEU0 Group 7023a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 7033a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org cmp %o1, %g3 7043a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org be 3f 7053a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org nop 7063a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 7073a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org2: ld [%g1 + 0x00], %f0 ! LSU Group 7083a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%g1 + 0x04], %f1 ! LSU Group 7093a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f0, M0, %f2 ! FGM Group 7103a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f0, M1, %f3 ! FGM Group 7113a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f0, M2, %f4 ! FGM Group 7123a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f1, M4, %f6 ! FGM Group 7133a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f1, M5, %f7 ! FGM Group f2 available 7143a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f2, M12, %f2 ! FGA 7153a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f1, M6, %f8 ! FGM Group f3 available 7163a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f3, M13, %f3 ! FGA 7173a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f4, M14, %f4 ! FGA Group f4 available 7183a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f2, %f6, %f2 ! FGA Group stall, f2, f6, f7 available 7193a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f2, [%g2 + 0x00] ! LSU 7203a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f3, %f7, %f3 ! FGA Group f3, f8 available 7213a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f3, [%g2 + 0x04] ! LSU 7223a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f4, %f8, %f4 ! FGA Group f4 available 7233a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f4, [%g2 + 0x08] ! LSU 7243a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 7253a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org3: 7263a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ba __set_v4f_3 7273a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org nop 7283a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 7293a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org .globl _mesa_sparc_transform_points2_3d_no_rot 7303a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org_mesa_sparc_transform_points2_3d_no_rot: 7313a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%o2 + V4F_STRIDE], %o5 7323a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org LDPTR [%o2 + V4F_START], %g1 7333a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org LDPTR [%o0 + V4F_START], %g2 7343a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%o2 + V4F_COUNT], %g3 7353a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 7363a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org LDMATRIX_0_5_12_13_14(%o1) 7373a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 7383a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org cmp %g3, 1 7393a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %g3, [%o0 + V4F_COUNT] 7403a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org bl 3f 7413a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org clr %o3 7423a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 7433a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org be 2f 7443a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org andn %g3, 1, %o2 7453a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 7463a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org1: ld [%g1 + 0x00], %f0 ! LSU Group 7473a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%g1 + 0x04], %f1 ! LSU Group 7483a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org add %o3, 2, %o3 ! IEU0 7493a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org add %g1, %o5, %g1 ! IEU1 7503a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%g1 + 0x00], %f4 ! LSU Group 7513a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f0, M0, %f2 ! FGM 7523a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%g1 + 0x04], %f5 ! LSU Group 7533a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f1, M5, %f3 ! FGM 7543a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f4, M0, %f6 ! FGM Group 7553a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org add %g1, %o5, %g1 ! IEU0 7563a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f5, M5, %f7 ! FGM Group 7573a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f2, M12, %f2 ! FGA Group f2 available 7583a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f2, [%g2 + 0x00] ! LSU 7593a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f3, M13, %f3 ! FGA Group f3 available 7603a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f3, [%g2 + 0x04] ! LSU 7613a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f6, M12, %f6 ! FGA Group f6 available 7623a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st M14, [%g2 + 0x08] ! LSU 7633a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f7, M13, %f7 ! FGA Group f7 available 7643a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f6, [%g2 + 0x10] ! LSU 7653a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f7, [%g2 + 0x14] ! LSU Group 7663a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st M14, [%g2 + 0x18] ! LSU Group 7673a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org cmp %o3, %o2 ! IEU1 7683a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org bne 1b ! CTI 7693a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org add %g2, 0x20, %g2 ! IEU0 Group 7703a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 7713a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org cmp %o3, %g3 7723a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org be 3f 7733a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org nop 7743a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 7753a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org2: ld [%g1 + 0x00], %f0 ! LSU Group 7763a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%g1 + 0x04], %f1 ! LSU Group 7773a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f0, M0, %f2 ! FGM Group 7783a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f1, M5, %f3 ! FGM Group 7793a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f2, M12, %f2 ! FGA Group, 2 cycle stall, f2 available 7803a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f2, [%g2 + 0x00] ! LSU 7813a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f3, M13, %f3 ! FGA Group f3 available 7823a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f3, [%g2 + 0x04] ! LSU 7833a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st M14, [%g2 + 0x08] ! LSU Group 7843a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 7853a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org3: ld [%o1 + (14 * 0x4)], %g3 7863a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org cmp %g3, 0 7873a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org bne __set_v4f_3 7883a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org nop 7893a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ba __set_v4f_2 7903a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org nop 7913a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 7923a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org .globl _mesa_sparc_transform_points2_perspective 7933a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org_mesa_sparc_transform_points2_perspective: 7943a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%o2 + V4F_STRIDE], %o5 7953a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org LDPTR [%o2 + V4F_START], %g1 7963a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org LDPTR [%o0 + V4F_START], %g2 7973a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%o2 + V4F_COUNT], %g3 7983a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 7993a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org LDMATRIX_0_5_14(%o1) 8003a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 8013a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org cmp %g3, 0 8023a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %g3, [%o0 + V4F_COUNT] 8033a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org be 2f 8043a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org clr %o1 8053a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 8063a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org1: ld [%g1 + 0x00], %f0 8073a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%g1 + 0x04], %f1 8083a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org add %o1, 1, %o1 8093a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org add %g1, %o5, %g1 8103a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f0, M0, %f2 8113a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f2, [%g2 + 0x00] 8123a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f1, M5, %f3 8133a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f3, [%g2 + 0x04] 8143a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st M14, [%g2 + 0x08] 8153a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %g0, [%g2 + 0x0c] 8163a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org cmp %o1, %g3 8173a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org bne 1b 8183a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org add %g2, 0x10, %g2 8193a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org2: 8203a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ba __set_v4f_4 8213a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org nop 8223a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 8233a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org .globl _mesa_sparc_transform_points3_general 8243a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org_mesa_sparc_transform_points3_general: 8253a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%o2 + V4F_STRIDE], %o5 8263a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org LDPTR [%o2 + V4F_START], %g1 8273a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org LDPTR [%o0 + V4F_START], %g2 8283a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%o2 + V4F_COUNT], %g3 8293a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 8303a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org LDMATRIX_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15(%o1) 8313a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 8323a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org cmp %g3, 0 8333a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %g3, [%o0 + V4F_COUNT] 8343a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org be 2f 8353a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org clr %o1 8363a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 8373a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org1: ld [%g1 + 0x00], %f0 ! LSU Group 8383a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%g1 + 0x04], %f1 ! LSU Group 8393a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%g1 + 0x08], %f2 ! LSU Group 8403a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org add %o1, 1, %o1 ! IEU0 8413a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org add %g1, %o5, %g1 ! IEU1 8423a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f0, M0, %f3 ! FGM 8433a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f1, M4, %f7 ! FGM Group 8443a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f0, M1, %f4 ! FGM Group 8453a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f1, M5, %f8 ! FGM Group 8463a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f0, M2, %f5 ! FGM Group f3 available 8473a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f1, M6, %f9 ! FGM Group f7 available 8483a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f3, %f7, %f3 ! FGA 8493a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f0, M3, %f6 ! FGM Group f4 available 8503a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f1, M7, %f10 ! FGM Group f8 available 8513a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f4, %f8, %f4 ! FGA 8523a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f2, M8, %f7 ! FGM Group f5 available 8533a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f2, M9, %f8 ! FGM Group f9,f3 available 8543a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f5, %f9, %f5 ! FGA 8553a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f2, M10, %f9 ! FGM Group f6 available 8563a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f6, %f10, %f6 ! FGA Group f10,f4 available 8573a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f2, M11, %f10 ! FGM 8583a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f3, M12, %f3 ! FGA Group f7 available 8593a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f4, M13, %f4 ! FGA Group f8,f5 available 8603a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f5, M14, %f5 ! FGA Group f9 available 8613a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f6, M15, %f6 ! FGA Group f10,f6 available 8623a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f3, %f7, %f3 ! FGA Group f3 available 8633a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f3, [%g2 + 0x00] ! LSU 8643a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f4, %f8, %f4 ! FGA Group f4 available 8653a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f4, [%g2 + 0x04] ! LSU 8663a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f5, %f9, %f5 ! FGA Group f5 available 8673a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f5, [%g2 + 0x08] ! LSU 8683a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f6, %f10, %f6 ! FGA Group f6 available 8693a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f6, [%g2 + 0x0c] ! LSU 8703a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org cmp %o1, %g3 ! IEU1 8713a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org bne 1b ! CTI 8723a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org add %g2, 0x10, %g2 ! IEU0 Group 8733a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org2: 8743a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ba __set_v4f_4 8753a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org nop 8763a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 8773a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org .globl _mesa_sparc_transform_points3_identity 8783a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org_mesa_sparc_transform_points3_identity: 8793a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%o2 + V4F_STRIDE], %o5 8803a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org LDPTR [%o2 + V4F_START], %g1 8813a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org LDPTR [%o0 + V4F_START], %g2 8823a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%o2 + V4F_COUNT], %g3 8833a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 8843a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org cmp %g3, 0 8853a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %g3, [%o0 + V4F_COUNT] 8863a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org be 2f 8873a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org clr %o1 8883a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 8893a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org1: ld [%g1 + 0x00], %f0 8903a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%g1 + 0x04], %f1 8913a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%g1 + 0x08], %f2 8923a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org add %o1, 1, %o1 8933a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org add %g1, %o5, %g1 8943a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org cmp %o1, %g3 8953a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f0, [%g2 + 0x00] 8963a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f1, [%g2 + 0x04] 8973a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f2, [%g2 + 0x08] 8983a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org bne 1b 8993a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org add %g2, 0x10, %g2 9003a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org2: 9013a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ba __set_v4f_3 9023a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org nop 9033a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 9043a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org .globl _mesa_sparc_transform_points3_2d 9053a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org_mesa_sparc_transform_points3_2d: 9063a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%o2 + V4F_STRIDE], %o5 9073a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org LDPTR [%o2 + V4F_START], %g1 9083a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org LDPTR [%o0 + V4F_START], %g2 9093a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%o2 + V4F_COUNT], %g3 9103a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 9113a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org LDMATRIX_0_1_4_5_12_13(%o1) 9123a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 9133a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org cmp %g3, 0 9143a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %g3, [%o0 + V4F_COUNT] 9153a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org be 2f 9163a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org clr %o1 9173a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 9183a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org1: ld [%g1 + 0x00], %f0 ! LSU Group 9193a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%g1 + 0x04], %f1 ! LSU Group 9203a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%g1 + 0x08], %f2 ! LSU Group 9213a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org add %o1, 1, %o1 ! IEU0 9223a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org add %g1, %o5, %g1 ! IEU1 9233a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f0, M0, %f3 ! FGM 9243a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f0, M1, %f4 ! FGM Group 9253a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f1, M4, %f6 ! FGM Group 9263a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f1, M5, %f7 ! FGM Group 9273a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f3, M12, %f3 ! FGA Group f3 available 9283a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f4, M13, %f4 ! FGA Group f4 available 9293a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f3, %f6, %f3 ! FGA Group f6 available 9303a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f3, [%g2 + 0x00] ! LSU 9313a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f4, %f7, %f4 ! FGA Group f7 available 9323a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f4, [%g2 + 0x04] ! LSU 9333a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f2, [%g2 + 0x08] ! LSU Group 9343a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org cmp %o1, %g3 ! IEU1 9353a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org bne 1b ! CTI 9363a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org add %g2, 0x10, %g2 ! IEU0 Group 9373a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org2: 9383a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ba __set_v4f_3 9393a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org nop 9403a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 9413a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org .globl _mesa_sparc_transform_points3_2d_no_rot 9423a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org_mesa_sparc_transform_points3_2d_no_rot: 9433a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%o2 + V4F_STRIDE], %o5 9443a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org LDPTR [%o2 + V4F_START], %g1 9453a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org LDPTR [%o0 + V4F_START], %g2 9463a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%o2 + V4F_COUNT], %g3 9473a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 9483a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org LDMATRIX_0_5_12_13(%o1) 9493a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 9503a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org cmp %g3, 0 9513a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %g3, [%o0 + V4F_COUNT] 9523a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org be 2f 9533a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org clr %o1 9543a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 9553a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org1: ld [%g1 + 0x00], %f0 ! LSU Group 9563a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%g1 + 0x04], %f1 ! LSU Group 9573a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%g1 + 0x08], %f2 ! LSU Group 9583a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org add %o1, 1, %o1 ! IEU0 9593a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org add %g1, %o5, %g1 ! IEU1 9603a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f0, M0, %f3 ! FGM 9613a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f1, M5, %f4 ! FGM Group 9623a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f2, [%g2 + 0x08] ! LSU 9633a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f3, M12, %f3 ! FGA Group 9643a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f3, [%g2 + 0x00] ! LSU 9653a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f4, M13, %f4 ! FGA Group 9663a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f4, [%g2 + 0x04] ! LSU 9673a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org cmp %o1, %g3 ! IEU1 9683a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org bne 1b ! CTI 9693a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org add %g2, 0x10, %g2 ! IEU0 Group 9703a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org2: 9713a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ba __set_v4f_3 9723a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org nop 9733a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 9743a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org .globl _mesa_sparc_transform_points3_3d 9753a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org_mesa_sparc_transform_points3_3d: 9763a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%o2 + V4F_STRIDE], %o5 9773a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org LDPTR [%o2 + V4F_START], %g1 9783a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org LDPTR [%o0 + V4F_START], %g2 9793a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%o2 + V4F_COUNT], %g3 9803a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 9813a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org LDMATRIX_0_1_2_4_5_6_8_9_10_12_13_14(%o1) 9823a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 9833a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org cmp %g3, 0 9843a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %g3, [%o0 + V4F_COUNT] 9853a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org be 2f 9863a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org clr %o1 9873a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 9883a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org1: ld [%g1 + 0x00], %f0 ! LSU Group 9893a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%g1 + 0x04], %f1 ! LSU Group 9903a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%g1 + 0x08], %f2 ! LSU Group 9913a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org add %o1, 1, %o1 ! IEU0 9923a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org add %g1, %o5, %g1 ! IEU1 9933a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f0, M0, %f3 ! FGM 9943a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f1, M4, %f6 ! FGM Group 9953a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f0, M1, %f4 ! FGM Group 9963a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f1, M5, %f7 ! FGM Group 9973a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f0, M2, %f5 ! FGM Group f3 available 9983a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f1, M6, %f8 ! FGM Group f6 available 9993a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f3, %f6, %f3 ! FGA 10003a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f2, M8, %f9 ! FGM Group f4 available 10013a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f2, M9, %f10 ! FGM Group f7 available 10023a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f4, %f7, %f4 ! FGA 10033a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f2, M10, %f11 ! FGM Group f5 available 10043a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f5, %f8, %f5 ! FGA Group f8, f3 available 10053a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f3, %f9, %f3 ! FGA Group f9 available 10063a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f4, %f10, %f4 ! FGA Group f10, f4 available 10073a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f5, %f11, %f5 ! FGA Group stall, f11, f5 available 10083a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f3, M12, %f3 ! FGA Group f3 available 10093a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f3, [%g2 + 0x00] ! LSU 10103a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f4, M13, %f4 ! FGA Group f4 available 10113a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f4, [%g2 + 0x04] ! LSU 10123a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f5, M14, %f5 ! FGA Group f5 available 10133a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f5, [%g2 + 0x08] ! LSU 10143a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org cmp %o1, %g3 ! IEU1 10153a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org bne 1b ! CTI 10163a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org add %g2, 0x10, %g2 ! IEU0 Group 10173a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org2: 10183a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ba __set_v4f_3 10193a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org nop 10203a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 10213a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org .globl _mesa_sparc_transform_points3_3d_no_rot 10223a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org_mesa_sparc_transform_points3_3d_no_rot: 10233a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%o2 + V4F_STRIDE], %o5 10243a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org LDPTR [%o2 + V4F_START], %g1 10253a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org LDPTR [%o0 + V4F_START], %g2 10263a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%o2 + V4F_COUNT], %g3 10273a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 10283a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org LDMATRIX_0_5_10_12_13_14(%o1) 10293a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 10303a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org cmp %g3, 0 10313a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %g3, [%o0 + V4F_COUNT] 10323a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org be 2f 10333a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org clr %o1 10343a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 10353a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org1: ld [%g1 + 0x00], %f0 ! LSU Group 10363a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%g1 + 0x04], %f1 ! LSU Group 10373a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%g1 + 0x08], %f2 ! LSU Group 10383a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org add %o1, 1, %o1 ! IEU0 10393a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org add %g1, %o5, %g1 ! IEU1 10403a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org cmp %o1, %g3 ! IEU1 Group 10413a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f0, M0, %f3 ! FGM 10423a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f1, M5, %f4 ! FGM Group 10433a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f2, M10, %f5 ! FGM Group 10443a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f3, M12, %f3 ! FGA Group, stall, f3 available 10453a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f3, [%g2 + 0x00] ! LSU 10463a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f4, M13, %f4 ! FGA Group, f4 available 10473a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f4, [%g2 + 0x04] ! LSU 10483a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f5, M14, %f5 ! FGA Group, f5 available 10493a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f5, [%g2 + 0x08] ! LEU 10503a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org bne 1b ! CTI 10513a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org add %g2, 0x10, %g2 ! IEU0 Group 10523a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org2: 10533a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ba __set_v4f_3 10543a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org nop 10553a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 10563a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org .globl _mesa_sparc_transform_points3_perspective 10573a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org_mesa_sparc_transform_points3_perspective: 10583a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%o2 + V4F_STRIDE], %o5 10593a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org LDPTR [%o2 + V4F_START], %g1 10603a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org LDPTR [%o0 + V4F_START], %g2 10613a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%o2 + V4F_COUNT], %g3 10623a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 10633a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org LDMATRIX_0_5_8_9_10_14(%o1) 10643a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 10653a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org cmp %g3, 0 10663a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %g3, [%o0 + V4F_COUNT] 10673a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org be 2f 10683a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org clr %o1 10693a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 10703a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org1: ld [%g1 + 0x00], %f0 ! LSU Group 10713a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%g1 + 0x04], %f1 ! LSU Group 10723a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%g1 + 0x08], %f2 ! LSU Group 10733a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org add %o1, 1, %o1 ! IEU0 10743a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org add %g1, %o5, %g1 ! IEU1 10753a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f0, M0, %f3 ! FGM 10763a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f2, M8, %f6 ! FGM Group 10773a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f1, M5, %f4 ! FGM Group 10783a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f2, M9, %f7 ! FGM Group 10793a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f2, M10, %f5 ! FGM Group f3 available 10803a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f3, %f6, %f3 ! FGA Group f6 available 10813a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f3, [%g2 + 0x00] ! LSU 10823a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f4, %f7, %f4 ! FGA Group stall, f4, f7 available 10833a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f4, [%g2 + 0x04] ! LSU 10843a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f5, M14, %f5 ! FGA Group 10853a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f5, [%g2 + 0x08] ! LSU 10863a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fnegs %f2, %f6 ! FGA Group 10873a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f6, [%g2 + 0x0c] ! LSU 10883a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org cmp %o1, %g3 ! IEU1 10893a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org bne 1b ! CTI 10903a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org add %g2, 0x10, %g2 ! IEU0 Group 10913a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org2: 10923a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ba __set_v4f_4 10933a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org nop 10943a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 10953a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org .globl _mesa_sparc_transform_points4_general 10963a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org_mesa_sparc_transform_points4_general: 10973a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%o2 + V4F_STRIDE], %o5 10983a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org LDPTR [%o2 + V4F_START], %g1 10993a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org LDPTR [%o0 + V4F_START], %g2 11003a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%o2 + V4F_COUNT], %g3 11013a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 11023a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org LDMATRIX_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15(%o1) 11033a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 11043a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org cmp %g3, 0 11053a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %g3, [%o0 + V4F_COUNT] 11063a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org be 2f 11073a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org clr %o1 11083a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 11093a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org1: ld [%g1 + 0x00], %f0 ! LSU Group 11103a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%g1 + 0x04], %f1 ! LSU Group 11113a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%g1 + 0x08], %f2 ! LSU Group 11123a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%g1 + 0x0c], %f3 ! LSU Group 11133a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org add %o1, 1, %o1 ! IEU0 11143a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org add %g1, %o5, %g1 ! IEU1 11153a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f0, M0, %f4 ! FGM Group 11163a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f1, M4, %f8 ! FGM Group 11173a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f0, M1, %f5 ! FGM Group 11183a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f1, M5, %f9 ! FGM Group 11193a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f0, M2, %f6 ! FGM Group f4 available 11203a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f1, M6, %f10 ! FGM Group f8 available 11213a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f4, %f8, %f4 ! FGA 11223a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f0, M3, %f7 ! FGM Group f5 available 11233a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f1, M7, %f11 ! FGM Group f9 available 11243a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f5, %f9, %f5 ! FGA 11253a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f2, M8, %f12 ! FGM Group f6 available 11263a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f2, M9, %f13 ! FGM Group f10, f4 available 11273a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f6, %f10, %f6 ! FGA 11283a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f2, M10, %f14 ! FGM Group f7 available 11293a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f2, M11, %f15 ! FGM Group f11, f5 available 11303a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f7, %f11, %f7 ! FGA 11313a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f3, M12, %f8 ! FGM Group f12 available 11323a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f4, %f12, %f4 ! FGA 11333a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f3, M13, %f9 ! FGM Group f13, f6 available 11343a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f5, %f13, %f5 ! FGA 11353a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f3, M14, %f10 ! FGM Group f14 available 11363a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f6, %f14, %f6 ! FGA 11373a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f3, M15, %f11 ! FGM Group f15, f7 available 11383a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f7, %f15, %f7 ! FGA 11393a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f4, %f8, %f4 ! FGA Group f8, f4 available 11403a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f4, [%g2 + 0x00] ! LSU 11413a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f5, %f9, %f5 ! FGA Group f9, f5 available 11423a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f5, [%g2 + 0x04] ! LSU 11433a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f6, %f10, %f6 ! FGA Group f10, f6 available 11443a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f6, [%g2 + 0x08] ! LSU 11453a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f7, %f11, %f7 ! FGA Group f11, f7 available 11463a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f7, [%g2 + 0x0c] ! LSU 11473a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org cmp %o1, %g3 ! IEU1 11483a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org bne 1b ! CTI 11493a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org add %g2, 0x10, %g2 ! IEU0 Group 11503a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org2: 11513a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ba __set_v4f_4 11523a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org nop 11533a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 11543a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org .globl _mesa_sparc_transform_points4_identity 11553a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org_mesa_sparc_transform_points4_identity: 11563a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%o2 + V4F_STRIDE], %o5 11573a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org LDPTR [%o2 + V4F_START], %g1 11583a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org LDPTR [%o0 + V4F_START], %g2 11593a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%o2 + V4F_COUNT], %g3 11603a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 11613a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org cmp %g3, 0 11623a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %g3, [%o0 + V4F_COUNT] 11633a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org be 2f 11643a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org clr %o1 11653a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 11663a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org1: ld [%g1 + 0x00], %f0 11673a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%g1 + 0x04], %f1 11683a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%g1 + 0x08], %f2 11693a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org add %o1, 1, %o1 11703a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%g1 + 0x0c], %f3 11713a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org add %g1, %o5, %g1 11723a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f0, [%g2 + 0x00] 11733a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f1, [%g2 + 0x04] 11743a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f2, [%g2 + 0x08] 11753a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org cmp %o1, %g3 11763a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f3, [%g2 + 0x0c] 11773a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org bne 1b 11783a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org add %g2, 0x10, %g2 11793a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org2: 11803a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ba __set_v4f_4 11813a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org nop 11823a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 11833a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org .globl _mesa_sparc_transform_points4_2d 11843a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org_mesa_sparc_transform_points4_2d: 11853a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%o2 + V4F_STRIDE], %o5 11863a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org LDPTR [%o2 + V4F_START], %g1 11873a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org LDPTR [%o0 + V4F_START], %g2 11883a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%o2 + V4F_COUNT], %g3 11893a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 11903a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org LDMATRIX_0_1_4_5_12_13(%o1) 11913a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 11923a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org cmp %g3, 0 11933a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %g3, [%o0 + V4F_COUNT] 11943a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org be 2f 11953a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org clr %o1 11963a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 11973a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org1: ld [%g1 + 0x00], %f0 ! LSU Group 11983a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%g1 + 0x04], %f1 ! LSU Group 11993a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%g1 + 0x08], %f2 ! LSU Group 12003a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%g1 + 0x0c], %f3 ! LSU Group 12013a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org add %o1, 1, %o1 ! IEU0 12023a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org add %g1, %o5, %g1 ! IEU1 12033a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f0, M0, %f4 ! FGM 12043a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f1, M4, %f8 ! FGM Group 12053a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f0, M1, %f5 ! FGM Group 12063a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f1, M5, %f9 ! FGM Group f4 available 12073a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f3, M12, %f12 ! FGM Group 12083a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f3, M13, %f13 ! FGM Group f8 available 12093a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f4, %f8, %f4 ! FGA 12103a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f5, %f9, %f5 ! FGA Group stall, f5, f9 available 12113a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f4, %f12, %f4 ! FGA Group 2 cycle stall, f4, f12, f13 avail 12123a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f4, [%g2 + 0x00] ! LSU 12133a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f5, %f13, %f5 ! FGA Group f5 available 12143a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f5, [%g2 + 0x04] ! LSU 12153a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f2, [%g2 + 0x08] ! LSU Group 12163a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f3, [%g2 + 0x0c] ! LSU Group 12173a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org cmp %o1, %g3 ! IEU1 12183a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org bne 1b ! CTI 12193a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org add %g2, 0x10, %g2 ! IEU0 Group 12203a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org2: 12213a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ba __set_v4f_4 12223a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org nop 12233a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 12243a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org .globl _mesa_sparc_transform_points4_2d_no_rot 12253a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org_mesa_sparc_transform_points4_2d_no_rot: 12263a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%o2 + V4F_STRIDE], %o5 12273a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org LDPTR [%o2 + V4F_START], %g1 12283a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org LDPTR [%o0 + V4F_START], %g2 12293a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%o2 + V4F_COUNT], %g3 12303a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 12313a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org LDMATRIX_0_1_4_5_12_13(%o1) 12323a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 12333a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org cmp %g3, 0 12343a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %g3, [%o0 + V4F_COUNT] 12353a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org be 2f 12363a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org clr %o1 12373a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 12383a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org1: ld [%g1 + 0x00], %f0 12393a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%g1 + 0x04], %f1 12403a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%g1 + 0x08], %f2 12413a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%g1 + 0x0c], %f3 12423a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org add %o1, 1, %o1 12433a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org add %g1, %o5, %g1 12443a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f0, M0, %f4 12453a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f3, M12, %f8 12463a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f1, M5, %f5 12473a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f3, M13, %f9 12483a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f4, %f8, %f4 12493a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f4, [%g2 + 0x00] 12503a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f5, %f9, %f5 12513a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f5, [%g2 + 0x04] 12523a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f2, [%g2 + 0x08] 12533a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f3, [%g2 + 0x0c] 12543a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org cmp %o1, %g3 12553a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org bne 1b 12563a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org add %g2, 0x10, %g2 12573a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org2: 12583a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ba __set_v4f_4 12593a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org nop 12603a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 12613a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org .globl _mesa_sparc_transform_points4_3d 12623a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org_mesa_sparc_transform_points4_3d: 12633a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%o2 + V4F_STRIDE], %o5 12643a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org LDPTR [%o2 + V4F_START], %g1 12653a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org LDPTR [%o0 + V4F_START], %g2 12663a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%o2 + V4F_COUNT], %g3 12673a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 12683a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org LDMATRIX_0_1_2_4_5_6_8_9_10_12_13_14(%o1) 12693a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 12703a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org cmp %g3, 0 12713a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %g3, [%o0 + V4F_COUNT] 12723a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org be 2f 12733a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org clr %o1 12743a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 12753a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org1: ld [%g1 + 0x00], %f0 ! LSU Group 12763a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%g1 + 0x04], %f1 ! LSU Group 12773a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%g1 + 0x08], %f2 ! LSU Group 12783a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%g1 + 0x0c], %f3 ! LSU Group 12793a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org add %o1, 1, %o1 ! IEU0 12803a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org add %g1, %o5, %g1 ! IEU1 12813a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f0, M0, %f4 ! FGM 12823a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f1, M4, %f7 ! FGM Group 12833a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f0, M1, %f5 ! FGM Group 12843a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f1, M5, %f8 ! FGM Group 12853a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f0, M2, %f6 ! FGM Group f4 available 12863a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f1, M6, %f9 ! FGM Group f7 available 12873a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f4, %f7, %f4 ! FGA 12883a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f2, M8, %f10 ! FGM Group f5 available 12893a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f2, M9, %f11 ! FGM Group f8 available 12903a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f5, %f8, %f5 ! FGA 12913a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f2, M10, %f12 ! FGM Group f6 available 12923a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f3, M12, %f13 ! FGM Group f9, f4 available 12933a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f6, %f9, %f6 ! FGA 12943a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f3, M13, %f14 ! FGM Group f10 available 12953a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f4, %f10, %f4 ! FGA 12963a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f3, M14, %f15 ! FGM Group f11, f5 available 12973a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f5, %f11, %f5 ! FGA 12983a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f6, %f12, %f6 ! FGA Group stall, f12, f13, f6 available 12993a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f4, %f13, %f4 ! FGA Group f14, f4 available 13003a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f4, [%g2 + 0x00] ! LSU 13013a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f5, %f14, %f5 ! FGA Group f15, f5 available 13023a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f5, [%g2 + 0x04] ! LSU 13033a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f6, %f15, %f6 ! FGA Group f6 available 13043a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f6, [%g2 + 0x08] ! LSU 13053a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f3, [%g2 + 0x0c] ! LSU Group 13063a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org cmp %o1, %g3 ! IEU1 13073a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org bne 1b ! CTI 13083a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org add %g2, 0x10, %g2 ! IEU0 Group 13093a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org2: 13103a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ba __set_v4f_4 13113a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org nop 13123a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 13133a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org .globl _mesa_sparc_transform_points4_3d_no_rot 13143a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org_mesa_sparc_transform_points4_3d_no_rot: 13153a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%o2 + V4F_STRIDE], %o5 13163a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org LDPTR [%o2 + V4F_START], %g1 13173a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org LDPTR [%o0 + V4F_START], %g2 13183a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%o2 + V4F_COUNT], %g3 13193a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 13203a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org LDMATRIX_0_5_10_12_13_14(%o1) 13213a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 13223a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org cmp %g3, 0 13233a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %g3, [%o0 + V4F_COUNT] 13243a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org be 2f 13253a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org clr %o1 13263a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 13273a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org1: ld [%g1 + 0x00], %f0 ! LSU Group 13283a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%g1 + 0x04], %f1 ! LSU Group 13293a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%g1 + 0x08], %f2 ! LSU Group 13303a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%g1 + 0x0c], %f3 ! LSU Group 13313a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org add %o1, 1, %o1 ! IEU0 13323a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org add %g1, %o5, %g1 ! IEU1 13333a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f0, M0, %f4 ! FGM 13343a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f3, M12, %f7 ! FGM Group 13353a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f1, M5, %f5 ! FGM Group 13363a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f3, M13, %f8 ! FGM Group 13373a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f2, M10, %f6 ! FGM Group f4 available 13383a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f3, M14, %f9 ! FGM Group f7 available 13393a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f4, %f7, %f4 ! FGA 13403a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f4, [%g2 + 0x00] ! LSU 13413a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f5, %f8, %f5 ! FGA Group stall, f5, f8 available 13423a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f5, [%g2 + 0x04] ! LSU 13433a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f6, %f9, %f6 ! FGA Group stall, f6, f9 available 13443a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f6, [%g2 + 0x08] ! LSU 13453a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f3, [%g2 + 0x0c] ! LSU Group 13463a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org cmp %o1, %g3 ! IEU1 13473a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org bne 1b ! CTI 13483a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org add %g2, 0x10, %g2 ! IEU0 Group 13493a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org2: 13503a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ba __set_v4f_4 13513a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org nop 13523a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 13533a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org .globl _mesa_sparc_transform_points4_perspective 13543a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org_mesa_sparc_transform_points4_perspective: 13553a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%o2 + V4F_STRIDE], %o5 13563a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org LDPTR [%o2 + V4F_START], %g1 13573a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org LDPTR [%o0 + V4F_START], %g2 13583a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%o2 + V4F_COUNT], %g3 13593a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 13603a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org LDMATRIX_0_5_8_9_10_14(%o1) 13613a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 13623a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org cmp %g3, 0 13633a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %g3, [%o0 + V4F_COUNT] 13643a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org be 2f 13653a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org clr %o1 13663a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org 13673a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org1: ld [%g1 + 0x00], %f0 ! LSU Group 13683a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%g1 + 0x04], %f1 ! LSU Group 13693a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%g1 + 0x08], %f2 ! LSU Group 13703a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ld [%g1 + 0x0c], %f3 ! LSU Group 13713a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org add %o1, 1, %o1 ! IEU0 13723a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org add %g1, %o5, %g1 ! IEU1 13733a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f0, M0, %f4 ! FGM 13743a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f2, M8, %f7 ! FGM Group 13753a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f1, M5, %f5 ! FGM Group 13763a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f2, M9, %f8 ! FGM Group 13773a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f2, M10, %f6 ! FGM Group f4 available 13783a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fmuls %f3, M14, %f9 ! FGM Group f7 available 13793a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f4, %f7, %f4 ! FGA 13803a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f4, [%g2 + 0x00] ! LSU 13813a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f5, %f8, %f5 ! FGA Group stall, f5, f8 available 13823a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f5, [%g2 + 0x04] ! LSU 13833a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fadds %f6, %f9, %f6 ! FGA Group stall, f6, f9 available 13843a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f6, [%g2 + 0x08] ! LSU 13853a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org fnegs %f2, %f7 ! FGA Group 13863a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org st %f7, [%g2 + 0x0c] ! LSU 13873a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org cmp %o1, %g3 ! IEU1 13883a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org bne 1b ! CTI 13893a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org add %g2, 0x10, %g2 ! IEU0 Group 13903a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org2: 13913a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org ba __set_v4f_4 13923a0db227ffe90888ad760c61a63226988c974e0apatrick@chromium.org nop 1393