Skip to content

Commit e4bedbb

Browse files
committed
CPU/PGXP: Readability improvements
1 parent 29d4e04 commit e4bedbb

File tree

1 file changed

+28
-55
lines changed

1 file changed

+28
-55
lines changed

src/core/cpu_pgxp.cpp

Lines changed: 28 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -754,12 +754,10 @@ void CPU::PGXP::CPU_ANDI(u32 instr, u32 rsVal)
754754

755755
// Rt = Rs & Imm
756756
const u32 rtVal = rsVal & imm(instr);
757-
psx_value vRt;
758-
PGXP_value ret;
759-
760757
Validate(&g_state.pgxp_gpr[rs(instr)], rsVal);
761-
ret = g_state.pgxp_gpr[rs(instr)];
758+
PGXP_value ret = g_state.pgxp_gpr[rs(instr)];
762759

760+
psx_value vRt;
763761
vRt.d = rtVal;
764762

765763
ret.y = 0.f; // remove upper 16-bits
@@ -791,12 +789,11 @@ void CPU::PGXP::CPU_ORI(u32 instr, u32 rsVal)
791789

792790
// Rt = Rs | Imm
793791
const u32 rtVal = rsVal | imm(instr);
794-
psx_value vRt;
795-
PGXP_value ret;
796792

797793
Validate(&g_state.pgxp_gpr[rs(instr)], rsVal);
798-
ret = g_state.pgxp_gpr[rs(instr)];
794+
PGXP_value ret = g_state.pgxp_gpr[rs(instr)];
799795

796+
psx_value vRt;
800797
vRt.d = rtVal;
801798

802799
switch (imm(instr))
@@ -820,12 +817,11 @@ void CPU::PGXP::CPU_XORI(u32 instr, u32 rsVal)
820817

821818
// Rt = Rs ^ Imm
822819
const u32 rtVal = rsVal ^ imm(instr);
823-
psx_value vRt;
824-
PGXP_value ret;
825820

826821
Validate(&g_state.pgxp_gpr[rs(instr)], rsVal);
827-
ret = g_state.pgxp_gpr[rs(instr)];
822+
PGXP_value ret = g_state.pgxp_gpr[rs(instr)];
828823

824+
psx_value vRt;
829825
vRt.d = rtVal;
830826

831827
switch (imm(instr))
@@ -848,12 +844,10 @@ void CPU::PGXP::CPU_SLTI(u32 instr, u32 rsVal)
848844
LOG_VALUES_C1(rs(instr), rsVal);
849845

850846
// Rt = Rs < Imm (signed)
851-
psx_value tempImm;
852-
PGXP_value ret;
853-
854847
Validate(&g_state.pgxp_gpr[rs(instr)], rsVal);
855-
ret = g_state.pgxp_gpr[rs(instr)];
848+
PGXP_value ret = g_state.pgxp_gpr[rs(instr)];
856849

850+
psx_value tempImm;
857851
tempImm.w.h = imm(instr);
858852
ret.y = 0.f;
859853
ret.x = (g_state.pgxp_gpr[rs(instr)].x < tempImm.sw.h) ? 1.f : 0.f;
@@ -868,12 +862,10 @@ void CPU::PGXP::CPU_SLTIU(u32 instr, u32 rsVal)
868862
LOG_VALUES_C1(rs(instr), rsVal);
869863

870864
// Rt = Rs < Imm (Unsigned)
871-
psx_value tempImm;
872-
PGXP_value ret;
873-
874865
Validate(&g_state.pgxp_gpr[rs(instr)], rsVal);
875-
ret = g_state.pgxp_gpr[rs(instr)];
866+
PGXP_value ret = g_state.pgxp_gpr[rs(instr)];
876867

868+
psx_value tempImm;
877869
tempImm.w.h = imm(instr);
878870
ret.y = 0.f;
879871
ret.x = (f16Unsign(g_state.pgxp_gpr[rs(instr)].x) < tempImm.w.h) ? 1.f : 0.f;
@@ -906,10 +898,10 @@ void CPU::PGXP::CPU_ADD(u32 instr, u32 rsVal, u32 rtVal)
906898
LOG_VALUES_C2(rs(instr), rsVal, rt(instr), rtVal);
907899

908900
// Rd = Rs + Rt (signed)
909-
PGXP_value ret;
910901
Validate(&g_state.pgxp_gpr[rs(instr)], rsVal);
911902
Validate(&g_state.pgxp_gpr[rt(instr)], rtVal);
912903

904+
PGXP_value ret;
913905
if (rtVal == 0)
914906
{
915907
ret = g_state.pgxp_gpr[rs(instr)];
@@ -963,7 +955,6 @@ void CPU::PGXP::CPU_SUB(u32 instr, u32 rsVal, u32 rtVal)
963955
LOG_VALUES_C2(rs(instr), rsVal, rt(instr), rtVal);
964956

965957
// Rd = Rs - Rt (signed)
966-
PGXP_value ret;
967958
Validate(&g_state.pgxp_gpr[rs(instr)], rsVal);
968959
Validate(&g_state.pgxp_gpr[rt(instr)], rtVal);
969960

@@ -975,7 +966,7 @@ void CPU::PGXP::CPU_SUB(u32 instr, u32 rsVal, u32 rtVal)
975966
MakeValid(&g_state.pgxp_gpr[rt(instr)], rtVal);
976967
}
977968

978-
ret = g_state.pgxp_gpr[rs(instr)];
969+
PGXP_value ret = g_state.pgxp_gpr[rs(instr)];
979970

980971
ret.x = (float)f16Unsign(ret.x);
981972
ret.x -= (float)f16Unsign(g_state.pgxp_gpr[rt(instr)].x);
@@ -1007,8 +998,6 @@ ALWAYS_INLINE_RELEASE void CPU::PGXP::CPU_BITWISE(u32 instr, u32 rdVal, u32 rsVa
1007998
LOG_VALUES_C2(rs(instr), rsVal, rt(instr), rtVal);
1008999

10091000
// Rd = Rs & Rt
1010-
psx_value vald, vals, valt;
1011-
PGXP_value ret;
10121001

10131002
Validate(&g_state.pgxp_gpr[rs(instr)], rsVal);
10141003
Validate(&g_state.pgxp_gpr[rt(instr)], rtVal);
@@ -1021,11 +1010,12 @@ ALWAYS_INLINE_RELEASE void CPU::PGXP::CPU_BITWISE(u32 instr, u32 rdVal, u32 rsVa
10211010
MakeValid(&g_state.pgxp_gpr[rt(instr)], rtVal);
10221011
}
10231012

1013+
psx_value vald, vals, valt;
10241014
vald.d = rdVal;
10251015
vals.d = rsVal;
10261016
valt.d = rtVal;
10271017

1028-
// CPU_reg[rd(instr)].valid = CPU_reg[rs(instr)].valid && CPU_reg[rt(instr)].valid;
1018+
PGXP_value ret;
10291019
ret.flags = VALID_01;
10301020

10311021
if (vald.w.l == 0)
@@ -1135,7 +1125,6 @@ void CPU::PGXP::CPU_SLT(u32 instr, u32 rsVal, u32 rtVal)
11351125
LOG_VALUES_C2(rs(instr), rsVal, rt(instr), rtVal);
11361126

11371127
// Rd = Rs < Rt (signed)
1138-
PGXP_value ret;
11391128
Validate(&g_state.pgxp_gpr[rs(instr)], rsVal);
11401129
Validate(&g_state.pgxp_gpr[rt(instr)], rtVal);
11411130

@@ -1147,7 +1136,7 @@ void CPU::PGXP::CPU_SLT(u32 instr, u32 rsVal, u32 rtVal)
11471136
MakeValid(&g_state.pgxp_gpr[rt(instr)], rtVal);
11481137
}
11491138

1150-
ret = g_state.pgxp_gpr[rs(instr)];
1139+
PGXP_value ret = g_state.pgxp_gpr[rs(instr)];
11511140
ret.y = 0.f;
11521141
ret.SetValidComp(1, true);
11531142

@@ -1164,7 +1153,6 @@ void CPU::PGXP::CPU_SLTU(u32 instr, u32 rsVal, u32 rtVal)
11641153
LOG_VALUES_C2(rs(instr), rsVal, rt(instr), rtVal);
11651154

11661155
// Rd = Rs < Rt (unsigned)
1167-
PGXP_value ret;
11681156
Validate(&g_state.pgxp_gpr[rs(instr)], rsVal);
11691157
Validate(&g_state.pgxp_gpr[rt(instr)], rtVal);
11701158

@@ -1176,7 +1164,7 @@ void CPU::PGXP::CPU_SLTU(u32 instr, u32 rsVal, u32 rtVal)
11761164
MakeValid(&g_state.pgxp_gpr[rt(instr)], rtVal);
11771165
}
11781166

1179-
ret = g_state.pgxp_gpr[rs(instr)];
1167+
PGXP_value ret = g_state.pgxp_gpr[rs(instr)];
11801168
ret.y = 0.f;
11811169
ret.SetValidComp(1, true);
11821170

@@ -1411,11 +1399,10 @@ void CPU::PGXP::CPU_SLL(u32 instr, u32 rtVal)
14111399

14121400
// Rd = Rt << Sa
14131401
const u32 rdVal = rtVal << sa(instr);
1414-
PGXP_value ret;
1415-
u32 sh = sa(instr);
1402+
const u32 sh = sa(instr);
14161403
Validate(&g_state.pgxp_gpr[rt(instr)], rtVal);
14171404

1418-
ret = g_state.pgxp_gpr[rt(instr)];
1405+
PGXP_value ret = g_state.pgxp_gpr[rt(instr)];
14191406

14201407
// TODO: Shift flags
14211408
double x = f16Unsign(g_state.pgxp_gpr[rt(instr)].x);
@@ -1458,12 +1445,9 @@ void CPU::PGXP::CPU_SRL(u32 instr, u32 rtVal)
14581445

14591446
// Rd = Rt >> Sa
14601447
const u32 rdVal = rtVal >> sa(instr);
1461-
PGXP_value ret;
1462-
u32 sh = sa(instr);
1448+
const u32 sh = sa(instr);
14631449
Validate(&g_state.pgxp_gpr[rt(instr)], rtVal);
14641450

1465-
ret = g_state.pgxp_gpr[rt(instr)];
1466-
14671451
double x = g_state.pgxp_gpr[rt(instr)].x, y = f16Unsign(g_state.pgxp_gpr[rt(instr)].y);
14681452

14691453
psx_value iX;
@@ -1511,9 +1495,9 @@ void CPU::PGXP::CPU_SRL(u32 instr, u32 rtVal)
15111495
x = f16Sign(x);
15121496
y = f16Sign(y);
15131497

1498+
PGXP_value ret = g_state.pgxp_gpr[rt(instr)];
15141499
ret.x = (float)x;
15151500
ret.y = (float)y;
1516-
15171501
ret.value = rdVal;
15181502
g_state.pgxp_gpr[rd(instr)] = ret;
15191503
}
@@ -1524,10 +1508,9 @@ void CPU::PGXP::CPU_SRA(u32 instr, u32 rtVal)
15241508

15251509
// Rd = Rt >> Sa
15261510
const u32 rdVal = static_cast<u32>(static_cast<s32>(rtVal) >> sa(instr));
1527-
PGXP_value ret;
1528-
u32 sh = sa(instr);
1511+
const u32 sh = sa(instr);
15291512
Validate(&g_state.pgxp_gpr[rt(instr)], rtVal);
1530-
ret = g_state.pgxp_gpr[rt(instr)];
1513+
PGXP_value ret = g_state.pgxp_gpr[rt(instr)];
15311514

15321515
double x = g_state.pgxp_gpr[rt(instr)].x, y = g_state.pgxp_gpr[rt(instr)].y;
15331516

@@ -1602,13 +1585,10 @@ void CPU::PGXP::CPU_SLLV(u32 instr, u32 rtVal, u32 rsVal)
16021585

16031586
// Rd = Rt << Rs
16041587
const u32 rdVal = rtVal << rsVal;
1605-
PGXP_value ret;
1606-
u32 sh = rsVal & 0x1F;
1588+
const u32 sh = rsVal & 0x1F;
16071589
Validate(&g_state.pgxp_gpr[rt(instr)], rtVal);
16081590
Validate(&g_state.pgxp_gpr[rs(instr)], rsVal);
16091591

1610-
ret = g_state.pgxp_gpr[rt(instr)];
1611-
16121592
double x = f16Unsign(g_state.pgxp_gpr[rt(instr)].x);
16131593
double y = f16Unsign(g_state.pgxp_gpr[rt(instr)].y);
16141594
if (sh >= 32)
@@ -1636,9 +1616,9 @@ void CPU::PGXP::CPU_SLLV(u32 instr, u32 rtVal, u32 rsVal)
16361616
y = f16Sign(y);
16371617
}
16381618

1619+
PGXP_value ret = g_state.pgxp_gpr[rt(instr)];
16391620
ret.x = (float)x;
16401621
ret.y = (float)y;
1641-
16421622
ret.value = rdVal;
16431623
g_state.pgxp_gpr[rd(instr)] = ret;
16441624
}
@@ -1649,13 +1629,10 @@ void CPU::PGXP::CPU_SRLV(u32 instr, u32 rtVal, u32 rsVal)
16491629

16501630
// Rd = Rt >> Sa
16511631
const u32 rdVal = rtVal >> rsVal;
1652-
PGXP_value ret;
1653-
u32 sh = rsVal & 0x1F;
1632+
const u32 sh = rsVal & 0x1F;
16541633
Validate(&g_state.pgxp_gpr[rt(instr)], rtVal);
16551634
Validate(&g_state.pgxp_gpr[rs(instr)], rsVal);
16561635

1657-
ret = g_state.pgxp_gpr[rt(instr)];
1658-
16591636
double x = g_state.pgxp_gpr[rt(instr)].x, y = f16Unsign(g_state.pgxp_gpr[rt(instr)].y);
16601637

16611638
psx_value iX;
@@ -1703,9 +1680,9 @@ void CPU::PGXP::CPU_SRLV(u32 instr, u32 rtVal, u32 rsVal)
17031680
x = f16Sign(x);
17041681
y = f16Sign(y);
17051682

1683+
PGXP_value ret = g_state.pgxp_gpr[rt(instr)];
17061684
ret.x = (float)x;
17071685
ret.y = (float)y;
1708-
17091686
ret.value = rdVal;
17101687
g_state.pgxp_gpr[rd(instr)] = ret;
17111688
}
@@ -1716,13 +1693,10 @@ void CPU::PGXP::CPU_SRAV(u32 instr, u32 rtVal, u32 rsVal)
17161693

17171694
// Rd = Rt >> Sa
17181695
const u32 rdVal = static_cast<u32>(static_cast<s32>(rtVal) >> rsVal);
1719-
PGXP_value ret;
1720-
u32 sh = rsVal & 0x1F;
1696+
const u32 sh = rsVal & 0x1F;
17211697
Validate(&g_state.pgxp_gpr[rt(instr)], rtVal);
17221698
Validate(&g_state.pgxp_gpr[rs(instr)], rsVal);
17231699

1724-
ret = g_state.pgxp_gpr[rt(instr)];
1725-
17261700
double x = g_state.pgxp_gpr[rt(instr)].x, y = g_state.pgxp_gpr[rt(instr)].y;
17271701

17281702
psx_value iX;
@@ -1767,12 +1741,11 @@ void CPU::PGXP::CPU_SRAV(u32 instr, u32 rtVal, u32 rsVal)
17671741
else
17681742
y = y / (1 << sh);
17691743

1744+
PGXP_value ret = g_state.pgxp_gpr[rt(instr)];
17701745
x = f16Sign(x);
17711746
y = f16Sign(y);
1772-
17731747
ret.x = (float)x;
17741748
ret.y = (float)y;
1775-
17761749
ret.value = rdVal;
17771750
g_state.pgxp_gpr[rd(instr)] = ret;
17781751
}

0 commit comments

Comments
 (0)