this post was submitted on 31 Oct 2023
269 points (89.9% liked)
Programmer Humor
19589 readers
760 users here now
Welcome to Programmer Humor!
This is a place where you can post jokes, memes, humor, etc. related to programming!
For sharing awful code theres also Programming Horror.
Rules
- Keep content in english
- No advertisements
- Posts must be related to programming or programmer topics
founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
Definitely left. Right one won't be optimized. (And there are ~~so many~~ some mistakes in your inline asm...)
What mistakes?
Mostly the missing listing of clobbered registers. Other than that it's mostly just that you're doing useless things, like manually putting the stuff into the registers instead of letting the compiler do it, and the useless push and pop. And the loop is obviously not needed and would hurt performance if you do every write like that.
("so many" was inappropriate, sorry.)
I am hopeless at getting the text_ptr simpler than i64::from_str_radix(&format!("{:p}", my_string)[2..], 16).unwrap(); How can i get it the normal way?
Just use
str::as_ptr()
.Here's an example (disclaimer: I haven't used inline asm in rust before, expect issues): https://godbolt.org/z/sczYGe96f