diff options
author | Russ Cox <rsc@golang.org> | 2014-10-29 11:45:01 -0400 |
---|---|---|
committer | Russ Cox <rsc@golang.org> | 2014-10-29 11:45:01 -0400 |
commit | cc517ca5f7183e7f5d91bf75897b23cc0f4ed04f (patch) | |
tree | de12ff4332f39303ab2a6dbfa735071249ea1188 /src/cmd/gc | |
parent | 7d8c40f1a65329094210933bca66b8862b0c28b8 (diff) | |
parent | 05d42f8a61328aa7ea55887f601286b597caf0da (diff) | |
download | go-cc517ca5f7183e7f5d91bf75897b23cc0f4ed04f.tar.gz |
[dev.power64] all: merge default (dd5014ed9b01) into dev.power64
Still passes on amd64.
LGTM=austin
R=austin
CC=golang-codereviews
https://codereview.appspot.com/165110043
Diffstat (limited to 'src/cmd/gc')
-rw-r--r-- | src/cmd/gc/pgen.c | 4 | ||||
-rw-r--r-- | src/cmd/gc/popt.c | 4 | ||||
-rw-r--r-- | src/cmd/gc/walk.c | 7 |
3 files changed, 13 insertions, 2 deletions
diff --git a/src/cmd/gc/pgen.c b/src/cmd/gc/pgen.c index 39028e3f8..259cec85a 100644 --- a/src/cmd/gc/pgen.c +++ b/src/cmd/gc/pgen.c @@ -471,7 +471,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); @@ -528,7 +528,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 993bb2482..6e6db88ef 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; diff --git a/src/cmd/gc/walk.c b/src/cmd/gc/walk.c index ff9b36208..d4d0f449c 100644 --- a/src/cmd/gc/walk.c +++ b/src/cmd/gc/walk.c @@ -3301,6 +3301,9 @@ walkrotate(Node **np) int w, sl, sr, s; Node *l, *r; Node *n; + + if(thechar == '9') + return; n = *np; @@ -3426,6 +3429,10 @@ walkdiv(Node **np, NodeList **init) Type *twide; Magic m; + // TODO(minux) + if(thechar == '9') + return; + n = *np; if(n->right->op != OLITERAL) return; |