From fc41e621e875838bb62a111ac8ad97fa39f2bb2b Mon Sep 17 00:00:00 2001 From: Fan Hongjian Date: Thu, 9 Jun 2011 17:19:08 -0400 Subject: math: add sqrt_arm.s and sqrtGoC.go as fallback to soft fp emulation 5a: add SQRTF and SQRTD 5l: add ASQRTF and ASQRTD Use ARMv7 VFP VSQRT instruction to speed up math.Sqrt R=rsc, dave, m CC=golang-dev https://golang.org/cl/4551082 --- src/pkg/runtime/arm/softfloat.c | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'src/pkg/runtime/arm/softfloat.c') diff --git a/src/pkg/runtime/arm/softfloat.c b/src/pkg/runtime/arm/softfloat.c index f91a6fc09b..c5da888743 100644 --- a/src/pkg/runtime/arm/softfloat.c +++ b/src/pkg/runtime/arm/softfloat.c @@ -357,6 +357,15 @@ stage3: // regd, regm are 4bit variables regd, regm, m->freghi[regd], m->freglo[regd]); break; + case 0xeeb10bc0: // D[regd] = sqrt D[regm] + math·sqrtGoC(getd(regm), &uval); + putd(regd, uval); + + if(trace) + runtime·printf("*** D[%d] = sqrt D[%d] %x-%x\n", + regd, regm, m->freghi[regd], m->freglo[regd]); + break; + case 0xeeb40bc0: // D[regd] :: D[regm] (CMPD) runtime·fcmp64c(getd(regd), getd(regm), &cmp, &nan); m->fflag = fstatus(nan, cmp); -- cgit v1.3