A question on NPTL - do 'user-level' threads save FP/MMX/XMM registers (in IA-32 architecture)

Submitted by ghersh
on April 4, 2004 - 1:31pm

Hello, I have a question on a new linux thread library, NPTL. As I understand, before NPTL, all threads were treated just like a process, so thread switch used the same mechanism as a process switch, with all the registers (including floating point registers, and MMX and XMM registers (in Intel IA-32). Now with NPTL, we can create strictly 'user-level' threads where kernel isn't even aware that the thread switch takes place, so it's a thread library which is responsible for saving/restoring the thread context (I hope I undestand it correctly). So - if this is the case - does NPTL library saves/restores FP/MMX/XMM registers as well as a part of thread context switch? Does anyone know for sure or at least can point me to some source code I can take a look? The intel instruction to save FP+MMX+XMM registers is FXSAVE/FXRSTOR and it moves the data between all of those registers and 512B area in the memory.

TIA.