2 ms·
> This is tricky to do for all platforms that V8 supports It can be done only where supported. Ivy Bridge and later have instructions to set them in user space
by devit 7y ago
> This is tricky to do for all platforms that V8 supports
It can be done only where supported. Ivy Bridge and later have instructions to set them in user space (WRFSBASE/WRGSBASE), and although it needs the OS to enable it, I would expect it can be done on all significant x86-64 OSes.
> I'm not sure it's free; it's still at the very least another prefix.
There are benchmarks that show TLS is as fast as global variable, so it's probably free (aside from the impact on the I-cache due to increased code size, but using a general purpose register is probably much worse due to additional instructions and extra SIB bytes).