]> git.sur5r.net Git - cc65/commitdiff
Move global segment creation to a better place in source.
authoruz <uz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Fri, 4 Dec 2009 13:04:40 +0000 (13:04 +0000)
committeruz <uz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Fri, 4 Dec 2009 13:04:40 +0000 (13:04 +0000)
git-svn-id: svn://svn.cc65.org/cc65/trunk@4498 b7a2c559-68d2-44c3-8de9-860c34a00d81

src/cc65/codegen.c
src/cc65/compile.c
src/cc65/segments.c
src/cc65/segments.h

index 323a2b5b1856b1698078bda93f7d4cde04036453..8287ca84ee1d21475e99112d404baa895b71e828 100644 (file)
@@ -145,10 +145,6 @@ static const char* GetLabelName (unsigned Flags, unsigned long Label, long Offs)
 void g_preamble (void)
 /* Generate the assembler code preamble */
 {
-    /* Create a new (global) segment list and remember it */
-    PushSegments (0);
-    GS = CS;
-
     /* Identify the compiler version */
     AddTextLine (";");
     AddTextLine ("; File generated by cc65 v %s", GetVersionAsString ());
index 3dd7bffa43a8e84aff4a73c8c35567ba52eebdb5..9d92b4acec504f886cf3546b53c911953c8bbb39 100644 (file)
@@ -343,12 +343,15 @@ void Compile (const char* FileName)
     /* DefineNumericMacro ("__STDC__", 1);      <- not now */
     DefineNumericMacro ("__STDC_HOSTED__", 1);
 
-    /* Initialize the literal pool */
-    InitLiteralPool ();
-
     /* Create the base lexical level */
     EnterGlobalLevel ();
 
+    /* Create the global code and data segments */
+    CreateGlobalSegments ();
+
+    /* Initialize the literal pool */
+    InitLiteralPool ();
+
     /* Generate the code generator preamble */
     g_preamble ();
 
index 97fa98cea39514cf15ed7d183dfaa5d1354b6211..7fbaa34a64239ad943c66b0ed10bc519feda2f41 100644 (file)
@@ -183,6 +183,14 @@ void PopSegments (void)
 
 
 
+void CreateGlobalSegments (void)
+/* Create the global segments and remember them in GS */
+{
+    GS = PushSegments (0);
+}
+
+
+
 void UseDataSeg (segment_t DSeg)
 /* For the current segment list, use the data segment DSeg */
 {
index fd4d2d5f3f8dedff7a3448daeab74c7646522c6b..11c8fb2bcf39bd7390b3330b3bfdeed0cfe46480 100644 (file)
@@ -123,6 +123,9 @@ Segments* PushSegments (struct SymEntry* Func);
 void PopSegments (void);
 /* Pop the old segment list (make it current) */
 
+void CreateGlobalSegments (void);
+/* Create the global segments and remember them in GS */
+
 void UseDataSeg (segment_t DSeg);
 /* For the current segment list, use the data segment DSeg */