From: Russ Cox Date: Wed, 23 Feb 2011 02:10:02 +0000 (-0500) Subject: arm: fix build X-Git-Tag: weekly.2011-02-24~36 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=bdbea6e41029bd4d4efd2265710c70ccfe36239a;p=gostls13.git arm: fix build Changes on laptop were not sync'ed to machine where I ran hg submit. R=r CC=golang-dev https://golang.org/cl/4195048 --- diff --git a/src/cmd/5l/noop.c b/src/cmd/5l/noop.c index da9f858199..a5e66f0380 100644 --- a/src/cmd/5l/noop.c +++ b/src/cmd/5l/noop.c @@ -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: diff --git a/src/pkg/runtime/chan.c b/src/pkg/runtime/chan.c index 28c7d7320a..3177c2295b 100644 --- a/src/pkg/runtime/chan.c +++ b/src/pkg/runtime/chan.c @@ -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);