Răsfoiți Sursa

removed 64 bit multiplication which went to the compiler

git-svn-id: https://svn.inf.ethz.ch/svn/lecturers/a2/trunk@8311 8c9fc860-2736-0410-a75d-ab315db34111
felixf 7 ani în urmă
părinte
comite
320d1089f3
1 a modificat fișierele cu 0 adăugiri și 76 ștergeri
  1. 0 76
      source/ARM.Builtins.Mod

+ 0 - 76
source/ARM.Builtins.Mod

@@ -174,82 +174,6 @@ TYPE
 		STR R0, [R3,#0] ; remainder := R0
 	END DivModU32;
 
-	(**
-		Signed 64-bit multiplication. Adapted version based on the original code
-		from "Runtime ABI for the ARM Cortex-M0" (https://github.com/bobbl/libaeabi-cortexm0/blob/master/lmul.S)
-
-		/* Runtime ABI for the ARM Cortex-M0
-		 * lmul.S: 64 bit multiplication
-		 *
-		 * Copyright (c) 2013 Jörg Mische <bobbl@gmx.de>
-		 *
-		 * Permission to use, copy, modify, and/or distribute this software for any
-		 * purpose with or without fee is hereby granted, provided that the above
-		 * copyright notice and this permission notice appear in all copies.
-		 *
-		 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
-		 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
-		 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
-		 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-		 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-		 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
-		 * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-		 */
-
-		Multiply r1:r0 and r3:r2 and return the product in r1:r0
-		Can also be used for unsigned long product
-	*)
-	PROCEDURE MulS64*(x, y: HUGEINT): HUGEINT;
-	CODE
-		ldr r0, [FP,#x]
-		ldr r1, [FP,#x+4]
-
-		ldr r2, [FP,#y]
-		ldr r3, [FP,#y+4]
-
-		muls	r1, r1, r2
-		muls	r3, r3, r0
-		adds	r1, r1, r3
-
-		lsrs	r3, r0, #16
-		lsrs	r4, r2, #16
-		muls	r3, r3, r4
-		adds	r1, r1, r3
-
-		lsrs	r3, r0, #16
-		uxth	r0, r0
-		uxth	r2, r2
-		muls	r3, r3, r2
-		muls	r4, r4, r0
-		muls	r0, r0, r2
-
-		movs	r2, #0
-		adds	r3, r3, r4
-		adcs	r2, r2, r2
-		lsls	r2, r2, #16
-		adds	r1, r1, r2
-
-		lsls	r2, r3, #16
-		lsrs	r3, r3, #16
-		adds	r0, r0, r2
-		adcs	r1, r1, r3
-
-	END MulS64;
-	
-	PROCEDURE MulU64*(x, y: UHUGEINT): UHUGEINT;
-	CODE
-		ldr r0, [FP,#x]
-		ldr r1, [FP,#x+4]
-
-		ldr r2, [FP,#y]
-		ldr r3, [FP,#y+4]
-
-		mul r3, r0, r3 ; r3 := xlo * yhi
-		mla r3, r1, r2, r3 ; r3 := r3 + xhi * ylo
-		umull r0, r1, r0, r2 ; r0 := lo(xlo * ylo); r1 := hi(xlo * ylo)
-		add r1, r1, r3 ; r1 := r1 + r3
-	END MulU64;
-
 	(* signed division and modulus
 	- note: this implements the mathematical definition of DIV and MOD in contrast to the symmetric one
 	*)