]> Cypherpunks repositories - gostls13.git/commitdiff
patch in proper branch address in zaddr output
authorKai Backman <kaib@golang.org>
Tue, 15 Sep 2009 23:14:49 +0000 (16:14 -0700)
committerKai Backman <kaib@golang.org>
Tue, 15 Sep 2009 23:14:49 +0000 (16:14 -0700)
R=rsc
APPROVED=rsc
DELTA=12  (11 added, 1 deleted, 0 changed)
OCL=34658
CL=34664

src/cmd/5g/gobj.c

index 3ab5dcae434050e8e9cd9e228a0440a7fbfccf6e..99855c0da6277e9575990def903fb1d9f5d86629 100644 (file)
@@ -120,7 +120,6 @@ zaddr(Biobuf *b, Addr *a, int s)
                Bputc(b, l>>24); // fall through
        case D_OREG:
        case D_CONST:
-       case D_BRANCH:
        case D_SHIFT:
        case D_STATIC:
        case D_AUTO:
@@ -133,6 +132,17 @@ zaddr(Biobuf *b, Addr *a, int s)
                Bputc(b, l>>24);
                break;
 
+       case D_BRANCH:
+               if(a->branch == nil)
+                       fatal("unpatched branch");
+               a->offset = a->branch->loc;
+               l = a->offset;
+               Bputc(b, l);
+               Bputc(b, l>>8);
+               Bputc(b, l>>16);
+               Bputc(b, l>>24);
+               break;
+
        case D_SCONST:
                n = a->sval;
                for(i=0; i<NSNAME; i++) {