aboutsummaryrefslogtreecommitdiff
path: root/ARMeilleure/Decoders
diff options
context:
space:
mode:
authorjhorv <38920027+jhorv@users.noreply.github.com>2023-03-11 15:05:48 -0500
committerGitHub <noreply@github.com>2023-03-11 17:05:48 -0300
commit23c844b2aa84a65e573dcc023d19b8f5294a8baf (patch)
treebf9d41ee0f94b833bb52b6b0016ca99a991cd441 /ARMeilleure/Decoders
parent81691b9e3716c7f7f8b243f0f4ded1d90c526a4e (diff)
Misc performance tweaks (#4509)
* use Array.Empty() where instead of allocating new zero-length arrays * structure for loops in a way that the JIT will elide array/Span bounds checking * avoiding function calls in for loop condition tests * avoid LINQ in a hot path * conform with code style * fix mistake in GetNextWaitingObject() * fix GetNextWaitingObject() possibility of returning null if all list items have TimePoint == long.MaxValue * make GetNextWaitingObject() behave FIFO behavior for multiple items with the same TimePoint
Diffstat (limited to 'ARMeilleure/Decoders')
-rw-r--r--ARMeilleure/Decoders/DecoderHelper.cs4
-rw-r--r--ARMeilleure/Decoders/OpCodeTable.cs6
2 files changed, 5 insertions, 5 deletions
diff --git a/ARMeilleure/Decoders/DecoderHelper.cs b/ARMeilleure/Decoders/DecoderHelper.cs
index 38f98c39..5227e6a1 100644
--- a/ARMeilleure/Decoders/DecoderHelper.cs
+++ b/ARMeilleure/Decoders/DecoderHelper.cs
@@ -17,7 +17,7 @@ namespace ARMeilleure.Decoders
{
uint[] tbl = new uint[256];
- for (int idx = 0; idx < 256; idx++)
+ for (int idx = 0; idx < tbl.Length; idx++)
{
tbl[idx] = ExpandImm8ToFP32((uint)idx);
}
@@ -29,7 +29,7 @@ namespace ARMeilleure.Decoders
{
ulong[] tbl = new ulong[256];
- for (int idx = 0; idx < 256; idx++)
+ for (int idx = 0; idx < tbl.Length; idx++)
{
tbl[idx] = ExpandImm8ToFP64((ulong)idx);
}
diff --git a/ARMeilleure/Decoders/OpCodeTable.cs b/ARMeilleure/Decoders/OpCodeTable.cs
index 54abb141..8464ce55 100644
--- a/ARMeilleure/Decoders/OpCodeTable.cs
+++ b/ARMeilleure/Decoders/OpCodeTable.cs
@@ -1301,7 +1301,7 @@ namespace ARMeilleure.Decoders
{
List<InstInfo>[] temp = new List<InstInfo>[FastLookupSize];
- for (int index = 0; index < FastLookupSize; index++)
+ for (int index = 0; index < temp.Length; index++)
{
temp[index] = new List<InstInfo>();
}
@@ -1311,7 +1311,7 @@ namespace ARMeilleure.Decoders
int mask = ToFastLookupIndex(inst.Mask);
int value = ToFastLookupIndex(inst.Value);
- for (int index = 0; index < FastLookupSize; index++)
+ for (int index = 0; index < temp.Length; index++)
{
if ((index & mask) == value)
{
@@ -1320,7 +1320,7 @@ namespace ARMeilleure.Decoders
}
}
- for (int index = 0; index < FastLookupSize; index++)
+ for (int index = 0; index < temp.Length; index++)
{
table[index] = temp[index].ToArray();
}