X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=src%2Fcc65%2Fasmcode.h;h=b91b892d0afa0e01615adf614f669797e6bbab19;hb=9b7c16ec4cbb5282642c377272224e3fc825f860;hp=69652c21a4550306080debf0a39e23d1ec1d438c;hpb=53dd513176425872128ef26031d00952ef7a0628;p=cc65 diff --git a/src/cc65/asmcode.h b/src/cc65/asmcode.h index 69652c21a..b91b892d0 100644 --- a/src/cc65/asmcode.h +++ b/src/cc65/asmcode.h @@ -6,10 +6,10 @@ /* */ /* */ /* */ -/* (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 */ @@ -40,6 +40,9 @@ #include +/* common */ +#include "attrib.h" + /*****************************************************************************/ @@ -49,7 +52,10 @@ /* Marker for an assembler code position */ -typedef struct Line_* CodeMark; +typedef struct { + unsigned Pos; /* Code position */ + int SP; /* Stack pointer at this position */ +} CodeMark; @@ -59,23 +65,25 @@ typedef struct Line_* CodeMark; -void AddCodeLine (const char* Format, ...); -/* Add a new line of code to the output */ +void GetCodePos (CodeMark* M); +/* Get a marker pointing to the current output position */ -void AddCodeHint (const char* Hint); -/* Add an optimizer hint */ +void RemoveCodeRange (const CodeMark* Start, const CodeMark* End); +/* Remove all code between two code markers */ -void AddEmptyLine (void); -/* Add an empty line for formatting purposes */ +void RemoveCode (const CodeMark* M); +/* Remove all code after the given code marker */ -CodeMark GetCodePos (void); -/* Get a marker pointing to the current output position */ +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. + */ -void RemoveCode (CodeMark M); -/* Remove all code after the given code marker */ +int CodeRangeIsEmpty (const CodeMark* Start, const CodeMark* End); +/* Return true if the given code range is empty (no code between Start and End) */ -void WriteOutput (FILE* F); -/* Write the final output to a file */ +void WriteAsmOutput (void); +/* Write the final assembler output to the output file */ @@ -84,3 +92,4 @@ void WriteOutput (FILE* F); +