From 28f8fdaf0f87c9bca2a79dd41536bd7ff2027e0c Mon Sep 17 00:00:00 2001 From: Martin Kroeker Date: Fri, 23 May 2025 14:59:59 +0200 Subject: [PATCH] support flag for NaN/Inf handling and fix scaling of NaN/Inf values --- kernel/arm64/zscal.S | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/kernel/arm64/zscal.S b/kernel/arm64/zscal.S index 4bd43320d6..93e51b70c1 100644 --- a/kernel/arm64/zscal.S +++ b/kernel/arm64/zscal.S @@ -33,7 +33,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #define INC_X x4 /* X stride */ #define I x5 /* loop variable */ #define X_COPY x6 /* Copy of X */ - +#define FLAG x7 /* NaN handling level */ /******************************************************************************* * Macro definitions *******************************************************************************/ @@ -217,11 +217,15 @@ zscal_begin: cmp N, xzr ble .Lzscal_kernel_L999 + ldr FLAG, [sp] + cmp FLAG, #1 + beq .Lzscal_kernel_R_non_zero + fcmp DA_R, #0.0 bne .Lzscal_kernel_R_non_zero - fcmp DA_I, #0.0 - beq .Lzscal_kernel_RI_zero +// fcmp DA_I, #0.0 +// beq .Lzscal_kernel_RI_zero // b .Lzscal_kernel_R_zero