This patch adds lowering for global TLS addresses for the TLS models of InitialExec, GlobalDynamic and LocalDynamic. LocalExec requires a special add instruction to be added which takes 4 arguments, with the addition of a symbol relocation for %tprel_add(sym). This argument corresponds to no bits but the relocation must be emitted. This is not straightforward in LLVM. LocalExec support follows in a separate patch.