aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--backendC/CleanCompilerSources/backend.c14
-rw-r--r--backendC/CleanCompilerSources/backendsupport.c114
-rw-r--r--backendC/CleanCompilerSources/backendsupport.h6
3 files changed, 10 insertions, 124 deletions
diff --git a/backendC/CleanCompilerSources/backend.c b/backendC/CleanCompilerSources/backend.c
index b7a7785..7915fd3 100644
--- a/backendC/CleanCompilerSources/backend.c
+++ b/backendC/CleanCompilerSources/backend.c
@@ -2647,17 +2647,10 @@ BEInit (int argc)
{
Assert (!gBEState.be_initialised);
- CheckBEEnumTypes ();
-
CurrentPhase = "Back End";
CurrentModule = "<unknown module>";
CurrentExt = "";
- gBEState.be_argv = ConvertAlloc ((argc+1) * sizeof (char *));
- gBEState.be_argv [argc] = NULL;
- gBEState.be_argc = argc;
- gBEState.be_argi = 0;
-
InitStorage ();
/* +++ remove symbol table from backend */
ScanInitIdentStringTable ();
@@ -2685,6 +2678,13 @@ BEInit (int argc)
InitCoding ();
InitInstructions ();
+ CheckBEEnumTypes ();
+
+ gBEState.be_argv = ConvertAlloc ((argc+1) * sizeof (char *));
+ gBEState.be_argv [argc] = NULL;
+ gBEState.be_argc = argc;
+ gBEState.be_argi = 0;
+
gBEState.be_modules = NULL;
gBEState.be_allSymbols = NULL;
gBEState.be_dontCareSymbol = NULL;
diff --git a/backendC/CleanCompilerSources/backendsupport.c b/backendC/CleanCompilerSources/backendsupport.c
index fe2f3d7..98fb777 100644
--- a/backendC/CleanCompilerSources/backendsupport.c
+++ b/backendC/CleanCompilerSources/backendsupport.c
@@ -33,117 +33,3 @@ AssertionFailed (char *conditionString, char *file, int line)
Debugger ();
#endif
} /* AssertionFailed */
-
-/*
- Memory management
- =================
-*/
-
-static enum {kMemoryInitClear, kMemoryInitSet} gMemoryInit = kMemoryInitSet;
-
-# define kConvertBufferSize (32 * 1024)
-
-typedef struct convert_buffer ConvertBufferS, *ConvertBufferP;
-
-struct convert_buffer
-{
- ConvertBufferP cb_next;
- char cb_memory [kConvertBufferSize];
-};
-
-static void
-InvalidateMemory (void *memory, size_t size)
-{
- char value, *p;
- int i;
-
- switch (gMemoryInit)
- {
- case kMemoryInitClear:
- value = 0;
- break;
- case kMemoryInitSet:
- value = ~0;
- break;
- default:
- Assert (False);
- break;
- }
-
- p = memory;
- for (i = 0; i < size; i++)
- *p++ = value;
-} /* InvalidateMemory */
-
-static ConvertBufferP gFirstBuffer = NULL, gCurrentBuffer = NULL;
-static char *gMemory;
-static long gBytesLeft = 0;
-
-static void
-AllocConvertBuffer (void)
-{
- ConvertBufferP newBuffer;
-
- newBuffer = (ConvertBufferP) malloc (sizeof (ConvertBufferS));
-
- if (newBuffer == NULL)
- FatalCompError ("backendsupport.c", "AllocConvertBuffer", "out of memory");
-
- if (gFirstBuffer == NULL)
- gCurrentBuffer = gFirstBuffer = newBuffer;
- else
- gCurrentBuffer = gCurrentBuffer->cb_next = newBuffer;
-
- gCurrentBuffer->cb_next = NULL;
-
- gBytesLeft = kConvertBufferSize;
- gMemory = gCurrentBuffer->cb_memory;
-
- InvalidateMemory (gMemory, kConvertBufferSize);
-
- if (gFirstBuffer == NULL)
- gFirstBuffer = gCurrentBuffer;
-} /* AllocConvertBuffer */
-
-void
-FreeConvertBuffers (void)
-{
- ConvertBufferP buffer;
-
- buffer = gFirstBuffer;
-
- while (buffer != NULL)
- {
- ConvertBufferP nextBuffer;
-
- nextBuffer = buffer->cb_next;
-
- InvalidateMemory (buffer, sizeof (ConvertBufferS));
- free (buffer);
-
- buffer = nextBuffer;
- }
-
- gFirstBuffer = NULL;
- gCurrentBuffer = NULL;
- gBytesLeft = NULL;
-} /* FreeConvertBuffers */
-
-void *
-ConvertAlloc (SizeT size)
-{
- void *memory;
-
- size = (size+3) & ~3;
-
- if (size > gBytesLeft)
- AllocConvertBuffer ();
-
- Assert (size <= gBytesLeft);
-
- memory = gMemory;
- gBytesLeft -= size;
- gMemory += size;
-
- return ((void *) memory);
-} /* ConvertAlloc */
diff --git a/backendC/CleanCompilerSources/backendsupport.h b/backendC/CleanCompilerSources/backendsupport.h
index a4ce716..d0ea9eb 100644
--- a/backendC/CleanCompilerSources/backendsupport.h
+++ b/backendC/CleanCompilerSources/backendsupport.h
@@ -16,7 +16,7 @@ extern void AssertionFailed (char *conditionString, char *file, int line);
Memory management
=================
*/
-extern void FreeConvertBuffers (void);
-extern void *ConvertAlloc (SizeT size);
+# define FreeConvertBuffers()
+# define ConvertAlloc(size) CompAlloc (size)
# define ConvertAllocType(t) ((t*) ConvertAlloc (SizeOf (t)))
-# define ArraySize(array) ((unsigned) (sizeof (array) / sizeof (array[0]))) \ No newline at end of file
+# define ArraySize(array) ((unsigned) (sizeof (array) / sizeof (array[0]))) \ No newline at end of file