summaryrefslogtreecommitdiff
path: root/src/liblink
diff options
context:
space:
mode:
authorRuss Cox <rsc@golang.org>2014-08-18 22:24:15 -0400
committerRuss Cox <rsc@golang.org>2014-08-18 22:24:15 -0400
commitebe8a09fb603d9510cb982a6c11a3e1638f7f8fb (patch)
tree53eff49d42fe66fc0557ef3371b5fffa88791d02 /src/liblink
parenta78e6cc8d5fffdc680350684a9c0d92d4eaf6328 (diff)
downloadgo-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>
Diffstat (limited to 'src/liblink')
-rw-r--r--src/liblink/list9.c2
-rw-r--r--src/liblink/obj9.c4
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;
}
}