Answer is B).
TLS buffer need not be saved as it will flush out the contents of the switched process and will have the new process contents.
Stack pointer is saved as switched process might have called a procedure and the suddenly, it was switched.
General purpose registor have contents of ALU data to be computed and hence should be saved.
Program counter , no doubt is neccessary to be saved to keep the progress of the program