• Main Page
  • Related Pages
  • Modules
  • Data Structures
  • Files
  • File List
  • Globals

sst/elements/mcopteron/OpteronDefs.h

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 /// High level instruction categories
00015 enum Category { UNKNOWN, GENERICINT, SPECIALINT, MULTINT, FLOAT };
00016 
00017 /// Functional Unit Designators
00018 enum FunctionalUnitTypes { AGU = 1, ALU0 = 2, ALU1 = 4, ALU2 = 8,
00019                            FADD = 16, FMUL = 32, FSTORE = 64 };
00020 // Access byte bitmask for up to four instruction steps
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  ///< Opteron decode path allows 3 insns/cycle
00028 #define AGU_LATENCY 1   ///< # of cycles to generate address in AGU
00029 
00030 typedef unsigned long long InstructionCount;
00031 typedef unsigned long long CycleCount;
00032 typedef unsigned long long Address;
00033 
00034 /// Records of inter-instruction data dependencies
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

Generated on Fri Oct 22 2010 11:02:25 for SST by  doxygen 1.7.1