save 2 bytes stack space with the option --main-return. The ljmp could probably be...
authorfrief <frief@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Sat, 15 May 2004 20:48:32 +0000 (20:48 +0000)
committerfrief <frief@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Sat, 15 May 2004 20:48:32 +0000 (20:48 +0000)
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3311 4a8a32a2-be11-0410-ad9d-d568d2c75423

src/SDCCglue.c

index d8f216e24f6bdb0b09411ea9f4bde7167236fbc7..9b3b509f93d1c14361b4165b3068dc05abd42f6d 100644 (file)
@@ -1880,21 +1880,18 @@ glue (void)
       /* entry point @ start of CSEG */
       fprintf (asmFile, "__sdcc_program_startup:\n");
 
-      /* put in the call to main */
-      fprintf (asmFile, "\tlcall\t_main\n");
+      /* put in jump or call to main */
       if (options.mainreturn)
-       {
-
-         fprintf (asmFile, ";\treturn from main ; will return to caller\n");
-         fprintf (asmFile, "\tret\n");
-
-       }
+        {
+          fprintf (asmFile, "\tljmp\t_main\n");   /* needed? */
+          fprintf (asmFile, ";\treturn from main will return to caller\n");
+        }
       else
-       {
-
-         fprintf (asmFile, ";\treturn from main will lock up\n");
-         fprintf (asmFile, "\tsjmp .\n");
-       }
+        {
+          fprintf (asmFile, "\tlcall\t_main\n");
+          fprintf (asmFile, ";\treturn from main will lock up\n");
+          fprintf (asmFile, "\tsjmp .\n");
+        }
     }
   copyFile (asmFile, code->oFile);