]> git.sur5r.net Git - cc65/blobdiff - src/cc65/asmcode.h
Merge remote-tracking branch 'upstream/master' into a5200
[cc65] / src / cc65 / asmcode.h
index 9972f42a5a9e8193d4fd49cc17a09411781fdedd..248381224f20c948f58762ebc0785f557b61c120 100644 (file)
@@ -1,15 +1,15 @@
 /*****************************************************************************/
 /*                                                                           */
-/*                                asmcode.h                                 */
+/*                                 asmcode.h                                 */
 /*                                                                           */
-/*         Assembler output code handling for the cc65 C compiler           */
+/*          Assembler output code handling for the cc65 C compiler           */
 /*                                                                           */
 /*                                                                           */
 /*                                                                           */
-/* (C) 2000     Ullrich von Bassewitz                                        */
-/*              Wacholderweg 14                                              */
-/*              D-70597 Stuttgart                                            */
-/* EMail:       uz@musoftware.de                                             */
+/* (C) 2000-2009, Ullrich von Bassewitz                                      */
+/*                Roemerstrasse 52                                           */
+/*                D-70794 Filderstadt                                        */
+/* EMail:         uz@cc65.org                                                */
 /*                                                                           */
 /*                                                                           */
 /* This software is provided 'as-is', without any expressed or implied       */
 
 
 /*****************************************************************************/
-/*                                  Data                                    */
+/*                                   Data                                    */
 /*****************************************************************************/
 
 
 
 /* Marker for an assembler code position */
-typedef struct Line* CodeMark;
+typedef struct {
+    unsigned    Pos;            /* Code position */
+    int         SP;             /* Stack pointer at this position */
+} CodeMark;
 
 
 
 /*****************************************************************************/
-/*                                          Code                                    */
+/*                                   Code                                    */
 /*****************************************************************************/
 
 
 
-void AddCodeLine (const char* Format, ...) attribute ((format(printf,1,2)));
-/* Add a new line of code to the output */
-
-void AddCodeHint (const char* Hint);
-/* Add an optimizer hint */
-
-void AddEmptyLine (void);
-/* Add an empty line for formatting purposes */
-
-CodeMark GetCodePos (void);
+void GetCodePos (CodeMark* M);
 /* Get a marker pointing to the current output position */
 
-void RemoveCode (CodeMark M);
+void RemoveCodeRange (const CodeMark* Start, const CodeMark* End);
+/* Remove all code between two code markers */
+
+void RemoveCode (const CodeMark* M);
 /* Remove all code after the given code marker */
 
-void WriteOutput (FILE* F);
-/* Write the final output to a file */
+void MoveCode (const CodeMark* Start, const CodeMark* End, const CodeMark* Target);
+/* Move the code between Start (inclusive) and End (exclusive) to
+ * (before) Target. The code marks aren't updated.
+ */
 
+int CodeRangeIsEmpty (const CodeMark* Start, const CodeMark* End);
+/* Return true if the given code range is empty (no code between Start and End) */
 
-
-/* End of asmcode.h */
-#endif
+void WriteAsmOutput (void);
+/* Write the final assembler output to the output file */
 
 
 
+/* End of asmcode.h */
 
+#endif