Fold ZeroExtend8/16/32 imm32/64 (#1358)

* Fold ZeroExtend8/16/32 imm32/64

* Increment PTC version
This commit is contained in:
Ficture Seven 2020-07-11 05:00:41 +04:00 committed by GitHub
parent 7639bb2e86
commit 0195d0938d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 34 additions and 1 deletions

View file

@ -206,6 +206,39 @@ namespace ARMeilleure.CodeGen.Optimizations
} }
break; break;
case Instruction.ZeroExtend16:
if (type == OperandType.I32)
{
EvaluateUnaryI32(operation, (x) => (ushort)x);
}
else if (type == OperandType.I64)
{
EvaluateUnaryI64(operation, (x) => (ushort)x);
}
break;
case Instruction.ZeroExtend32:
if (type == OperandType.I32)
{
EvaluateUnaryI32(operation, (x) => x);
}
else if (type == OperandType.I64)
{
EvaluateUnaryI64(operation, (x) => (uint)x);
}
break;
case Instruction.ZeroExtend8:
if (type == OperandType.I32)
{
EvaluateUnaryI32(operation, (x) => (byte)x);
}
else if (type == OperandType.I64)
{
EvaluateUnaryI64(operation, (x) => (byte)x);
}
break;
case Instruction.Subtract: case Instruction.Subtract:
if (type == OperandType.I32) if (type == OperandType.I32)
{ {

View file

@ -20,7 +20,7 @@ namespace ARMeilleure.Translation.PTC
{ {
private const string HeaderMagic = "PTChd"; private const string HeaderMagic = "PTChd";
private const int InternalVersion = 4; //! To be incremented manually for each change to the ARMeilleure project. private const int InternalVersion = 5; //! To be incremented manually for each change to the ARMeilleure project.
private const string BaseDir = "Ryujinx"; private const string BaseDir = "Ryujinx";