This patch adds lowering for global TLS addresses for the TLS models of InitialExec, GlobalDynamic, LocalExec and LocalDynamic.
LocalExec support required adding a four operand pseudo add instruction, which uses the fourth operand to express a relocation on the symbol. The instruction is expanded in RISCVMCCodeEmitter.cpp to a normal add, with the necessary fixup emitted. Parsing of the extra operand was also added to ensure that a normal add cannot have four operands and still end up parsing correctly.
Depends on D55304