AM33: use ret [],# instead of add #,sp;rets if possible

Alexandre Oliva aoliva@cygnus.com
Sat Apr 29 18:05:00 GMT 2000


When # < 256, `add #,sp' takes 3 or 4 bytes, and `rets' takes 2,
whereas `ret [],#' takes only 3, so it is always beneficial to use the
latter even if there are no registers to restore.  This patch
implements this improvement.  Here are the savings.  Ok to install?

v gcc/am33/libgcc.a 26519 26472
v gcc/libgcc.a 26746 26710
v mn10300-elf/am33/libgloss/mn10300/libeval.a 608 586
v mn10300-elf/am33/libio/libio.a 23555 23505
v mn10300-elf/am33/libio/libiostream.a 62611 62438
v mn10300-elf/am33/libstdc++/libstdc++.a 68384 68211
v mn10300-elf/am33/newlib/libc.a 46779 46563
v mn10300-elf/am33/newlib/libc/libc.a 45382 45166
v mn10300-elf/am33/newlib/libc/locale/lib.a 130 126
v mn10300-elf/am33/newlib/libc/misc/lib.a 762 760
v mn10300-elf/am33/newlib/libc/reent/lib.a 1010 1006
v mn10300-elf/am33/newlib/libc/signal/lib.a 438 430
v mn10300-elf/am33/newlib/libc/stdio/lib.a 16882 16816
v mn10300-elf/am33/newlib/libc/stdlib/lib.a 19787 19717
v mn10300-elf/am33/newlib/libc/string/lib.a 2934 2920
v mn10300-elf/am33/newlib/libc/syscalls/lib.a 352 316
v mn10300-elf/am33/newlib/libc/time/lib.a 2767 2755
v mn10300-elf/am33/newlib/libg.a 46779 46563
v mn10300-elf/am33/newlib/libm.a 96108 96090
v mn10300-elf/am33/newlib/libm/math/lib.a 87871 87857
v mn10300-elf/libgloss/mn10300/libeval.a 608 586
v mn10300-elf/libiberty/libiberty.a 28286 28258
v mn10300-elf/libio/libio.a 23740 23690
v mn10300-elf/libio/libiostream.a 62853 62657
v mn10300-elf/libstdc++/libstdc++.a 68598 68400
v mn10300-elf/newlib/libc.a 46983 46767
v mn10300-elf/newlib/libc/libc.a 45575 45359
v mn10300-elf/newlib/libc/locale/lib.a 130 126
v mn10300-elf/newlib/libc/misc/lib.a 755 753
v mn10300-elf/newlib/libc/reent/lib.a 1010 1006
v mn10300-elf/newlib/libc/signal/lib.a 437 429
v mn10300-elf/newlib/libc/stdio/lib.a 17128 17062
v mn10300-elf/newlib/libc/stdlib/lib.a 19883 19813
v mn10300-elf/newlib/libc/string/lib.a 2867 2853
v mn10300-elf/newlib/libc/syscalls/lib.a 352 316
v mn10300-elf/newlib/libc/time/lib.a 2708 2696
v mn10300-elf/newlib/libg.a 46983 46767
v mn10300-elf/newlib/libm.a 95999 95983
v mn10300-elf/newlib/libm/common/lib.a 8219 8215
v mn10300-elf/newlib/libm/libm.a 95999 95983
v mn10300-elf/newlib/libm/math/lib.a 87780 87768



More information about the Gcc-patches mailing list