From: Russ Cox Date: Mon, 18 Oct 2010 17:44:39 +0000 (-0400) Subject: 5l: handle jump to middle of floating point sequence X-Git-Tag: weekly.2010-10-20~31 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=71c4244430a1fce2878f29537ef8c00f0d5a736f;p=gostls13.git 5l: handle jump to middle of floating point sequence R=ken2 CC=golang-dev https://golang.org/cl/2473042 --- diff --git a/src/cmd/5l/softfloat.c b/src/cmd/5l/softfloat.c index 5284cf81e8..308a5fbeda 100644 --- a/src/cmd/5l/softfloat.c +++ b/src/cmd/5l/softfloat.c @@ -19,8 +19,11 @@ softfloat(void) if(symsfloat->type == STEXT) psfloat = symsfloat->text; - wasfloat = 0; for(cursym = textp; cursym != nil; cursym = cursym->next) { + wasfloat = 0; + for(p = cursym->text; p != P; p = p->link) + if(p->cond != P) + p->cond->mark |= LABEL; for(p = cursym->text; p != P; p = p->link) { switch(p->as) { case AMOVWD: @@ -43,7 +46,7 @@ softfloat(void) case ADIVD: if (psfloat == P) diag("floats used with _sfloat not defined"); - if (!wasfloat) { + if (!wasfloat || (p->mark&LABEL)) { next = prg(); *next = *p;