Implement support for loading the stack canary from a memory location held in
the TLS register, with an optional offset applied. This is used by the Linux
kernel to implement per-task stack canaries, which is impossible on SMP systems
when using a global variable for the stack canary.
Suggestions for how to test this and where to insert the test code into the
tree are kindly welcomed.
clang-format: please reformat the code