That doesn't allocate anything in a register. The keyword is a hint to the compiler that that variable should stay on the CPU for as long as possible. Likewise, volatile hints that new values should be written back to memory as soon as possible.
Nowadays, register is practically a no-op, since optimizing compilers try to minimize moving data between the CPU and memory whenever possible.