shithub: riscv

Download patch

ref: fbe78d46877a32a8d825d8c93acfdc4466f8ffc3
parent: 1cff9ab4e8412d5c6b6a3cbca720fbc4bcccecd9
author: cinap_lenrek <[email protected]>
date: Wed Mar 25 10:19:05 EDT 2015

mpdigdiv.s: aaaaand its gone!

--- /dev/null
+++ b/sys/src/libmp/mips/_mpdigdiv.s
@@ -1,0 +1,41 @@
+/*
+ *  This only works on R[45]000 chips that allow 64 bit
+ *  integer arithmetic even when uding 32 bit addresses
+ *
+ *	R1 = dividend*
+ *	R2 = dividend[low]
+ *	R3 = dividend[high]
+ *	R4 = 32 bit divisor
+ *	R5 = quotient*
+ */
+TEXT	mpdigdiv(SB),$0
+
+	MOVW	0(R1),R2
+	MOVW	4(R1),R3
+	MOVW	divisor+4(FP),R4
+	MOVW	quotient+8(FP),R5
+
+	/* divisor == 0 */
+	BEQ	R4,_digovfl
+
+	/* dividend >= 2^32 * divisor */
+	SGTU	R4,R3,R7
+	BEQ	R7,_digovfl
+
+_digdiv1:
+	SLLV	$32,R2
+	SLLV	$32,R3
+	SRLV	$32,R2
+	ADDVU	R2,R3
+	SLLV	$32,R4
+	SRLV	$32,R4
+	DIVVU	R4,R3
+	MOVW	LO,R1
+	MOVW	R1,0(R5)
+	RET
+
+_digovfl:
+	MOVW	$-1,R1
+	MOVW	R1,0(R5)
+	RET
+
--- a/sys/src/libmp/mips/mpdigdiv.s
+++ /dev/null
@@ -1,41 +1,0 @@
-/*
- *  This only works on R[45]000 chips that allow 64 bit
- *  integer arithmetic even when uding 32 bit addresses
- *
- *	R1 = dividend*
- *	R2 = dividend[low]
- *	R3 = dividend[high]
- *	R4 = 32 bit divisor
- *	R5 = quotient*
- */
-TEXT	mpdigdiv(SB),$0
-
-	MOVW	0(R1),R2
-	MOVW	4(R1),R3
-	MOVW	divisor+4(FP),R4
-	MOVW	quotient+8(FP),R5
-
-	/* divisor == 0 */
-	BEQ	R4,_digovfl
-
-	/* dividend >= 2^32 * divisor */
-	SGTU	R4,R3,R7
-	BEQ	R7,_digovfl
-
-_digdiv1:
-	SLLV	$32,R2
-	SLLV	$32,R3
-	SRLV	$32,R2
-	ADDVU	R2,R3
-	SLLV	$32,R4
-	SRLV	$32,R4
-	DIVVU	R4,R3
-	MOVW	LO,R1
-	MOVW	R1,0(R5)
-	RET
-
-_digovfl:
-	MOVW	$-1,R1
-	MOVW	R1,0(R5)
-	RET
-