From: Shenghou Ma Date: Wed, 13 Aug 2014 00:57:32 +0000 (-0400) Subject: [dev.power64] cmd/gc: handle thechar=='9', disable nilopt() for now X-Git-Tag: go1.5beta1~2684^2~25^2~67 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=5e4989cf0a2a0d6fc0d0dbf6f476f20cf400e33b;p=gostls13.git [dev.power64] cmd/gc: handle thechar=='9', disable nilopt() for now LGTM=rsc R=rsc, iant, dave CC=golang-codereviews https://golang.org/cl/121630043 --- diff --git a/src/cmd/gc/pgen.c b/src/cmd/gc/pgen.c index cabba6824e..5ac46e774e 100644 --- a/src/cmd/gc/pgen.c +++ b/src/cmd/gc/pgen.c @@ -428,7 +428,7 @@ allocauto(Prog* ptxt) stksize = rnd(stksize, n->type->align); if(haspointers(n->type)) stkptrsize = stksize; - if(thechar == '5') + if(thechar == '5' || thechar == '9') stksize = rnd(stksize, widthptr); if(stksize >= (1ULL<<31)) { setlineno(curfn); @@ -485,7 +485,7 @@ cgen_checknil(Node *n) dump("checknil", n); fatal("bad checknil"); } - if((thechar == '5' && n->op != OREGISTER) || !n->addable || n->op == OLITERAL) { + if(((thechar == '5' || thechar == '9') && n->op != OREGISTER) || !n->addable || n->op == OLITERAL) { regalloc(®, types[tptr], n); cgen(n, ®); gins(ACHECKNIL, ®, N); diff --git a/src/cmd/gc/popt.c b/src/cmd/gc/popt.c index c8d60c5add..4c75e6c265 100644 --- a/src/cmd/gc/popt.c +++ b/src/cmd/gc/popt.c @@ -847,6 +847,10 @@ nilopt(Prog *firstp) Graph *g; int ncheck, nkill; + // TODO(minux): nilopt on power64 throw away seemly random segment of code. + if(thechar == '9') + return; + g = flowstart(firstp, sizeof(NilFlow)); if(g == nil) return;