]> git.sur5r.net Git - cc65/commitdiff
Renamed some stuff. Write out the segment size as var, not 32 bit.
authoruz <uz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Fri, 19 Aug 2011 20:55:48 +0000 (20:55 +0000)
committeruz <uz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Fri, 19 Aug 2011 20:55:48 +0000 (20:55 +0000)
git-svn-id: svn://svn.cc65.org/cc65/trunk@5233 b7a2c559-68d2-44c3-8de9-860c34a00d81

src/ca65/main.c
src/ca65/segment.c
src/ca65/segment.h
src/ca65/span.c
src/ca65/span.h

index 17aca8efc18199b841cfdef09559d7916b6e9ffa..7364891bc7208c54fac12eed9fbde5f7bd8c7678 100644 (file)
@@ -867,7 +867,7 @@ int main (int argc, char* argv [])
     InitIncludePaths ();
 
     /* Create the predefined segments */
-    InitSegments ();
+    SegInit ();
 
     /* Enter the base lexical level. We must do that here, since we may
      * define symbols using -D.
@@ -1013,7 +1013,7 @@ int main (int argc, char* argv [])
 
     /* If we didn't have any errors, check and cleanup the unnamed labels */
     if (ErrorCount == 0) {
-        ULabDone ();                                  
+        ULabDone ();
     }
 
     /* If we didn't have any errors, check the symbol table */
@@ -1028,7 +1028,7 @@ int main (int argc, char* argv [])
 
     /* If we didn't have any errors, check and resolve the segment data */
     if (ErrorCount == 0) {
-        SegCheck ();
+        SegDone ();
     }
 
     /* If we didn't have any errors, check       the assertions */
index a0a7b96623b79caae09f74baa8c128fd1cab939c..9a1532b26679b42aa553692eef326682b69dc5a1 100644 (file)
@@ -52,6 +52,7 @@
 #include "objcode.h"
 #include "objfile.h"
 #include "segment.h"
+#include "span.h"
 #include "spool.h"
 #include "studyexpr.h"
 #include "symtab.h"
@@ -325,8 +326,8 @@ unsigned char GetSegAddrSize (unsigned SegNum)
 
 
 
-void SegCheck (void)
-/* Check the segments for range and other errors */
+void SegDone (void)
+/* Check the segments for range and other errors. Do cleanup. */
 {
     static const unsigned long U_Hi[4] = {
                0x000000FFUL, 0x0000FFFFUL, 0x00FFFFFFUL, 0xFFFFFFFFUL
@@ -453,7 +454,7 @@ void SegDump (void)
 
 
 
-void InitSegments (void)
+void SegInit (void)
 /* Initialize segments */
 {
     /* Create the predefined segments. Code segment is active */
@@ -512,7 +513,7 @@ static void WriteOneSeg (Segment* Seg)
 
     /* Write the segment data */
     ObjWriteVar (GetStringId (Seg->Def->Name)); /* Name of the segment */
-    ObjWrite32 (Seg->PC);                       /* Size */
+    ObjWriteVar (Seg->PC);                       /* Size */
     ObjWrite8 (Seg->Align);                     /* Segment alignment */
     ObjWrite8 (Seg->Def->AddrSize);             /* Address size of the segment */
     ObjWriteVar (Seg->FragCount);               /* Number of fragments */
index 84982236a55426e64e7a748a0c819106c43b0cce..c28c86be1e06e5a7c9a8d7dc54a6de5942c0b14a 100644 (file)
@@ -153,13 +153,13 @@ void EnterRelocMode (void);
  * switch the mode globally or for the current segment.
  */
 
-void SegCheck (void);
-/* Check the segments for range and other errors */
+void SegDone (void);
+/* Check the segments for range and other errors. Do cleanup. */
 
 void SegDump (void);
 /* Dump the contents of all segments */
 
-void InitSegments (void);
+void SegInit (void);
 /* Initialize segments */
 
 void SetSegmentSizes (void);
index e7339e78c595326294db4b61f878a32b9163db46..3346eda0aca482fed4eb0c8fa85eb0d1c397c66f 100644 (file)
@@ -151,6 +151,23 @@ void CloseSpans (Collection* Spans)
 
 
 
+static void WriteSpan (const Span* S)
+/* Write one span to the output file */
+{
+    /* Done accept empty spans */
+    CHECK (S->End > S->Start);
+
+    /* Write data for the span We will write the size instead of the end
+     * offset to save some bytes, since most spans are expected to be
+     * rather small.
+     */
+    ObjWriteVar (S->Seg->Num);
+    ObjWriteVar (S->Start);
+    ObjWriteVar (S->End - S->Start);
+}
+
+
+
 void WriteSpans (const Collection* Spans)
 /* Write a list of spans to the output file */
 {
@@ -161,22 +178,10 @@ void WriteSpans (const Collection* Spans)
 
     /* Write the spans */
     for (I = 0; I < CollCount (Spans); ++I) {
-
-        /* Get next range */
-        const Span* S = CollConstAt (Spans, I);
-
-        CHECK (S->End > S->Start);
-
-        /* Write data for the span We will write the size instead of the end
-         * offset to save some bytes, since most spans are expected to be
-         * rather small.
-         */
-        ObjWriteVar (S->Seg->Num);
-        ObjWriteVar (S->Start);
-        ObjWriteVar (S->End - S->Start);
+        /* Write the next span */
+        WriteSpan (CollConstAt (Spans, I));
     }
 }
 
 
 
-
index 407c753d90d564caf4e1ea3bab05f0a1db5c9610..04af807a28154a14d6fa887ed41e3a9515aa182f 100644 (file)
 
 
 
+/* Forwards */
+struct Segment;
+
 /* Span definition */
 typedef struct Span Span;
 struct Span{
-    unsigned        Id;                 /* Span id */
     struct Segment* Seg;                       /* Pointer to segment */
     unsigned long   Start;              /* Start of range */
     unsigned long   End;                /* End of range */
@@ -62,7 +64,7 @@ struct Span{
 
 
 /*****************************************************************************/
-/*                                          Code                                    */
+/*                                          Code                                    */
 /*****************************************************************************/