diff options
author | LDj3SNuD <35856442+LDj3SNuD@users.noreply.github.com> | 2022-10-19 04:08:34 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-10-19 02:08:34 +0000 |
commit | 62585755fdd79a95a1e276a7ba742c2d7a9bed54 (patch) | |
tree | fdc3f2b00e818ec39198bc279f0db1ff14457eb4 /ARMeilleure/Instructions | |
parent | 56621615b1ca52822141862d660a661054fd6694 (diff) |
Do not clear the rejit queue when overlaps count is equal to 0. (#3721)1.1.319
* Do not clear the rejit queue when overlaps count is equal to 0.
* Ptc and PtcProfiler must be invalidated.
* Revert "Ptc and PtcProfiler must be invalidated."
This reverts commit f5b0ad9d7dc3c0b3a0da184de4d04d7234939c81.
* Fix #3710 slow path due to #3701.
Diffstat (limited to 'ARMeilleure/Instructions')
-rw-r--r-- | ARMeilleure/Instructions/InstEmitSimdCvt32.cs | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/ARMeilleure/Instructions/InstEmitSimdCvt32.cs b/ARMeilleure/Instructions/InstEmitSimdCvt32.cs index ba713feb..f3f23958 100644 --- a/ARMeilleure/Instructions/InstEmitSimdCvt32.cs +++ b/ARMeilleure/Instructions/InstEmitSimdCvt32.cs @@ -296,27 +296,33 @@ namespace ARMeilleure.Instructions { if (op.Op) { - // Convert to half + // Convert to half. Operand src = ExtractScalar(context, op.Size == 1 ? OperandType.FP64 : OperandType.FP32, op.Vm); MethodInfo method = op.Size == 1 ? typeof(SoftFloat64_16).GetMethod(nameof(SoftFloat64_16.FPConvert)) : typeof(SoftFloat32_16).GetMethod(nameof(SoftFloat32_16.FPConvert)); + + context.StoreToContext(); Operand res = context.Call(method, src); + context.LoadFromContext(); InsertScalar16(context, op.Vd, op.T, res); } else { - // Convert from half + // Convert from half. Operand src = ExtractScalar16(context, op.Vm, op.T); MethodInfo method = op.Size == 1 ? typeof(SoftFloat16_64).GetMethod(nameof(SoftFloat16_64.FPConvert)) : typeof(SoftFloat16_32).GetMethod(nameof(SoftFloat16_32.FPConvert)); + + context.StoreToContext(); Operand res = context.Call(method, src); + context.LoadFromContext(); InsertScalar(context, op.Vd, res); } |