Optimizing subroutines in assembly language: An optimization guide for x86 platforms