diff options
author | Andrey Sukharev <SukharevAndrey@users.noreply.github.com> | 2023-01-19 01:25:16 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-01-18 22:25:16 +0000 |
commit | ae4324032a48ee08a808354673f47536e76759d0 (patch) | |
tree | 90c7c6aceb14d095761a257a41e7dc6882d30d73 /ARMeilleure/Decoders/OpCodeTable.cs | |
parent | f449895e6d8af90f727de6590fd6120038c73986 (diff) |
Optimize string memory usage. Use Spans and StringBuilders where possible (#3933)1.1.572
* Optimize string memory usage. Use ReadOnlySpan<char> and StringBuilder where possible.
* Fix copypaste error
* Code generator review fixes
* Use if statement instead of switch
* Code style fixes
Co-authored-by: TSRBerry <20988865+TSRBerry@users.noreply.github.com>
* Another code style fix
* Styling fix
Co-authored-by: Mary-nyan <thog@protonmail.com>
* Styling fix
Co-authored-by: gdkchan <gab.dark.100@gmail.com>
Co-authored-by: TSRBerry <20988865+TSRBerry@users.noreply.github.com>
Co-authored-by: Mary-nyan <thog@protonmail.com>
Co-authored-by: gdkchan <gab.dark.100@gmail.com>
Diffstat (limited to 'ARMeilleure/Decoders/OpCodeTable.cs')
-rw-r--r-- | ARMeilleure/Decoders/OpCodeTable.cs | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/ARMeilleure/Decoders/OpCodeTable.cs b/ARMeilleure/Decoders/OpCodeTable.cs index 3f24986c..54abb141 100644 --- a/ARMeilleure/Decoders/OpCodeTable.cs +++ b/ARMeilleure/Decoders/OpCodeTable.cs @@ -1339,7 +1339,7 @@ namespace ARMeilleure.Decoders private static void SetT32(string encoding, InstName name, InstEmitter emitter, MakeOp makeOp) { - string reversedEncoding = encoding.Substring(16) + encoding.Substring(0, 16); + string reversedEncoding = $"{encoding.AsSpan(16)}{encoding.AsSpan(0, 16)}"; MakeOp reversedMakeOp = (inst, address, opCode) => makeOp(inst, address, (int)BitOperations.RotateRight((uint)opCode, 16)); @@ -1353,7 +1353,7 @@ namespace ARMeilleure.Decoders string thumbEncoding = encoding; if (thumbEncoding.StartsWith("<<<<")) { - thumbEncoding = "1110" + thumbEncoding.Substring(4); + thumbEncoding = $"1110{thumbEncoding.AsSpan(4)}"; } SetT32(thumbEncoding, name, emitter, makeOpT32); } @@ -1365,19 +1365,19 @@ namespace ARMeilleure.Decoders string thumbEncoding = encoding; if (thumbEncoding.StartsWith("11110100")) { - thumbEncoding = "11111001" + encoding.Substring(8); + thumbEncoding = $"11111001{encoding.AsSpan(8)}"; } else if (thumbEncoding.StartsWith("1111001x")) { - thumbEncoding = "111x1111" + encoding.Substring(8); + thumbEncoding = $"111x1111{encoding.AsSpan(8)}"; } else if (thumbEncoding.StartsWith("11110010")) { - thumbEncoding = "11101111" + encoding.Substring(8); + thumbEncoding = $"11101111{encoding.AsSpan(8)}"; } else if (thumbEncoding.StartsWith("11110011")) { - thumbEncoding = "11111111" + encoding.Substring(8); + thumbEncoding = $"11111111{encoding.AsSpan(8)}"; } else { |