00001
00002 #ifndef OPTERONDEFS_H
00003 #define OPTERONDEFS_H
00004
00005 #include <stdio.h>
00006 #ifdef MEMDEBUG
00007 #include <duma.h>
00008 #endif
00009
00010 #ifndef EXTERN
00011 #define EXTERN extern
00012 #endif
00013
00014
00015 enum Category { UNKNOWN, GENERICINT, SPECIALINT, MULTINT, FLOAT };
00016
00017
00018 enum FunctionalUnitTypes { AGU = 1, ALU0 = 2, ALU1 = 4, ALU2 = 8,
00019 FADD = 16, FMUL = 32, FSTORE = 64 };
00020
00021 #define STEP1(v) ((v)&0xff)
00022 #define STEP2(v) (((v)>>8)&0xff)
00023 #define STEP3(v) (((v)>>16)&0xff)
00024 #define STEP4(v) (((v)>>24)&0xff)
00025
00026 #define HISTOGRAMSIZE 64
00027 #define MAXCANASSIGN 3
00028 #define AGU_LATENCY 1
00029
00030 typedef unsigned long long InstructionCount;
00031 typedef unsigned long long CycleCount;
00032 typedef unsigned long long Address;
00033
00034
00035 struct Dependency
00036 {
00037 InstructionCount consumer;
00038 unsigned int numProducers;
00039 unsigned int numReady;
00040 bool consumed;
00041 struct Dependency *next;
00042 };
00043
00044 EXTERN unsigned int Debug;
00045 EXTERN FILE *debugLogFP;
00046 EXTERN FILE *outputFP;
00047
00048 double genRandomProbability();
00049 void seedRandom(unsigned long seed);
00050
00051 #endif