aboutsummaryrefslogtreecommitdiff
path: root/backend
diff options
context:
space:
mode:
authorjohnvg2003-10-16 09:25:25 +0000
committerjohnvg2003-10-16 09:25:25 +0000
commitebad94d9be9b6b8af7085a25110402e4ea49210d (patch)
tree31ecde05fc279ec2bd2e54c4af7cad41c5a72b52 /backend
parentenable tail recursion modulo cons optimisation (diff)
add extra attribute argument to BEFlatType and
the is_boxed_record argument to BERecordType, remove BEUpdateKind, increment version number git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1390 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
Diffstat (limited to 'backend')
-rw-r--r--backend/backend.icl26
1 files changed, 11 insertions, 15 deletions
diff --git a/backend/backend.icl b/backend/backend.icl
index 31bec37..907618c 100644
--- a/backend/backend.icl
+++ b/backend/backend.icl
@@ -36,7 +36,6 @@ from StdString import String;
:: BESymbKind :== Int;
:: BEArrayFunKind :== Int;
:: BESelectorKind :== Int;
-:: BEUpdateKind :== Int;
:: BESpecialIdentIndex :== Int;
BEGetVersion :: (!Int,!Int,!Int);
@@ -537,11 +536,11 @@ BENoTypes a0 = code {
}
// BETypeP BENoTypes ();
-BEFlatType :: !BESymbolP !BETypeVarListP !BackEnd -> (!BEFlatTypeP,!BackEnd);
-BEFlatType a0 a1 a2 = code {
- ccall BEFlatType "II:I:I"
+BEFlatType :: !BESymbolP !BEAttribution !BETypeVarListP !BackEnd -> (!BEFlatTypeP,!BackEnd);
+BEFlatType a0 a1 a2 a3 = code {
+ ccall BEFlatType "III:I:I"
}
-// BEFlatTypeP BEFlatType (BESymbolP symbol,BETypeVarListP arguments);
+// BEFlatTypeP BEFlatType (BESymbolP symbol,BEAttribution attribution,BETypeVarListP arguments);
BEAlgebraicType :: !BEFlatTypeP !BEConstructorListP !BackEnd -> BackEnd;
BEAlgebraicType a0 a1 a2 = code {
@@ -549,11 +548,11 @@ BEAlgebraicType a0 a1 a2 = code {
}
// void BEAlgebraicType (BEFlatTypeP lhs,BEConstructorListP constructors);
-BERecordType :: !Int !BEFlatTypeP !BETypeNodeP !BEFieldListP !BackEnd -> BackEnd;
-BERecordType a0 a1 a2 a3 a4 = code {
- ccall BERecordType "IIII:V:I"
+BERecordType :: !Int !BEFlatTypeP !BETypeNodeP !Int !BEFieldListP !BackEnd -> BackEnd;
+BERecordType a0 a1 a2 a3 a4 a5 = code {
+ ccall BERecordType "IIIII:V:I"
}
-// void BERecordType (int moduleIndex,BEFlatTypeP lhs,BETypeNodeP constructorType,BEFieldListP fields);
+// void BERecordType (int moduleIndex,BEFlatTypeP lhs,BETypeNodeP constructorType,int is_boxed_record,BEFieldListP fields);
BEAbsType :: !BEFlatTypeP !BackEnd -> BackEnd;
BEAbsType a0 a1 = code {
@@ -788,9 +787,9 @@ BEDynamicTempTypeSymbol a0 = code {
ccall BEDynamicTempTypeSymbol ":I:I"
}
// BESymbolP BEDynamicTempTypeSymbol ();
-kBEVersionCurrent:==0x02100400;
-kBEVersionOldestDefinition:==0x02030407;
-kBEVersionOldestImplementation:==0x02030407;
+kBEVersionCurrent:==0x02100401;
+kBEVersionOldestDefinition:==0x02100401;
+kBEVersionOldestImplementation:==0x02100401;
kBEDebug:==1;
kPredefinedModuleIndex:==1;
BENoAnnot:==0;
@@ -860,9 +859,6 @@ BESelector_U:==2;
BESelector_F:==3;
BESelector_L:==4;
BESelector_N:==5;
-BEUpdateDummy:==0;
-BEUpdate:==1;
-BEUpdate_U:==2;
BESpecialIdentStdMisc:==0;
BESpecialIdentAbort:==1;
BESpecialIdentUndef:==2;