diff options
| author | Josh Bleecher Snyder <josharian@gmail.com> | 2017-04-06 13:42:31 -0700 |
|---|---|---|
| committer | Josh Bleecher Snyder <josharian@gmail.com> | 2017-04-07 16:57:03 +0000 |
| commit | 63c1aff60b68dba82ca05d0ae6d0c67bcb0583c1 (patch) | |
| tree | f792076a5b28f0f92c6779220c5260b472598323 /src/cmd/internal/obj/arm | |
| parent | 817c1023b06a7e0dbd180609b63e06a64b6ebeaf (diff) | |
| download | go-63c1aff60b68dba82ca05d0ae6d0c67bcb0583c1.tar.xz | |
cmd/internal/obj: eagerly initialize assemblers
CL 38662 changed the x86 assembler to be eagerly
initialized, for a concurrent backend.
This CL puts in place a proper mechanism for doing so,
and switches all architectures to use it.
Passes toolstash-check -all.
Updates #15756
Change-Id: Id2aa527d3a8259c95797d63a2f0d1123e3ca2a1c
Reviewed-on: https://go-review.googlesource.com/39917
Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Diffstat (limited to 'src/cmd/internal/obj/arm')
| -rw-r--r-- | src/cmd/internal/obj/arm/asm5.go | 9 | ||||
| -rw-r--r-- | src/cmd/internal/obj/arm/obj5.go | 1 |
2 files changed, 9 insertions, 1 deletions
diff --git a/src/cmd/internal/obj/arm/asm5.go b/src/cmd/internal/obj/arm/asm5.go index c755e90b23..56ee7aa2f9 100644 --- a/src/cmd/internal/obj/arm/asm5.go +++ b/src/cmd/internal/obj/arm/asm5.go @@ -557,7 +557,7 @@ func span5(ctxt *obj.Link, cursym *obj.LSym, newprog obj.ProgAlloc) { } if oprange[AAND&obj.AMask] == nil { - buildop(ctxt) + ctxt.Diag("arm ops not initialized, call arm.buildop first") } ctxt.Cursym = cursym @@ -1296,6 +1296,13 @@ func opset(a, b0 obj.As) { } func buildop(ctxt *obj.Link) { + if oprange[AAND&obj.AMask] != nil { + // Already initialized; stop now. + // This happens in the cmd/asm tests, + // each of which re-initializes the arch. + return + } + var n int for i := 0; i < C_GOK; i++ { diff --git a/src/cmd/internal/obj/arm/obj5.go b/src/cmd/internal/obj/arm/obj5.go index f14577e2fa..89cf299bef 100644 --- a/src/cmd/internal/obj/arm/obj5.go +++ b/src/cmd/internal/obj/arm/obj5.go @@ -880,6 +880,7 @@ var unaryDst = map[obj.As]bool{ var Linkarm = obj.LinkArch{ Arch: sys.ArchARM, + Init: buildop, Preprocess: preprocess, Assemble: span5, Progedit: progedit, |
