Descriptionruntime,cmd/ld: Merge TLS symbols and teach 5l about ARM TLS
This CL prepares for external linking support to ARM.
The pseudo-symbols runtime.g and runtime.m are merged into a single runtime.tlsgm symbol. When external linking, the offset of a thread local variable is stored at a memory location instead of being embedded into a offset of a ldr instruction. With a single runtime.tlsgm symbol for both g and m, only one such offset is needed.
The larger part of this CL moves TLS code from gcc compiled to internally compiled. The TLS code now uses the modern MRC instruction, and 5l is taught about TLS fallbacks in case the instruction is not available or appropriate.
This CL is needed by CL 10271047.
Patch Set 1 #Patch Set 2 : diff -r af0c031528c3076cb822774cf07376e1c0498009 https://go.googlecode.com/hg/ #Patch Set 3 : diff -r 2bbca155a87f https://go.googlecode.com/hg/ #Patch Set 4 : diff -r 2bbca155a87fcbc413c1b192d555647614d1cd2d https://go.googlecode.com/hg/ #Patch Set 5 : diff -r 2bbca155a87f https://go.googlecode.com/hg/ #Patch Set 6 : diff -r 2a6434ea7154c353ddc28e7ac7ae3ab0ddd9433c https://go.googlecode.com/hg/ #
MessagesTotal messages: 11
|