1
0
mirror of https://github.com/golang/go synced 2024-11-19 05:04:43 -07:00

Revert "cmd/internal/obj/x86: implement -shared computation of TLS base"

Fix the build.

This reverts commit e73981512f.

Change-Id: I979e138991c06b3295be08212d3ce80b30c2381b
Reviewed-on: https://go-review.googlesource.com/7160
Reviewed-by: Dave Cheney <dave@cheney.net>
Reviewed-by: Minux Ma <minux@golang.org>
This commit is contained in:
Minux Ma 2015-03-08 23:23:33 +00:00
parent e73981512f
commit 0d0124daa0

View File

@ -3765,39 +3765,6 @@ func doasm(ctxt *obj.Link, p *obj.Prog) {
ctxt.Andptr = ctxt.Andptr[1:]
asmand(ctxt, p, &pp.From, &p.To)
case obj.Hlinux:
if ctxt.Flag_shared == 0 {
log.Fatalf("unknown TLS base location for linux without -shared")
}
// Note that this is not generating the same insn as the other cases.
// MOV TLS, R_to
// becomes
// movq g@gottpoff(%rip), R_to
// which is encoded as
// movq 0(%rip), R_to
// and a R_TLS_IE reloc. This all assumes the only tls variable we access
// is g, which we can't check here, but will when we assemble the second
// instruction.
ctxt.Rexflag = Pw | (regrex[p.To.Reg] & Rxr)
ctxt.Andptr[0] = 0x8B
ctxt.Andptr = ctxt.Andptr[1:]
ctxt.Andptr[0] = byte(0x05 | (reg[p.To.Reg] << 3))
ctxt.Andptr = ctxt.Andptr[1:]
r = obj.Addrel(ctxt.Cursym)
r.Off = int32(p.Pc + int64(-cap(ctxt.Andptr)+cap(ctxt.And[:])))
r.Type = obj.R_TLS_IE
r.Siz = 4
r.Add = -4
ctxt.Andptr[0] = 0x00
ctxt.Andptr = ctxt.Andptr[1:]
ctxt.Andptr[0] = 0x00
ctxt.Andptr = ctxt.Andptr[1:]
ctxt.Andptr[0] = 0x00
ctxt.Andptr = ctxt.Andptr[1:]
ctxt.Andptr[0] = 0x00
ctxt.Andptr = ctxt.Andptr[1:]
case obj.Hplan9:
if ctxt.Plan9privates == nil {
ctxt.Plan9privates = obj.Linklookup(ctxt, "_privates", 0)