Witam!
Używam Windowsa XP, mam procesor Intel Core Duo, korzystam z Mingw w tandemie z Eclipsem. Moje pytanie dotyczy pewnej wstawki asemblerowej:
asm(
"RDTSC \n" //zawartość licznika cykli (64-bit) -> EDX:EAX
"movl %eax, -4(%ebp) \n" //EAX -> pierwsza zmienna lokalna (low)
"movl %edx, -8(%ebp) \n" //EDX -> druga zmienna lokalna (high)
);
Wszystko działa pięknie (tj. wstawka zczytuje wartości licznika cykli procesora i przekazuje do zmiennych lokalnych) dopóki kompiluję cały kod w ustawieniu Debug kompilatora (poziom debugowania na maksymalny, poziom optymalizacji na zerowy), problem zaczyna się, gdy gotową aplikację, chciałem przyspieszyć poprzez kompilację w trybie Release (debugowanie na minimum, optymalizacja najmocniejsza). Wtedy ta wstawka nie działa, w zmiennych lokalnych pojawiają się #FFFFFFFF.
Dlaczego tak się dzieje? Jak to naprawić?