aboutsummaryrefslogtreecommitdiff
path: root/ChocolArm64/Translation
diff options
context:
space:
mode:
authorLDj3SNuD <35856442+LDj3SNuD@users.noreply.github.com>2019-03-23 19:50:19 +0100
committergdkchan <gab.dark.100@gmail.com>2019-03-23 15:50:19 -0300
commitc106ae994425e384a9ad8d6d00747af71e8475a6 (patch)
treea40b30d78cff602f68597493f71118ff7fe47826 /ChocolArm64/Translation
parent1b2e430e887fc2eac372c46255c18ecceb032fd1 (diff)
Add Tbl_V Sse opt. with Tests. (#651)
* Add v4, v5, v30, v31 required for Tbl_V Tests. * Add Tests for Tbl_V. * Add Tbl_V Sse opt.. * Nit. * Small opt. on comparison constant vector. * Nit. * Add EmitLd/Stvectmp2/3. * Nit.
Diffstat (limited to 'ChocolArm64/Translation')
-rw-r--r--ChocolArm64/Translation/ILEmitterCtx.cs10
1 files changed, 9 insertions, 1 deletions
diff --git a/ChocolArm64/Translation/ILEmitterCtx.cs b/ChocolArm64/Translation/ILEmitterCtx.cs
index f39bd371..8804521c 100644
--- a/ChocolArm64/Translation/ILEmitterCtx.cs
+++ b/ChocolArm64/Translation/ILEmitterCtx.cs
@@ -61,7 +61,9 @@ namespace ChocolArm64.Translation
//Vectors are part of another "set" of locals.
private const int VecGpTmp1Index = ReservedLocalsCount + 0;
- private const int UserVecTempStart = ReservedLocalsCount + 1;
+ private const int VecGpTmp2Index = ReservedLocalsCount + 1;
+ private const int VecGpTmp3Index = ReservedLocalsCount + 2;
+ private const int UserVecTempStart = ReservedLocalsCount + 3;
private static int _userIntTempCount;
private static int _userVecTempCount;
@@ -629,6 +631,12 @@ namespace ChocolArm64.Translation
public void EmitLdvectmp() => EmitLdvec(VecGpTmp1Index);
public void EmitStvectmp() => EmitStvec(VecGpTmp1Index);
+ public void EmitLdvectmp2() => EmitLdvec(VecGpTmp2Index);
+ public void EmitStvectmp2() => EmitStvec(VecGpTmp2Index);
+
+ public void EmitLdvectmp3() => EmitLdvec(VecGpTmp3Index);
+ public void EmitStvectmp3() => EmitStvec(VecGpTmp3Index);
+
public void EmitLdint(int index) => Ldloc(index, VarType.Int);
public void EmitStint(int index) => Stloc(index, VarType.Int);