Como o Rust lida com inteiros de 128 bits `i128` em um sistema de 64 bits? Isso afeta o desempenho?
Olá a todos! Estou estudando Rust e me deparei com o tipo `i128` (inteiro de 128 bits com sinal). Estou escrevendo um parser para números grandes de JSON e preciso armazenar valores como `2^64` e maiores. Estou acostumado que em processadores x86-64 os registradores são de 64 bits, e não entendo como o processador realiza operações com números de 128 bits.\n\nEscrevi um benchmark simples (usando `cargo bench`) que mede a adição de dois `i128` e dois `i64`:\n\n```rust\n#![feature(test)]\nextern crate test;\n\n#[bench]\nfn add_i64(b: &mut test::Bencher) {\n let a: i64 = 1234567890123456789;\n let b_val: i64 = 987654321098765432;\n b.iter(|| {\n let c = a + b_val;\n test::black_box(c);\n });\n}\n\n#[bench]\nfn add_i128(b: &mut test::Bencher) {\n let a: i128 = 123456789012345678901234567890123456789;\n