Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Refactoring dissassembled code

You write a function and, looking at the resulting assembly, you see it can be improved.

You would like to keep the function you wrote, for readability, but you would like to substitute your own assembly for the compiler's. Is there any way to establish a relationship between your high-livel language function and the new assembly?

like image 419
memius Avatar asked Aug 14 '26 10:08

memius


2 Answers

If you are looking at the assembly, then its fair to assume that you have a good understanding about how code gets compiled down. If you have this knowledge, then its sometimes possible to 'reverse enginer' the changes back up into the original language but its often better not to bother.

The optimisations that you make are likely to be very small in comparison to the time and effort required in first making these changes. I would suggest that you leave this kind of work to the compiler and go have a cup of tea. If the changes are significant, and the performance is critical, (as say in the embedded world) then you might want to mix the normal code with the assemblar in some fashion, however, on most computers and chips the performance is usually sufficient to avoid this headache.

If you really need more performance, then optimise the code not the assembly.

like image 171
TK. Avatar answered Aug 17 '26 02:08

TK.


None, I suppose. You've rejected the compiler's work in favor of your own. You might as well throw out the function you wrote in the compiled language, because now all you have is your assembler in that platform.

I would highly advise against engaging in this kind of optimization because unless you're sure, via profiling and analysis, that you truly are making a difference.

like image 37
Daniel Papasian Avatar answered Aug 17 '26 02:08

Daniel Papasian