]> Cypherpunks repositories - gostls13.git/commitdiff
arm: fix build
authorRuss Cox <rsc@golang.org>
Wed, 23 Feb 2011 02:10:02 +0000 (21:10 -0500)
committerRuss Cox <rsc@golang.org>
Wed, 23 Feb 2011 02:10:02 +0000 (21:10 -0500)
Changes on laptop were not sync'ed to machine
where I ran hg submit.

R=r
CC=golang-dev
https://golang.org/cl/4195048

src/cmd/5l/noop.c
src/pkg/runtime/chan.c

index da9f858199d0bad3c3e4b1af37520cb652a6d635..a5e66f0380fa18ae8acbeaa549f43267b0a7b5c6 100644 (file)
@@ -659,7 +659,7 @@ noops(void)
                                q1->reg = NREG;
                                q1->to.type = D_REG;
                                q1->to.reg = REGSP;
-                               p->spadj = 8;
+                               q1->spadj = 8;
        
                                break;
                        case AMOVW:
index 28c7d7320a89b75d3b7f42ee79280ae02823dfb3..3177c2295b5959517e01d885def867153e7ed8a2 100644 (file)
@@ -599,31 +599,29 @@ runtime·selectrecv(Select *sel, Hchan *c, ...)
 }
 
 
-static void selectdefault(Select**);
+static void selectdefault(Select*, void*);
 
 // selectdefault(sel *byte) (selected bool);
 #pragma textflag 7
 void
 runtime·selectdefault(Select *sel, ...)
 {
-       selectdefault(&sel);
+       selectdefault(sel, runtime·getcallerpc(&sel));
 }
 
 static void
-selectdefault(Select **selp)
+selectdefault(Select *sel, void *callerpc)
 {
-       Select *sel;
        int32 i;
        Scase *cas;
 
-       sel = *selp;
        i = sel->ncase;
        if(i >= sel->tcase)
                runtime·throw("selectdefault: too many cases");
        sel->ncase = i+1;
        cas = runtime·mal(sizeof *cas);
        sel->scase[i] = cas;
-       cas->pc = runtime·getcallerpc(selp);
+       cas->pc = callerpc;
        cas->chan = nil;
 
        cas->so = runtime·rnd(sizeof(sel), Structrnd);
@@ -682,7 +680,7 @@ runtime·block(void)
        runtime·gosched();
 }
 
-static void selectgo(Select**);
+static void* selectgo(Select**);
 
 // selectgo(sel *byte);
 //
@@ -692,10 +690,10 @@ static void selectgo(Select**);
 void
 runtime·selectgo(Select *sel)
 {
-       selectgo(&sel);
+       runtime·setcallerpc(&sel, selectgo(&sel));
 }
 
-static void
+static void*
 selectgo(Select **selp)
 {
        Select *sel;
@@ -705,6 +703,7 @@ selectgo(Select **selp)
        SudoG *sg;
        G *gp;
        byte *as;
+       void *pc;
 
        sel = *selp;
        if(runtime·gcwaiting)
@@ -917,16 +916,18 @@ retc:
        selunlock(sel);
 
        // return to pc corresponding to chosen case
-       runtime·setcallerpc(selp, cas->pc);
+       
+       pc = cas->pc;
        as = (byte*)selp + cas->so;
        freesel(sel);
        *as = true;
-       return;
+       return pc;
 
 sclose:
        // send on closed channel
        selunlock(sel);
        runtime·panicstring("send on closed channel");
+       return nil;  // not reached
 }
 
 // closechan(sel *byte);