Pracuję nad optymalizacją wydajności kodu ARM C/C++, skompilowanego z GCC. Procesor to Tegra 3. Jak wiem flagi -mumumb oznacza generowanie starych 16-bitowych instrukcji Thumb. Przy różnych testach mam 10-15% wzrost wydajności z -marm przeciwko -mithumb.GCC - pomyłka przeciwko -marm
Czy -mthumb jest używany tylko w celu zapewnienia zgodności i wydajności - czy zawsze jest lepiej? Pytam, ponieważ android-cmake używał -mthumb w trybie Release i -marm w debugowaniu, jest to bardzo kłopotliwe dla mnie.
Doskonała odpowiedź. Gameboy Advance ma przeważnie 16 bitowy, nie zerowy czas oczekiwania, magistrale danych i wydajność kciuka była znacznie lepsza niż ARM. kciuk ma więcej instrukcji niż ramię, więc jest wolniejszy pod tym względem. thumb2 jest rozszerzeniem do kciuka, wciąż masz instrukcje dotyczące kciuka, thumb2 używa wcześniej nieokreślonych, a wiele z nich to instrukcje 32-bitowe. –
Dobra pigułka Pytania i odpowiedzi – tniles09