diff options
author | Russ Cox <rsc@golang.org> | 2014-08-18 22:24:15 -0400 |
---|---|---|
committer | Russ Cox <rsc@golang.org> | 2014-08-18 22:24:15 -0400 |
commit | ebe8a09fb603d9510cb982a6c11a3e1638f7f8fb (patch) | |
tree | 53eff49d42fe66fc0557ef3371b5fffa88791d02 | |
parent | a78e6cc8d5fffdc680350684a9c0d92d4eaf6328 (diff) | |
download | go-ebe8a09fb603d9510cb982a6c11a3e1638f7f8fb.tar.gz |
[dev.power64] liblink: recognize add instruction as adjusting SP
LGTM=minux
R=minux
CC=golang-codereviews
https://codereview.appspot.com/128360043
Committer: Shenghou Ma <minux@golang.org>
-rw-r--r-- | src/liblink/list9.c | 2 | ||||
-rw-r--r-- | src/liblink/obj9.c | 4 |
2 files changed, 6 insertions, 0 deletions
diff --git a/src/liblink/list9.c b/src/liblink/list9.c index 9700a1684..9e205b7a9 100644 --- a/src/liblink/list9.c +++ b/src/liblink/list9.c @@ -125,6 +125,8 @@ Pconv(Fmt *fp) s += sprint(s, ",%D", &p->from3); sprint(s, ",%D", &p->to); } + if(p->spadj != 0) + return fmtprint(fp, "%s # spadj=%d", str, p->spadj); } return fmtstrcpy(fp, str); } diff --git a/src/liblink/obj9.c b/src/liblink/obj9.c index 28793676c..d0c14dfb5 100644 --- a/src/liblink/obj9.c +++ b/src/liblink/obj9.c @@ -617,6 +617,10 @@ addstacksplit(Link *ctxt, LSym *cursym) q->link = q1; break; + case AADD: + if(p->to.type == D_REG && p->to.reg == REGSP && p->from.type == D_CONST) + p->spadj = -p->from.offset; + break; } } |