Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public static class OpCodeUtility
- {
- // Values in sync with 4.1.0.13850.
- public const int MaxOpCode = ushort.MaxValue;
- public static int? GetJamOpcode(int fullOpCode)
- {
- if (IsJamOpCode(fullOpCode))
- return ((fullOpCode & 0x8000) >> 8) | fullOpCode & 3 | ((fullOpCode & 0x3800) >> 7) | ((fullOpCode & 0x180) >> 5);
- return null;
- }
- public static int? CompressOpcode(int opCode)
- {
- if ((opCode & 0x4C9) == 0x440)
- return (((opCode & 0xF800) >> 5) | ((opCode & 0x300) >> 4) | ((opCode & 0x6) >> 1) | ((opCode & 0x30) >> 2));
- return null;
- }
- public static bool IsJamOpCode(int fullOpCode)
- {
- return (fullOpCode & 0x467C) == 0x608;
- }
- public static IEnumerable<int> GetCondensedOpCodes(int opCode)
- {
- for (var i = 1; i < MaxOpCode; i++)
- if (CompressOpcode(i) == opCode)
- yield return i;
- }
- }
Add Comment
Please, Sign In to add comment