diff options
author | Russ Cox <rsc@golang.org> | 2013-09-13 03:50:50 +0000 |
---|---|---|
committer | Russ Cox <rsc@golang.org> | 2013-09-13 03:50:50 +0000 |
commit | 7c881f3b35baeb92ffbe549d92d83a9289479864 (patch) | |
tree | d54df36a7ae653da3eb5cad3eb593ab2a6375c46 /src/cmd/5l | |
parent | 7c639d70a92ce205f146e1c138cef53ed41de6ed (diff) | |
download | go-7c881f3b35baeb92ffbe549d92d83a9289479864.tar.gz |
cmd/5l: fix handling of RET.EQ in wrapper function
Keith is too clever for me.
R=ken2
CC=golang-dev, khr
https://codereview.appspot.com/13272050
Diffstat (limited to 'src/cmd/5l')
-rw-r--r-- | src/cmd/5l/noop.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/cmd/5l/noop.c b/src/cmd/5l/noop.c index 0bd76040d..fb70599b5 100644 --- a/src/cmd/5l/noop.c +++ b/src/cmd/5l/noop.c @@ -321,6 +321,13 @@ noops(void) } if(cursym->text->reg & WRAPPER) { + int cond; + + // Preserve original RET's cond, to allow RET.EQ + // in the implementation of reflect.call. + cond = p->scond; + p->scond = C_SCOND_NONE; + // g->panicwrap -= autosize; // MOVW panicwrap_offset(g), R3 // SUB $autosize, R3 @@ -347,6 +354,8 @@ noops(void) p->to.reg = REGG; p->to.offset = 2*PtrSize; p = appendp(p); + + p->scond = cond; } p->as = AMOVW; |