aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/cmd/asm/internal/asm/asm.go15
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]