]> Cypherpunks repositories - gostls13.git/commitdiff
5l: handle jump to middle of floating point sequence
authorRuss Cox <rsc@golang.org>
Mon, 18 Oct 2010 17:44:39 +0000 (13:44 -0400)
committerRuss Cox <rsc@golang.org>
Mon, 18 Oct 2010 17:44:39 +0000 (13:44 -0400)
R=ken2
CC=golang-dev
https://golang.org/cl/2473042

src/cmd/5l/softfloat.c

index 5284cf81e88273b5ce92b40fcacb78cbb79f2957..308a5fbeda1d4dd057cebfc497b5853c37da40ea 100644 (file)
@@ -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;