code size optimizations
add -mcall-prologues flag to further reduce code size