diff options
author | Austin Clements <austin@google.com> | 2014-10-22 15:51:54 -0400 |
---|---|---|
committer | Austin Clements <austin@google.com> | 2014-10-22 15:51:54 -0400 |
commit | fc92f8a400cf3e4d053940e0b86b72d6de27d67a (patch) | |
tree | ad0b517f2a9cd798c909e59d982b9061f16c0348 /src/cmd/gc | |
parent | 48b04a95e5f719cbef174124780dce00bb410c2c (diff) | |
parent | b8d4cd490ddd8ba298b5347d3e72316df768565c (diff) | |
download | go-fc92f8a400cf3e4d053940e0b86b72d6de27d67a.tar.gz |
[dev.power64] all: merge default into dev.power64
This brings dev.power64 up-to-date with the current tip of
default. go_bootstrap is still panicking with a bad defer
when initializing the runtime (even on amd64).
LGTM=rsc
R=rsc
CC=golang-codereviews
https://codereview.appspot.com/152570049
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 7649728d3..2520343bf 100644 --- a/src/cmd/gc/walk.c +++ b/src/cmd/gc/walk.c @@ -3374,6 +3374,9 @@ walkrotate(Node **np) int w, sl, sr, s; Node *l, *r; Node *n; + + if(thechar == '9') + return; n = *np; @@ -3499,6 +3502,10 @@ walkdiv(Node **np, NodeList **init) Type *twide; Magic m; + // TODO(minux) + if(thechar == '9') + return; + n = *np; if(n->right->op != OLITERAL) return; |