Nigdzie się tego nigdy nie doszukałem, ani w opisach konwencji wywołań funkcji WinAPI (czyli stdcall) i czasami o to pytam w różnych miejscach licząc na jakąś sensowną odpowiedź, zatem czy stan rejestrów MMX/SSE/FPU jest zachowywany czy nie jest zachowywany pomiędzy wywołaniami funkcji WinAPI?

Czyli załóżmy, że w rejestrze MM0 siedzi sobie szczęsliwa liczba 1, wywołujemy dowolną funkcję WinAPI lub inna opartą na konwencji stdcall i pytanie brzmi, czy po powrocie z tej funkcji, nadal możemy oczekiwać w rejestrze MM0 wartości 1 czy mamy oczekiwać niezdefiniowanej wartości?

Ze szczątkowych informacji wiem, że kompilator Intela dla C++ wykrywa w kodzie modyfikacje na stanie rejestrów MMX i przed wywołaniem specyficznych funkcji WinAPI zachowuje ich stan, a po ich wywołaniu przywraca ich oryginalne wartości, ale też to jest wykonywane tylko dla niektórych funkcji WinAPI, które ingerują jak widać w stan tych rejestrów.

Czy ktoś z was natknął się kiedyś na jakieś oficjalne oświadczenie w tej sprawie?