MCPcopy Create free account
hub / github.com/bfbbdecomp/bfbb / PSMTXIdentity

Function PSMTXIdentity

src/dolphin/src/mtx/mtx.c:20–109  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

18}
19
20void PSMTXIdentity(register Mtx m)
21{
22 register f32 c_zero = 0.0f;
23 register f32 c_one = 1.0f;
24 register f32 c_01;
25 register f32 c_10;
26
27 asm {
28 psq_st c_zero, 8(m), 0, 0
29 ps_merge01 c_01, c_zero, c_one
30 psq_st c_zero, 24(m), 0, 0
31 ps_merge10 c_10, c_one, c_zero
32 psq_st c_zero, 32(m), 0, 0
33 psq_st c_01, 16(m), 0, 0
34 psq_st c_10, 0(m), 0, 0
35 psq_st c_10, 40(m), 0, 0
36 }
37}
38
39asm void PSMTXConcat(const register Mtx a, const register Mtx b, register Mtx ab)
40{
41 nofralloc;
42 stwu r1, -64(r1);
43 psq_l f0, 0(a), 0, 0;
44 stfd f14, 8(r1);
45 psq_l f6, 0(b), 0, 0;
46 lis r6, Unit01 @ha;
47 psq_l f7, 8(b), 0, 0;
48 stfd f15, 16(r1);
49 addi r6, r6, Unit01 @l;
50 stfd f31, 40(r1);
51 psq_l f8, 16(b), 0, 0;
52 ps_muls0 f12, f6, f0;
53 psq_l f2, 16(a), 0, 0;
54 ps_muls0 f13, f7, f0;
55 psq_l f31, 0(r6), 0, 0;
56 ps_muls0 f14, f6, f2;
57 psq_l f9, 24(b), 0, 0;
58 ps_muls0 f15, f7, f2;
59 psq_l f1, 8(a), 0, 0;
60 ps_madds1 f12, f8, f0, f12;
61 psq_l f3, 24(a), 0, 0;
62 ps_madds1 f14, f8, f2, f14;
63 psq_l f10, 32(b), 0, 0;
64 ps_madds1 f13, f9, f0, f13;
65 psq_l f11, 40(b), 0, 0;
66 ps_madds1 f15, f9, f2, f15;
67 psq_l f4, 32(a), 0, 0;
68 psq_l f5, 40(a), 0, 0;
69 ps_madds0 f12, f10, f1, f12;
70 ps_madds0 f13, f11, f1, f13;
71 ps_madds0 f14, f10, f3, f14;
72 ps_madds0 f15, f11, f3, f15;
73 psq_st f12, 0(ab), 0, 0;
74 ps_muls0 f2, f6, f4;
75 ps_madds1 f13, f31, f1, f13;
76 ps_muls0 f0, f7, f4;
77 psq_st f14, 16(ab), 0, 0;

Callers 3

DrawFrameFunction · 0.85
InitDisplayMethod · 0.85
InitDisplayMethod · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected