Я использовал gdb для пошагового выполнения кода ассемблера, который реализует стандартную функцию C sin () в стандартной математической библиотеке C (-lm -march = pentium3 -mfpmath = 387). Там много заглушек, и я не знаю, почему они не просто вставили инструкцию ассемблера fsin. То же самое происходит с другими математическими функциями. Почему они просто не вызывают соответствующую инструкцию FPU?
Потому что «много заглушки там» быстрее и точнее, чем инструкция x87 fsin. Вопреки распространенному мнению, авторы библиотек, как правило, знают, что они делают.
fsin
Вы, вероятно, должны включить встроенные функции - внутренняя реализация sinf почти наверняка будет встроенной (если, скажем, кто-то не берет адрес этого или другие необычные обстоятельства).
В VS это означает компиляцию с /Oi.