00001 // Copyright 2009-2010 Sandia Corporation. Under the terms 00002 // of Contract DE-AC04-94AL85000 with Sandia Corporation, the U.S. 00003 // Government retains certain rights in this software. 00004 // 00005 // Copyright (c) 2009-2010, Sandia Corporation 00006 // All rights reserved. 00007 // 00008 // This file is part of the SST software package. For license 00009 // information, see the LICENSE file in the top level directory of the 00010 // distribution. 00011 00012 #ifndef SSB_CV_LINK_H 00013 #define SSB_CV_LINK_H 00014 00015 #include <stdio.h> 00016 00017 00018 class convProc; 00019 00020 //: an entry in the create vector 00021 // 00022 // The create vector maps a logical register to a creator in the RUU 00023 // (and specific output operand) or the architected register file (if 00024 // RS_link is NULL) 00025 // 00026 //!SEC:ssBack 00027 struct CV_link { 00028 static void cv_init(convProc*); 00029 static void cv_dump(FILE *stream, convProc*); 00030 struct RUU_station *rs; /* creator's reservation station */ 00031 int odep_num; /* specific output operand */ 00032 }; 00033 00034 /* a NULL create vector entry */ 00035 extern CV_link CVLINK_NULL; 00036 00037 /* get a new create vector link */ 00038 #define CVLINK_INIT(CV, RS,ONUM) ((CV).rs = (RS), (CV).odep_num = (ONUM)) 00039 00040 /* size of the create vector (one entry per architected register) */ 00041 #define CV_BMAP_SZ (BITMAP_SIZE(MD_TOTAL_REGS+2)) 00042 00043 00044 #endif