summaryrefslogtreecommitdiff
path: root/src/JSystem/J3DGraphBase/J3DTransform.cpp
diff options
context:
space:
mode:
authorJasper St. Pierre <jstpierre@mecheye.net>2023-12-30 18:20:19 -0800
committerJasper St. Pierre <jstpierre@mecheye.net>2023-12-30 18:20:19 -0800
commit9c9580705b70d1c2c06991d57ffff492bb07b046 (patch)
tree3905e144fb9bd993bddab5499f98ae84466c9ab3 /src/JSystem/J3DGraphBase/J3DTransform.cpp
parent67dd323c7f0a3a50af0b42a5524ae2a24448e770 (diff)
J3DScaleNrmMtx33
Diffstat (limited to 'src/JSystem/J3DGraphBase/J3DTransform.cpp')
-rw-r--r--src/JSystem/J3DGraphBase/J3DTransform.cpp28
1 files changed, 27 insertions, 1 deletions
diff --git a/src/JSystem/J3DGraphBase/J3DTransform.cpp b/src/JSystem/J3DGraphBase/J3DTransform.cpp
index cb9c980f..a7da51f9 100644
--- a/src/JSystem/J3DGraphBase/J3DTransform.cpp
+++ b/src/JSystem/J3DGraphBase/J3DTransform.cpp
@@ -271,7 +271,33 @@ void J3DScaleNrmMtx(register Mtx mtx, const register Vec& scl) {
/* 802DAB68-802DABBC .text J3DScaleNrmMtx33__FPA3_fRC3Vec */
void J3DScaleNrmMtx33(register Mtx33 mtx, const register Vec& scl) {
- /* Nonmatching */
+ register f32 mtx0_xy, mtx0_z_;
+ register f32 mtx1_xy, mtx1_z_;
+ register f32 mtx2_xy, mtx2_z_;
+ register f32 scl__xy, scl__z_;
+
+ asm {
+ psq_l mtx0_xy, 0(mtx), 0, 0
+ psq_l scl__xy, 0(scl), 0, 0
+ lfs mtx0_z_, 8(mtx)
+ lfs scl__z_, 8(scl)
+ ps_mul mtx0_xy, mtx0_xy, scl__xy
+ psq_l mtx1_xy, 12(mtx), 0, 0
+ fmuls mtx0_z_, mtx0_z_, scl__z_
+ lfs mtx1_z_, 20(mtx)
+ ps_mul mtx1_xy, mtx1_xy, scl__xy
+ psq_l mtx2_xy, 24(mtx), 0, 0
+ fmuls mtx1_z_, mtx1_z_, scl__z_
+ lfs mtx2_z_, 32(mtx)
+ ps_mul mtx2_xy, mtx2_xy, scl__xy
+ psq_st mtx0_xy, 0(mtx), 0, 0
+ fmuls mtx2_z_, mtx2_z_, scl__z_
+ stfs mtx0_z_, 8(mtx)
+ psq_st mtx1_xy, 12(mtx), 0, 0
+ stfs mtx1_z_, 20(mtx)
+ psq_st mtx2_xy, 24(mtx), 0, 0
+ stfs mtx2_z_, 32(mtx)
+ }
}
/* 802DABBC-802DACE0 .text J3DMtxProjConcat__FPA4_fPA4_fPA4_f */