with one exception, Clem. Forsyth's port of Ken's C compiler let you allocate r14 and r15 for your own purposes. Hence in Plan 9 they were used for 'current process' and 'current core'. As I understand it gcc allows this too.
Every once in a while it's nice to have that level of control. We gave it up when we got plan 9 running with gcc and clang and it was painful ...
ron