]> git.sur5r.net Git - cc65/blobdiff - src/cc65/coptstore.h
Added classification macros for file types from struct dirent.
[cc65] / src / cc65 / coptstore.h
index 29a97de7d00abc2fa927afe993ab71e2bcfafb80..b6ac183538476838e380934a49ee8e203800aaf5 100644 (file)
@@ -6,10 +6,10 @@
 /*                                                                           */
 /*                                                                           */
 /*                                                                           */
-/* (C) 2002      Ullrich von Bassewitz                                       */
-/*               Wacholderweg 14                                             */
-/*               D-70597 Stuttgart                                           */
-/* EMail:        uz@cc65.org                                                 */
+/* (C) 2002-2006, Ullrich von Bassewitz                                      */
+/*                Römerstrasse 52                                            */
+/*                D-70794 Filderstadt                                        */
+/* EMail:         uz@cc65.org                                                */
 /*                                                                           */
 /*                                                                           */
 /* This software is provided 'as-is', without any expressed or implied       */
 
 
 /*****************************************************************************/
-/*                                  Code                                    */
+/*                                  Code                                    */
 /*****************************************************************************/
 
 
 
 unsigned OptStore1 (CodeSeg* S);
+/* Search for the sequence
+ *
+ *      ldy     #n
+ *      jsr     staxysp
+ *      ldy     #n+1
+ *      jsr     ldaxysp
+ *
+ * and remove the useless load, provided that the next insn doesn't use flags
+ * from the load.
+ */
+
+unsigned OptStore2 (CodeSeg* S);
 /* Search for a call to staxysp. If the ax register is not used later, and
  * the value is constant, just use the A register and store directly into the
  * stack.
  */
 
-unsigned OptStore2 (CodeSeg* S);               
+unsigned OptStore3 (CodeSeg* S);
 /* Search for a call to steaxysp. If the eax register is not used later, and
  * the value is constant, just use the A register and store directly into the
  * stack.
  */
 
+unsigned OptStore4 (CodeSeg* S);
+/* Search for the sequence
+ *
+ *      sta     xx
+ *      stx     yy
+ *      lda     xx
+ *      ldx     yy
+ *
+ * and remove the useless load, provided that the next insn doesn't use flags
+ * from the load.
+ */
+
+unsigned OptStore5 (CodeSeg* S);
+/* Search for the sequence
+ *
+ *      lda     foo
+ *      ldx     bar
+ *      sta     something
+ *      stx     something-else
+ *
+ * and replace it by
+ *
+ *      lda     foo
+ *      sta     something
+ *      lda     bar
+ *      sta     something-else
+ *
+ * if X is not used later. This replacement doesn't save any cycles or bytes,
+ * but it keeps the value of X, which may be reused later.
+ */
+
 
 
 /* End of coptstore.h */