Плз, объясните, или дайте ссылку на документацию, которая позволит понять следующий пример генерации кода: gcc -O3 -S из Код (Text): double foo() { double res, x, y, z; res = x*y*z; return res; } генерит вот такое чудо: Код (Text): mulsd %xmm0, %xmm0 mulsd %xmm0, %xmm0 ret Очень хочется разобраться, как и в каком порядке переменные оказываются в xmm-регистрах без участия человека
ты же их не инициализировал, начальные значения пременных не определены и в xmm тоже непонятно что, и результат нигде не используется так что gcc просто превращает это в две операции умножения, как напианно в коде, не задумываясь над тем, что и на что умножать