aboutsummaryrefslogtreecommitdiff
path: root/backendC/CleanCompilerSources
diff options
context:
space:
mode:
authorjohnvg2006-11-16 12:35:41 +0000
committerjohnvg2006-11-16 12:35:41 +0000
commita9ae35a7dd38f38af3e6be9342aff0129de3f5b5 (patch)
tree86a13d68c0a9eb6b372b767c32d7ff09ad5ca00d /backendC/CleanCompilerSources
parentadd make script for 64 bit linux (diff)
rename ea entry for record to eu, to prevent conflict with ea
entry for constructor with the same name as the record git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1626 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
Diffstat (limited to 'backendC/CleanCompilerSources')
-rw-r--r--backendC/CleanCompilerSources/codegen1.c19
-rw-r--r--backendC/CleanCompilerSources/instructions.c9
-rw-r--r--backendC/CleanCompilerSources/instructions.h1
3 files changed, 20 insertions, 9 deletions
diff --git a/backendC/CleanCompilerSources/codegen1.c b/backendC/CleanCompilerSources/codegen1.c
index 2835e22..bdffb6b 100644
--- a/backendC/CleanCompilerSources/codegen1.c
+++ b/backendC/CleanCompilerSources/codegen1.c
@@ -51,6 +51,7 @@ char d_pref[] = "d";
char n_pref[] = "n";
char ea_pref[] = "ea";
+char eu_pref[] = "eu";
char l_pref[] = "l";
char s_pref[] = "s";
@@ -890,7 +891,7 @@ static void GenerateConstructorDescriptorAndFunction (ConstructorList constructo
static void GenLazyRecordEntry (SymbDef rdef)
{
- LabDef record_label,d_label,ea_label,*ea_label_p;
+ LabDef record_label,d_label,eu_label,*eu_label_p;
States argstates;
int asp,bsp,arity;
int maxasize,asize,bsize;
@@ -905,31 +906,31 @@ static void GenLazyRecordEntry (SymbDef rdef)
if (rdef->sdef_boxed_record){
if (rdef->sdef_exported){
- GenExportEaEntry (rdef);
- MakeSymbolLabel (&ea_label,CurrentModule,ea_pref,rdef,0);
+ GenExportEuEntry (rdef);
+ MakeSymbolLabel (&eu_label,CurrentModule,eu_pref,rdef,0);
} else {
- MakeSymbolLabel (&ea_label,NULL,ea_pref,rdef,0);
+ MakeSymbolLabel (&eu_label,NULL,eu_pref,rdef,0);
}
- ea_label_p=&ea_label;
+ eu_label_p=&eu_label;
} else
- ea_label_p=NULL;
+ eu_label_p=NULL;
if (DoTimeProfiling)
GenPB (rdef->sdef_ident->ident_name);
GenLazyRecordDescriptorAndExport (rdef);
- GenLazyRecordNodeEntryDirective (arity,&d_label,ea_label_p);
+ GenLazyRecordNodeEntryDirective (arity,&d_label,eu_label_p);
GenOAStackLayout (1);
GenLabelDefinition (&CurrentAltLabel);
GenPushNode (ReduceError,asp);
- if (ea_label_p!=NULL){
+ if (eu_label_p!=NULL){
GenOAStackLayout (arity+1);
if (DoTimeProfiling)
GenPN();
- GenLabelDefinition (&ea_label);
+ GenLabelDefinition (&eu_label);
}
asize=0;
diff --git a/backendC/CleanCompilerSources/instructions.c b/backendC/CleanCompilerSources/instructions.c
index 5987c76..b1a07f1 100644
--- a/backendC/CleanCompilerSources/instructions.c
+++ b/backendC/CleanCompilerSources/instructions.c
@@ -91,6 +91,7 @@ static void ConvertOptionsToString (char *optstring)
#define L_PREFIX "l"
#define EA_PREFIX "ea"
+#define EU_PREFIX "eu"
#define S_PREFIX "s"
#define R_PREFIX "r"
@@ -2564,6 +2565,14 @@ void GenExportEaEntry (SymbDef sdef)
}
}
+void GenExportEuEntry (SymbDef sdef)
+{
+ if (sdef->sdef_calledwithrootnode){
+ put_directive_ (Dexport);
+ FPrintF (OutFile,"e_%s_" EU_PREFIX "%s",CurrentModule,sdef->sdef_ident->ident_name);
+ }
+}
+
void GenDAStackLayout (int asize)
{
if (DoStackLayout){
diff --git a/backendC/CleanCompilerSources/instructions.h b/backendC/CleanCompilerSources/instructions.h
index 62d2b6c..21b4dce 100644
--- a/backendC/CleanCompilerSources/instructions.h
+++ b/backendC/CleanCompilerSources/instructions.h
@@ -145,6 +145,7 @@ void GenExportRecord (SymbDef sdef);
void GenExportFieldSelector (SymbDef sdef);
void GenExportStrictAndEaEntry (SymbDef sdef);
void GenExportEaEntry (SymbDef sdef);
+void GenExportEuEntry (SymbDef sdef);
void GenDAStackLayout (int asize);
void GenDStackLayoutOfStates (int asize,int bsize,int n_states,StateP state_p);