From a05237f20ae6230238a9e44bc8bfc974e6d51422 Mon Sep 17 00:00:00 2001 From: =?utf8?q?R=C3=A9my=20Oudompheng?= Date: Wed, 31 Jul 2013 23:37:23 +0200 Subject: [PATCH] runtime: save 8 stack bytes in timediv on arm. Operations on int64 are very stack consuming with 5c. Fixes netbsd/arm build. Before: TEXT runtime.timediv+0(SB),7,$52-16 After: TEXT runtime.timediv+0(SB),7,$44-16 The stack usage is unchanged on 386: TEXT runtime.timediv+0(SB),7,$8-16 R=golang-dev, dvyukov, bradfitz CC=golang-dev https://golang.org/cl/12182044 --- src/pkg/runtime/runtime.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/pkg/runtime/runtime.c b/src/pkg/runtime/runtime.c index 5bca6f87b4..a0e9a194c6 100644 --- a/src/pkg/runtime/runtime.c +++ b/src/pkg/runtime/runtime.c @@ -421,16 +421,16 @@ runtime·timediv(int64 v, int32 div, int32 *rem) { int32 res, bit; - if(v >= div*0x7fffffffLL) { + if(v >= (int64)div*0x7fffffffLL) { if(rem != nil) *rem = 0; return 0x7fffffff; } res = 0; - for(bit = 0x40000000; bit != 0; bit >>= 1) { - if(v >= (int64)bit*div) { - v = v - (int64)bit*div; - res += bit; + for(bit = 30; bit >= 0; bit--) { + if(v >= ((int64)div<