diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/cmd/asm/internal/asm/asm.go | 15 |
1 files changed, 5 insertions, 10 deletions
diff --git a/src/cmd/asm/internal/asm/asm.go b/src/cmd/asm/internal/asm/asm.go index 90aa8bc2ae..05ba70d594 100644 --- a/src/cmd/asm/internal/asm/asm.go +++ b/src/cmd/asm/internal/asm/asm.go @@ -309,16 +309,11 @@ func (p *Parser) asmJump(op int, a []obj.Addr) { prog.To = *target case target.Type == obj.TYPE_MEM && (target.Name == obj.NAME_EXTERN || target.Name == obj.NAME_STATIC): // JMP main·morestack(SB) - isStatic := 0 - if target.Name == obj.NAME_STATIC { - isStatic = 1 - } - prog.To = obj.Addr{ - Type: obj.TYPE_BRANCH, - Sym: obj.Linklookup(p.linkCtxt, target.Sym.Name, isStatic), - Index: 0, - Offset: target.Offset, - } + prog.To = *target + case target.Type == obj.TYPE_INDIR && (target.Name == obj.NAME_EXTERN || target.Name == obj.NAME_STATIC): + // JMP *main·morestack(SB) + prog.To = *target + prog.To.Type = obj.TYPE_INDIR case target.Type == obj.TYPE_MEM && target.Reg == 0 && target.Offset == 0: // JMP exit targetProg := p.labels[target.Sym.Name] |
