]> Cypherpunks repositories - gostls13.git/commitdiff
runtime: adjust timediv to avoid _vasop; mark _subv okay
authorRuss Cox <rsc@golang.org>
Mon, 29 Jul 2013 20:42:07 +0000 (16:42 -0400)
committerRuss Cox <rsc@golang.org>
Mon, 29 Jul 2013 20:42:07 +0000 (16:42 -0400)
R=dvyukov
CC=golang-dev
https://golang.org/cl/12028046

src/pkg/runtime/runtime.c
src/pkg/runtime/vlrt_arm.c

index 03a9daf4c272a846ed7d4360e3abd3d6ffbf2419..5bca6f87b4410199201d7da05be5086b33e3597f 100644 (file)
@@ -429,7 +429,7 @@ runtime·timediv(int64 v, int32 div, int32 *rem)
        res = 0;
        for(bit = 0x40000000; bit != 0; bit >>= 1) {
                if(v >= (int64)bit*div) {
-                       v -= (int64)bit*div;
+                       v = v - (int64)bit*div;
                        res += bit;
                }
        }
index cc3b90963fc8e3840c2e70977e6faca0459bd495..11813f91c422b908d644fc66f90c0a94aa6d45a0 100644 (file)
@@ -66,27 +66,20 @@ void    runtime·abort(void);
 void
 _addv(Vlong *r, Vlong a, Vlong b)
 {
-       ulong lo, hi;
-
-       lo = a.lo + b.lo;
-       hi = a.hi + b.hi;
-       if(lo < a.lo)
-               hi++;
-       r->lo = lo;
-       r->hi = hi;
+       r->lo = a.lo + b.lo;
+       r->hi = a.hi + b.hi;
+       if(r->lo < a.lo)
+               r->hi++;
 }
 
+#pragma textflag 7
 void
 _subv(Vlong *r, Vlong a, Vlong b)
 {
-       ulong lo, hi;
-
-       lo = a.lo - b.lo;
-       hi = a.hi - b.hi;
-       if(lo > a.lo)
-               hi--;
-       r->lo = lo;
-       r->hi = hi;
+       r->lo = a.lo - b.lo;
+       r->hi = a.hi - b.hi;
+       if(r->lo > a.lo)
+               r->hi--;
 }
 
 void