ufm: (Default)
[personal profile] ufm
Я понимаю, что для некоторых людей это нифига не новость, но я человек измученный нарзаном и уже лет 20, наверное, не смотрел, что-ж там компилятор такого нагенерил на выходе.Берём такой код (это rust, если что):
fn main() {
    let mut src = 1u128;
    let a = src.to_ne_bytes();
    src += 1;
    let b = src.to_le_bytes();
    src += 1;
    let c = src.to_be_bytes();
    println!("{:#?} {:#?} {:#?}", a, b, c);
}

И компилятор на голубом глазу выдаёт:
       sub     rsp, 152
       mov     qword ptr [rsp + 16], 0
       mov     qword ptr [rsp + 8], 1
       mov     qword ptr [rsp + 32], 0
       mov     qword ptr [rsp + 24], 2
       movabs  rax, 216172782113783808
       mov     qword ptr [rsp + 48], rax
       mov     qword ptr [rsp + 40], 0


Т.е. эта зараза тупо повыкидывала все эти пляски с +1 к переменной, и тупо нафигачила констант...

Я, конечно,неоднократно читал, что бодаться с нынешними компиляторами в плане кода - такое себе занятие, но что прям настолько всё сурово - как-то не ожидал.
This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting