diff --git a/kernel/mips64/dnrm2.S b/kernel/mips64/dnrm2.S index a095e0541..0ccc781e1 100644 --- a/kernel/mips64/dnrm2.S +++ b/kernel/mips64/dnrm2.S @@ -68,6 +68,7 @@ #define ALPHA $f16 #define max $f17 +#define INF $f18 PROLOGUE @@ -86,6 +87,11 @@ move XX, X NOP + //Init INF + lui TEMP, 0x7FF0 + dsll TEMP, TEMP, 32 + MTC1 TEMP, INF + LD a1, 0 * SIZE(X) daddiu N, N, -1 @@ -255,6 +261,9 @@ div.d ALPHA, ALPHA, s1 MOV max, s1 + CMPEQ $fcc0, ALPHA, INF + bc1t $fcc0, .L999 + MOV s1, a1 MOV s2, a1 MOV s3, a1