aboutsummaryrefslogtreecommitdiff
path: root/ARMeilleure/Instructions/SoftFloat.cs
diff options
context:
space:
mode:
authorLDj3SNuD <35856442+LDj3SNuD@users.noreply.github.com>2019-12-07 13:45:32 +0100
committerAc_K <Acoustik666@gmail.com>2019-12-07 13:45:32 +0100
commit8c85bdf2edf5ebd7965fbbd08106f2e8d877d73e (patch)
tree1f112a5d4a6dc0b4c8882b8151623e006172bb6c /ARMeilleure/Instructions/SoftFloat.cs
parentd562ba37a0bc603e9719bb36dc9e7e9bf4406687 (diff)
Implemented fast paths for: (#841)
* cpu-misc_opt * B = ~b * ;
Diffstat (limited to 'ARMeilleure/Instructions/SoftFloat.cs')
-rw-r--r--ARMeilleure/Instructions/SoftFloat.cs32
1 files changed, 30 insertions, 2 deletions
diff --git a/ARMeilleure/Instructions/SoftFloat.cs b/ARMeilleure/Instructions/SoftFloat.cs
index af22c85d..256bc5b9 100644
--- a/ARMeilleure/Instructions/SoftFloat.cs
+++ b/ARMeilleure/Instructions/SoftFloat.cs
@@ -1089,8 +1089,6 @@ namespace ARMeilleure.Instructions
public static float FPMulSub(float valueA, float value1, float value2)
{
- ExecutionContext context = NativeInterface.GetContext();
-
value1 = value1.FPNeg();
return FPMulAdd(valueA, value1, value2);
@@ -1138,6 +1136,21 @@ namespace ARMeilleure.Instructions
return result;
}
+ public static float FPNegMulAdd(float valueA, float value1, float value2)
+ {
+ valueA = valueA.FPNeg();
+ value1 = value1.FPNeg();
+
+ return FPMulAdd(valueA, value1, value2);
+ }
+
+ public static float FPNegMulSub(float valueA, float value1, float value2)
+ {
+ valueA = valueA.FPNeg();
+
+ return FPMulAdd(valueA, value1, value2);
+ }
+
public static float FPRecipEstimate(float value)
{
ExecutionContext context = NativeInterface.GetContext();
@@ -2196,6 +2209,21 @@ namespace ARMeilleure.Instructions
return result;
}
+ public static double FPNegMulAdd(double valueA, double value1, double value2)
+ {
+ valueA = valueA.FPNeg();
+ value1 = value1.FPNeg();
+
+ return FPMulAdd(valueA, value1, value2);
+ }
+
+ public static double FPNegMulSub(double valueA, double value1, double value2)
+ {
+ valueA = valueA.FPNeg();
+
+ return FPMulAdd(valueA, value1, value2);
+ }
+
public static double FPRecipEstimate(double value)
{
ExecutionContext context = NativeInterface.GetContext();