00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 # include "incls/_precompiled.incl"
00025 # include "incls/_lookupTypes.cpp.incl"
00026
00027 # include <string.h>
00028
00029 #ifdef junk
00030
00031 void printLookupType(LookupType l) {
00032 lprintf(lookupTypeName(l));
00033 }
00034
00035 static void addFlag(bool& flag, char* name, const char* add) {
00036 if (!flag) strcat(name, " { ");
00037 flag = true;
00038 strcat(name, add);
00039 }
00040
00041 char* lookupTypeName(LookupType l) {
00042 char* name = NEW_RESOURCE_ARRAY(char, 80);
00043 switch (withoutExtraBits(l)) {
00044 case NormalLookupType:
00045 strcpy(name, "NormalLookup");
00046 break;
00047 case SelfLookupType:
00048 strcpy(name, "SelfLookup");
00049 break;
00050 case SuperLookupType:
00051 strcpy(name, "SuperLookup");
00052 break;
00053 default:
00054 fatal("Unknown lookupType");
00055 }
00056 bool hasFlag = false;
00057 switch (countType(l)) {
00058 case NonCounting: break;
00059 case Counting: addFlag(hasFlag, name, "counting "); break;
00060 case Comparing: addFlag(hasFlag, name, "comparing "); break;
00061 default: fatal1("invalid count type %ld", countType(l));
00062 }
00063 if (isSet(l, DirtySendBit)) addFlag(hasFlag, name, "dirty ");
00064 if (isSet(l, OptimizedSendBit)) addFlag(hasFlag, name, "optimized ");
00065 if (isSet(l, UninlinableSendBit)) addFlag(hasFlag, name, "uninlinable ");
00066 if (hasFlag) strcat(name, "}");
00067
00068 return name;
00069 }
00070
00071 void kinds_init() {
00072 assert((LookupTypeMask >> LookupTypeSize) == 0, "wrong LookupTypeSize");
00073 assert((CountTypeMask >> CountTypeSize) == 0, "wrong CountTypeSize");
00074 }
00075 #endif