diff --git a/Source/Mosa.Compiler.Framework/Transforms/Optimizations/Manual/Propagate/Move32Propagate.cs b/Source/Mosa.Compiler.Framework/Transforms/Optimizations/Manual/Propagate/Move32Propagate.cs index 3da54c99a3..ded3a520ca 100644 --- a/Source/Mosa.Compiler.Framework/Transforms/Optimizations/Manual/Propagate/Move32Propagate.cs +++ b/Source/Mosa.Compiler.Framework/Transforms/Optimizations/Manual/Propagate/Move32Propagate.cs @@ -18,6 +18,9 @@ public override bool Match(Context context, Transform transform) if (!context.Operand1.IsDefinedOnce) return false; + if (context.Operand1.IsPhysicalRegister) + return false; + return true; } diff --git a/Source/Mosa.Compiler.Framework/Transforms/Optimizations/Manual/Propagate/Move64Propagate.cs b/Source/Mosa.Compiler.Framework/Transforms/Optimizations/Manual/Propagate/Move64Propagate.cs index cf4689861b..4271b3801d 100644 --- a/Source/Mosa.Compiler.Framework/Transforms/Optimizations/Manual/Propagate/Move64Propagate.cs +++ b/Source/Mosa.Compiler.Framework/Transforms/Optimizations/Manual/Propagate/Move64Propagate.cs @@ -18,6 +18,9 @@ public override bool Match(Context context, Transform transform) if (!context.Operand1.IsDefinedOnce) return false; + if (context.Operand1.IsPhysicalRegister) + return false; + return true; } diff --git a/Source/Mosa.Compiler.Framework/Transforms/Optimizations/Manual/Propagate/MoveManagedPointerPropagate.cs b/Source/Mosa.Compiler.Framework/Transforms/Optimizations/Manual/Propagate/MoveManagedPointerPropagate.cs index d67fa839fd..4aa30ba706 100644 --- a/Source/Mosa.Compiler.Framework/Transforms/Optimizations/Manual/Propagate/MoveManagedPointerPropagate.cs +++ b/Source/Mosa.Compiler.Framework/Transforms/Optimizations/Manual/Propagate/MoveManagedPointerPropagate.cs @@ -18,6 +18,9 @@ public override bool Match(Context context, Transform transform) if (!context.Operand1.IsDefinedOnce) return false; + if (context.Operand1.IsPhysicalRegister) + return false; + return true; } diff --git a/Source/Mosa.Compiler.Framework/Transforms/Optimizations/Manual/Propagate/MoveObjectPropagate.cs b/Source/Mosa.Compiler.Framework/Transforms/Optimizations/Manual/Propagate/MoveObjectPropagate.cs index 11c963135a..62530dd7ff 100644 --- a/Source/Mosa.Compiler.Framework/Transforms/Optimizations/Manual/Propagate/MoveObjectPropagate.cs +++ b/Source/Mosa.Compiler.Framework/Transforms/Optimizations/Manual/Propagate/MoveObjectPropagate.cs @@ -18,6 +18,9 @@ public override bool Match(Context context, Transform transform) if (!context.Operand1.IsDefinedOnce) return false; + if (context.Operand1.IsPhysicalRegister) + return false; + return true; } diff --git a/Source/Mosa.Compiler.Framework/Transforms/Optimizations/Manual/Propagate/MoveR4Propagate.cs b/Source/Mosa.Compiler.Framework/Transforms/Optimizations/Manual/Propagate/MoveR4Propagate.cs index 7e7050445d..d2d2b54bf6 100644 --- a/Source/Mosa.Compiler.Framework/Transforms/Optimizations/Manual/Propagate/MoveR4Propagate.cs +++ b/Source/Mosa.Compiler.Framework/Transforms/Optimizations/Manual/Propagate/MoveR4Propagate.cs @@ -18,6 +18,9 @@ public override bool Match(Context context, Transform transform) if (!context.Operand1.IsDefinedOnce) return false; + if (context.Operand1.IsPhysicalRegister) + return false; + return true; } diff --git a/Source/Mosa.Compiler.Framework/Transforms/Optimizations/Manual/Propagate/MoveR8Propagate.cs b/Source/Mosa.Compiler.Framework/Transforms/Optimizations/Manual/Propagate/MoveR8Propagate.cs index c2118a7e43..0022055aaf 100644 --- a/Source/Mosa.Compiler.Framework/Transforms/Optimizations/Manual/Propagate/MoveR8Propagate.cs +++ b/Source/Mosa.Compiler.Framework/Transforms/Optimizations/Manual/Propagate/MoveR8Propagate.cs @@ -18,6 +18,9 @@ public override bool Match(Context context, Transform transform) if (!context.Operand1.IsDefinedOnce) return false; + if (context.Operand1.IsPhysicalRegister) + return false; + return true; } diff --git a/Source/Mosa.Compiler.Framework/Transforms/Optimizations/Manual/Propagate/Phi32Propagate.cs b/Source/Mosa.Compiler.Framework/Transforms/Optimizations/Manual/Propagate/Phi32Propagate.cs index 54ffc97925..686bffacbc 100644 --- a/Source/Mosa.Compiler.Framework/Transforms/Optimizations/Manual/Propagate/Phi32Propagate.cs +++ b/Source/Mosa.Compiler.Framework/Transforms/Optimizations/Manual/Propagate/Phi32Propagate.cs @@ -15,6 +15,9 @@ public override bool Match(Context context, Transform transform) if (context.OperandCount == 1) return true; + if (context.Operand1.IsPhysicalRegister) + return false; + var operand = context.Operand1; foreach (var op in context.Operands) diff --git a/Source/Mosa.Compiler.Framework/Transforms/Optimizations/Manual/Propagate/Phi64Propagate.cs b/Source/Mosa.Compiler.Framework/Transforms/Optimizations/Manual/Propagate/Phi64Propagate.cs index 18e24d7111..02766bcb31 100644 --- a/Source/Mosa.Compiler.Framework/Transforms/Optimizations/Manual/Propagate/Phi64Propagate.cs +++ b/Source/Mosa.Compiler.Framework/Transforms/Optimizations/Manual/Propagate/Phi64Propagate.cs @@ -15,6 +15,9 @@ public override bool Match(Context context, Transform transform) if (context.OperandCount == 1) return true; + if (context.Operand1.IsPhysicalRegister) + return false; + var operand = context.Operand1; foreach (var op in context.Operands) diff --git a/Source/Mosa.Compiler.Framework/Transforms/Optimizations/Manual/Propagate/PhiManagedPointerPropagate.cs b/Source/Mosa.Compiler.Framework/Transforms/Optimizations/Manual/Propagate/PhiManagedPointerPropagate.cs index a30c31cf22..3cf301d8be 100644 --- a/Source/Mosa.Compiler.Framework/Transforms/Optimizations/Manual/Propagate/PhiManagedPointerPropagate.cs +++ b/Source/Mosa.Compiler.Framework/Transforms/Optimizations/Manual/Propagate/PhiManagedPointerPropagate.cs @@ -15,6 +15,9 @@ public override bool Match(Context context, Transform transform) if (context.OperandCount == 1) return true; + if (context.Operand1.IsPhysicalRegister) + return false; + var operand = context.Operand1; foreach (var op in context.Operands) diff --git a/Source/Mosa.Compiler.Framework/Transforms/Optimizations/Manual/Propagate/PhiObjectPropagate.cs b/Source/Mosa.Compiler.Framework/Transforms/Optimizations/Manual/Propagate/PhiObjectPropagate.cs index 95f1dc1af6..448a09899e 100644 --- a/Source/Mosa.Compiler.Framework/Transforms/Optimizations/Manual/Propagate/PhiObjectPropagate.cs +++ b/Source/Mosa.Compiler.Framework/Transforms/Optimizations/Manual/Propagate/PhiObjectPropagate.cs @@ -15,6 +15,9 @@ public override bool Match(Context context, Transform transform) if (context.OperandCount == 1) return true; + if (context.Operand1.IsPhysicalRegister) + return false; + var operand = context.Operand1; foreach (var op in context.Operands) diff --git a/Source/Mosa.Compiler.Framework/Transforms/Optimizations/Manual/Propagate/PhiR4Propagate.cs b/Source/Mosa.Compiler.Framework/Transforms/Optimizations/Manual/Propagate/PhiR4Propagate.cs index 70852519a0..dea2852dc3 100644 --- a/Source/Mosa.Compiler.Framework/Transforms/Optimizations/Manual/Propagate/PhiR4Propagate.cs +++ b/Source/Mosa.Compiler.Framework/Transforms/Optimizations/Manual/Propagate/PhiR4Propagate.cs @@ -15,6 +15,9 @@ public override bool Match(Context context, Transform transform) if (context.OperandCount == 1) return true; + if (context.Operand1.IsPhysicalRegister) + return false; + var operand = context.Operand1; foreach (var op in context.Operands) diff --git a/Source/Mosa.Compiler.Framework/Transforms/Optimizations/Manual/Propagate/PhiR8Propagate.cs b/Source/Mosa.Compiler.Framework/Transforms/Optimizations/Manual/Propagate/PhiR8Propagate.cs index bb4f1f0ff7..a0ac3a7499 100644 --- a/Source/Mosa.Compiler.Framework/Transforms/Optimizations/Manual/Propagate/PhiR8Propagate.cs +++ b/Source/Mosa.Compiler.Framework/Transforms/Optimizations/Manual/Propagate/PhiR8Propagate.cs @@ -15,6 +15,9 @@ public override bool Match(Context context, Transform transform) if (context.OperandCount == 1) return true; + if (context.Operand1.IsPhysicalRegister) + return false; + var operand = context.Operand1; foreach (var op in context.Operands)