* src/z80/peeph.def: applied patch
authorborutr <borutr@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Sun, 17 Feb 2008 07:25:53 +0000 (07:25 +0000)
committerborutr <borutr@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Sun, 17 Feb 2008 07:25:53 +0000 (07:25 +0000)
  #1893626: Optimize tail calls on Z80, thanks to Philipp Krause

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@5014 4a8a32a2-be11-0410-ad9d-d568d2c75423

ChangeLog
src/z80/peeph.def

index 0e8c34e957d6952cc9b7a6266fbeda0127432839..4db5e32bc34025676e2b991e3341b9b50f4c02a6 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2008-02-17 Borut Razem <borut.razem AT siol.net>
+
+       * src/z80/peeph.def: applied patch
+         #1893626: Optimize tail calls on Z80, thanks to Philipp Krause
+
 2008-02-16 Maarten Brock <sourceforge.brock AT dse.nl>
 
        * as/link/mcs51/aslink.dsp: removed SDK define
index c88c3a781d1995af81fb4a6e5d7e402e5a22756e..90b1b2b154463a4e50e44e1ac38b62687a6e3b98 100644 (file)
@@ -702,4 +702,21 @@ replace restart {
        ; peephole 64 moved addition of constant 0x%3%2 to bc to constant.
 }
 
+replace restart {
+       call    %1
+       ret
+} by {
+       jp      %1
+       ; peephole 65 replaced call at end of function by jump.
+}
 
+// Callee saves ix.
+replace restart {
+       call    %1
+       pop     ix
+       ret
+} by {
+       pop     ix
+       jp      %1
+       ; peephole 66 replaced call at end of function by jump moving call beyond pop ix.
+}