📄 xform.s
字号:
st %f3, [%g2 + 0x00] ! LSU
fadds %f4, %f7, %f4 ! FGA Group f7 available
st %f4, [%g2 + 0x04] ! LSU
st %f2, [%g2 + 0x08] ! LSU Group
cmp %o1, %g3 ! IEU1
bne 1b ! CTI
add %g2, 0x10, %g2 ! IEU0 Group
2:
ba __set_v4f_3
nop
.globl _mesa_sparc_transform_points3_2d_no_rot
_mesa_sparc_transform_points3_2d_no_rot:
ld [%o2 + V4F_STRIDE], %o5
LDPTR [%o2 + V4F_START], %g1
LDPTR [%o0 + V4F_START], %g2
ld [%o2 + V4F_COUNT], %g3
LDMATRIX_0_5_12_13(%o1)
cmp %g3, 0
st %g3, [%o0 + V4F_COUNT]
be 2f
clr %o1
1: ld [%g1 + 0x00], %f0 ! LSU Group
ld [%g1 + 0x04], %f1 ! LSU Group
ld [%g1 + 0x08], %f2 ! LSU Group
add %o1, 1, %o1 ! IEU0
add %g1, %o5, %g1 ! IEU1
fmuls %f0, M0, %f3 ! FGM
fmuls %f1, M5, %f4 ! FGM Group
st %f2, [%g2 + 0x08] ! LSU
fadds %f3, M12, %f3 ! FGA Group
st %f3, [%g2 + 0x00] ! LSU
fadds %f4, M13, %f4 ! FGA Group
st %f4, [%g2 + 0x04] ! LSU
cmp %o1, %g3 ! IEU1
bne 1b ! CTI
add %g2, 0x10, %g2 ! IEU0 Group
2:
ba __set_v4f_3
nop
.globl _mesa_sparc_transform_points3_3d
_mesa_sparc_transform_points3_3d:
ld [%o2 + V4F_STRIDE], %o5
LDPTR [%o2 + V4F_START], %g1
LDPTR [%o0 + V4F_START], %g2
ld [%o2 + V4F_COUNT], %g3
LDMATRIX_0_1_2_4_5_6_8_9_10_12_13_14(%o1)
cmp %g3, 0
st %g3, [%o0 + V4F_COUNT]
be 2f
clr %o1
1: ld [%g1 + 0x00], %f0 ! LSU Group
ld [%g1 + 0x04], %f1 ! LSU Group
ld [%g1 + 0x08], %f2 ! LSU Group
add %o1, 1, %o1 ! IEU0
add %g1, %o5, %g1 ! IEU1
fmuls %f0, M0, %f3 ! FGM
fmuls %f1, M4, %f6 ! FGM Group
fmuls %f0, M1, %f4 ! FGM Group
fmuls %f1, M5, %f7 ! FGM Group
fmuls %f0, M2, %f5 ! FGM Group f3 available
fmuls %f1, M6, %f8 ! FGM Group f6 available
fadds %f3, %f6, %f3 ! FGA
fmuls %f2, M8, %f9 ! FGM Group f4 available
fmuls %f2, M9, %f10 ! FGM Group f7 available
fadds %f4, %f7, %f4 ! FGA
fmuls %f2, M10, %f11 ! FGM Group f5 available
fadds %f5, %f8, %f5 ! FGA Group f8, f3 available
fadds %f3, %f9, %f3 ! FGA Group f9 available
fadds %f4, %f10, %f4 ! FGA Group f10, f4 available
fadds %f5, %f11, %f5 ! FGA Group stall, f11, f5 available
fadds %f3, M12, %f3 ! FGA Group f3 available
st %f3, [%g2 + 0x00] ! LSU
fadds %f4, M13, %f4 ! FGA Group f4 available
st %f4, [%g2 + 0x04] ! LSU
fadds %f5, M14, %f5 ! FGA Group f5 available
st %f5, [%g2 + 0x08] ! LSU
cmp %o1, %g3 ! IEU1
bne 1b ! CTI
add %g2, 0x10, %g2 ! IEU0 Group
2:
ba __set_v4f_3
nop
.globl _mesa_sparc_transform_points3_3d_no_rot
_mesa_sparc_transform_points3_3d_no_rot:
ld [%o2 + V4F_STRIDE], %o5
LDPTR [%o2 + V4F_START], %g1
LDPTR [%o0 + V4F_START], %g2
ld [%o2 + V4F_COUNT], %g3
LDMATRIX_0_5_10_12_13_14(%o1)
cmp %g3, 0
st %g3, [%o0 + V4F_COUNT]
be 2f
clr %o1
1: ld [%g1 + 0x00], %f0 ! LSU Group
ld [%g1 + 0x04], %f1 ! LSU Group
ld [%g1 + 0x08], %f2 ! LSU Group
add %o1, 1, %o1 ! IEU0
add %g1, %o5, %g1 ! IEU1
cmp %o1, %g3 ! IEU1 Group
fmuls %f0, M0, %f3 ! FGM
fmuls %f1, M5, %f4 ! FGM Group
fmuls %f2, M10, %f5 ! FGM Group
fadds %f3, M12, %f3 ! FGA Group, stall, f3 available
st %f3, [%g2 + 0x00] ! LSU
fadds %f4, M13, %f4 ! FGA Group, f4 available
st %f4, [%g2 + 0x04] ! LSU
fadds %f5, M14, %f5 ! FGA Group, f5 available
st %f5, [%g2 + 0x08] ! LEU
bne 1b ! CTI
add %g2, 0x10, %g2 ! IEU0 Group
2:
ba __set_v4f_3
nop
.globl _mesa_sparc_transform_points3_perspective
_mesa_sparc_transform_points3_perspective:
ld [%o2 + V4F_STRIDE], %o5
LDPTR [%o2 + V4F_START], %g1
LDPTR [%o0 + V4F_START], %g2
ld [%o2 + V4F_COUNT], %g3
LDMATRIX_0_5_8_9_10_14(%o1)
cmp %g3, 0
st %g3, [%o0 + V4F_COUNT]
be 2f
clr %o1
1: ld [%g1 + 0x00], %f0 ! LSU Group
ld [%g1 + 0x04], %f1 ! LSU Group
ld [%g1 + 0x08], %f2 ! LSU Group
add %o1, 1, %o1 ! IEU0
add %g1, %o5, %g1 ! IEU1
fmuls %f0, M0, %f3 ! FGM
fmuls %f2, M8, %f6 ! FGM Group
fmuls %f1, M5, %f4 ! FGM Group
fmuls %f2, M9, %f7 ! FGM Group
fmuls %f2, M10, %f5 ! FGM Group f3 available
fadds %f3, %f6, %f3 ! FGA Group f6 available
st %f3, [%g2 + 0x00] ! LSU
fadds %f4, %f7, %f4 ! FGA Group stall, f4, f7 available
st %f4, [%g2 + 0x04] ! LSU
fadds %f5, M14, %f5 ! FGA Group
st %f5, [%g2 + 0x08] ! LSU
fnegs %f2, %f6 ! FGA Group
st %f6, [%g2 + 0x0c] ! LSU
cmp %o1, %g3 ! IEU1
bne 1b ! CTI
add %g2, 0x10, %g2 ! IEU0 Group
2:
ba __set_v4f_4
nop
.globl _mesa_sparc_transform_points4_general
_mesa_sparc_transform_points4_general:
ld [%o2 + V4F_STRIDE], %o5
LDPTR [%o2 + V4F_START], %g1
LDPTR [%o0 + V4F_START], %g2
ld [%o2 + V4F_COUNT], %g3
LDMATRIX_0_1_2_3_4_5_6_7_8_9_10_11_12_13_14_15(%o1)
cmp %g3, 0
st %g3, [%o0 + V4F_COUNT]
be 2f
clr %o1
1: ld [%g1 + 0x00], %f0 ! LSU Group
ld [%g1 + 0x04], %f1 ! LSU Group
ld [%g1 + 0x08], %f2 ! LSU Group
ld [%g1 + 0x0c], %f3 ! LSU Group
add %o1, 1, %o1 ! IEU0
add %g1, %o5, %g1 ! IEU1
fmuls %f0, M0, %f4 ! FGM Group
fmuls %f1, M4, %f8 ! FGM Group
fmuls %f0, M1, %f5 ! FGM Group
fmuls %f1, M5, %f9 ! FGM Group
fmuls %f0, M2, %f6 ! FGM Group f4 available
fmuls %f1, M6, %f10 ! FGM Group f8 available
fadds %f4, %f8, %f4 ! FGA
fmuls %f0, M3, %f7 ! FGM Group f5 available
fmuls %f1, M7, %f11 ! FGM Group f9 available
fadds %f5, %f9, %f5 ! FGA
fmuls %f2, M8, %f12 ! FGM Group f6 available
fmuls %f2, M9, %f13 ! FGM Group f10, f4 available
fadds %f6, %f10, %f6 ! FGA
fmuls %f2, M10, %f14 ! FGM Group f7 available
fmuls %f2, M11, %f15 ! FGM Group f11, f5 available
fadds %f7, %f11, %f7 ! FGA
fmuls %f3, M12, %f8 ! FGM Group f12 available
fadds %f4, %f12, %f4 ! FGA
fmuls %f3, M13, %f9 ! FGM Group f13, f6 available
fadds %f5, %f13, %f5 ! FGA
fmuls %f3, M14, %f10 ! FGM Group f14 available
fadds %f6, %f14, %f6 ! FGA
fmuls %f3, M15, %f11 ! FGM Group f15, f7 available
fadds %f7, %f15, %f7 ! FGA
fadds %f4, %f8, %f4 ! FGA Group f8, f4 available
st %f4, [%g2 + 0x00] ! LSU
fadds %f5, %f9, %f5 ! FGA Group f9, f5 available
st %f5, [%g2 + 0x04] ! LSU
fadds %f6, %f10, %f6 ! FGA Group f10, f6 available
st %f6, [%g2 + 0x08] ! LSU
fadds %f7, %f11, %f7 ! FGA Group f11, f7 available
st %f7, [%g2 + 0x0c] ! LSU
cmp %o1, %g3 ! IEU1
bne 1b ! CTI
add %g2, 0x10, %g2 ! IEU0 Group
2:
ba __set_v4f_4
nop
.globl _mesa_sparc_transform_points4_identity
_mesa_sparc_transform_points4_identity:
ld [%o2 + V4F_STRIDE], %o5
LDPTR [%o2 + V4F_START], %g1
LDPTR [%o0 + V4F_START], %g2
ld [%o2 + V4F_COUNT], %g3
cmp %g3, 0
st %g3, [%o0 + V4F_COUNT]
be 2f
clr %o1
1: ld [%g1 + 0x00], %f0
ld [%g1 + 0x04], %f1
ld [%g1 + 0x08], %f2
add %o1, 1, %o1
ld [%g1 + 0x0c], %f3
add %g1, %o5, %g1
st %f0, [%g2 + 0x00]
st %f1, [%g2 + 0x04]
st %f2, [%g2 + 0x08]
cmp %o1, %g3
st %f3, [%g2 + 0x0c]
bne 1b
add %g2, 0x10, %g2
2:
ba __set_v4f_4
nop
.globl _mesa_sparc_transform_points4_2d
_mesa_sparc_transform_points4_2d:
ld [%o2 + V4F_STRIDE], %o5
LDPTR [%o2 + V4F_START], %g1
LDPTR [%o0 + V4F_START], %g2
ld [%o2 + V4F_COUNT], %g3
LDMATRIX_0_1_4_5_12_13(%o1)
cmp %g3, 0
st %g3, [%o0 + V4F_COUNT]
be 2f
clr %o1
1: ld [%g1 + 0x00], %f0 ! LSU Group
ld [%g1 + 0x04], %f1 ! LSU Group
ld [%g1 + 0x08], %f2 ! LSU Group
ld [%g1 + 0x0c], %f3 ! LSU Group
add %o1, 1, %o1 ! IEU0
add %g1, %o5, %g1 ! IEU1
fmuls %f0, M0, %f4 ! FGM
fmuls %f1, M4, %f8 ! FGM Group
fmuls %f0, M1, %f5 ! FGM Group
fmuls %f1, M5, %f9 ! FGM Group f4 available
fmuls %f3, M12, %f12 ! FGM Group
fmuls %f3, M13, %f13 ! FGM Group f8 available
fadds %f4, %f8, %f4 ! FGA
fadds %f5, %f9, %f5 ! FGA Group stall, f5, f9 available
fadds %f4, %f12, %f4 ! FGA Group 2 cycle stall, f4, f12, f13 avail
st %f4, [%g2 + 0x00] ! LSU
fadds %f5, %f13, %f5 ! FGA Group f5 available
st %f5, [%g2 + 0x04] ! LSU
st %f2, [%g2 + 0x08] ! LSU Group
st %f3, [%g2 + 0x0c] ! LSU Group
cmp %o1, %g3 ! IEU1
bne 1b ! CTI
add %g2, 0x10, %g2 ! IEU0 Group
2:
ba __set_v4f_4
nop
.globl _mesa_sparc_transform_points4_2d_no_rot
_mesa_sparc_transform_points4_2d_no_rot:
ld [%o2 + V4F_STRIDE], %o5
LDPTR [%o2 + V4F_START], %g1
LDPTR [%o0 + V4F_START], %g2
ld [%o2 + V4F_COUNT], %g3
LDMATRIX_0_1_4_5_12_13(%o1)
cmp %g3, 0
st %g3, [%o0 + V4F_COUNT]
be 2f
clr %o1
1: ld [%g1 + 0x00], %f0
ld [%g1 + 0x04], %f1
ld [%g1 + 0x08], %f2
ld [%g1 + 0x0c], %f3
add %o1, 1, %o1
add %g1, %o5, %g1
fmuls %f0, M0, %f4
fmuls %f3, M12, %f8
fmuls %f1, M5, %f5
fmuls %f3, M13, %f9
fadds %f4, %f8, %f4
st %f4, [%g2 + 0x00]
fadds %f5, %f9, %f5
st %f5, [%g2 + 0x04]
st %f2, [%g2 + 0x08]
st %f3, [%g2 + 0x0c]
cmp %o1, %g3
bne 1b
add %g2, 0x10, %g2
2:
ba __set_v4f_4
nop
.globl _mesa_sparc_transform_points4_3d
_mesa_sparc_transform_points4_3d:
ld [%o2 + V4F_STRIDE], %o5
LDPTR [%o2 + V4F_START], %g1
LDPTR [%o0 + V4F_START], %g2
ld [%o2 + V4F_COUNT], %g3
LDMATRIX_0_1_2_4_5_6_8_9_10_12_13_14(%o1)
cmp %g3, 0
st %g3, [%o0 + V4F_COUNT]
be 2f
clr %o1
1: ld [%g1 + 0x00], %f0 ! LSU Group
ld [%g1 + 0x04], %f1 ! LSU Group
ld [%g1 + 0x08], %f2 ! LSU Group
ld [%g1 + 0x0c], %f3 ! LSU Group
add %o1, 1, %o1 ! IEU0
add %g1, %o5, %g1 ! IEU1
fmuls %f0, M0, %f4 ! FGM
fmuls %f1, M4, %f7 ! FGM Group
fmuls %f0, M1, %f5 ! FGM Group
fmuls %f1, M5, %f8 ! FGM Group
fmuls %f0, M2, %f6 ! FGM Group f4 available
fmuls %f1, M6, %f9 ! FGM Group f7 available
fadds %f4, %f7, %f4 ! FGA
fmuls %f2, M8, %f10 ! FGM Group f5 available
fmuls %f2, M9, %f11 ! FGM Group f8 available
fadds %f5, %f8, %f5 ! FGA
fmuls %f2, M10, %f12 ! FGM Group f6 available
fmuls %f3, M12, %f13 ! FGM Group f9, f4 available
fadds %f6, %f9, %f6 ! FGA
fmuls %f3, M13, %f14 ! FGM Group f10 available
fadds %f4, %f10, %f4 ! FGA
fmuls %f3, M14, %f15 ! FGM Group f11, f5 available
fadds %f5, %f11, %f5 ! FGA
fadds %f6, %f12, %f6 ! FGA Group stall, f12, f13, f6 available
fadds %f4, %f13, %f4 ! FGA Group f14, f4 available
st %f4, [%g2 + 0x00] ! LSU
fadds %f5, %f14, %f5 ! FGA Group f15, f5 available
st %f5, [%g2 + 0x04] ! LSU
fadds %f6, %f15, %f6 ! FGA Group f6 available
st %f6, [%g2 + 0x08] ! LSU
st %f3, [%g2 + 0x0c] ! LSU Group
cmp %o1, %g3 ! IEU1
bne 1b ! CTI
add %g2, 0x10, %g2 ! IEU0 Group
2:
ba __set_v4f_4
nop
.globl _mesa_sparc_transform_points4_3d_no_rot
_mesa_sparc_transform_points4_3d_no_rot:
ld [%o2 + V4F_STRIDE], %o5
LDPTR [%o2 + V4F_START], %g1
LDPTR [%o0 + V4F_START], %g2
ld [%o2 + V4F_COUNT], %g3
LDMATRIX_0_5_10_12_13_14(%o1)
cmp %g3, 0
st %g3, [%o0 + V4F_COUNT]
be 2f
clr %o1
1: ld [%g1 + 0x00], %f0 ! LSU Group
ld [%g1 + 0x04], %f1 ! LSU Group
ld [%g1 + 0x08], %f2 ! LSU Group
ld [%g1 + 0x0c], %f3 ! LSU Group
add %o1, 1, %o1 ! IEU0
add %g1, %o5, %g1 ! IEU1
fmuls %f0, M0, %f4 ! FGM
fmuls %f3, M12, %f7 ! FGM Group
fmuls %f1, M5, %f5 ! FGM Group
fmuls %f3, M13, %f8 ! FGM Group
fmuls %f2, M10, %f6 ! FGM Group f4 available
fmuls %f3, M14, %f9 ! FGM Group f7 available
fadds %f4, %f7, %f4 ! FGA
st %f4, [%g2 + 0x00] ! LSU
fadds %f5, %f8, %f5 ! FGA Group stall, f5, f8 available
st %f5, [%g2 + 0x04] ! LSU
fadds %f6, %f9, %f6 ! FGA Group stall, f6, f9 available
st %f6, [%g2 + 0x08] ! LSU
st %f3, [%g2 + 0x0c] ! LSU Group
cmp %o1, %g3 ! IEU1
bne 1b ! CTI
add %g2, 0x10, %g2 ! IEU0 Group
2:
ba __set_v4f_4
nop
.globl _mesa_sparc_transform_points4_perspective
_mesa_sparc_transform_points4_perspective:
ld [%o2 + V4F_STRIDE], %o5
LDPTR [%o2 + V4F_START], %g1
LDPTR [%o0 + V4F_START], %g2
ld [%o2 + V4F_COUNT], %g3
LDMATRIX_0_5_8_9_10_14(%o1)
cmp %g3, 0
st %g3, [%o0 + V4F_COUNT]
be 2f
clr %o1
1: ld [%g1 + 0x00], %f0 ! LSU Group
ld [%g1 + 0x04], %f1 ! LSU Group
ld [%g1 + 0x08], %f2 ! LSU Group
ld [%g1 + 0x0c], %f3 ! LSU Group
add %o1, 1, %o1 ! IEU0
add %g1, %o5, %g1 ! IEU1
fmuls %f0, M0, %f4 ! FGM
fmuls %f2, M8, %f7 ! FGM Group
fmuls %f1, M5, %f5 ! FGM Group
fmuls %f2, M9, %f8 ! FGM Group
fmuls %f2, M10, %f6 ! FGM Group f4 available
fmuls %f3, M14, %f9 ! FGM Group f7 available
fadds %f4, %f7, %f4 ! FGA
st %f4, [%g2 + 0x00] ! LSU
fadds %f5, %f8, %f5 ! FGA Group stall, f5, f8 available
st %f5, [%g2 + 0x04] ! LSU
fadds %f6, %f9, %f6 ! FGA Group stall, f6, f9 available
st %f6, [%g2 + 0x08] ! LSU
fnegs %f2, %f7 ! FGA Group
st %f7, [%g2 + 0x0c] ! LSU
cmp %o1, %g3 ! IEU1
bne 1b ! CTI
add %g2, 0x10, %g2 ! IEU0 Group
2:
ba __set_v4f_4
nop
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -