kmapi_result kmapi_init_split_issue_data(kmapi_knobs_t *pKMnobs) { int i; int nSplits; kapi_bid_t bid; int nBid; nSplits=KAPI_count4attribute(pKMnobs->pKnobs,"SPLIT_ISSUE"); nBid=KAPI_EnumCardinality(pKMnobs->pKnobs,"bid_t"); pKMnobs->dmpSplitRules=(kmapi_split_rule_t *)malloc(sizeof(kmapi_split_rule_t)*nBid); for (i=0;i<nBid;i++) { pKMnobs->dmpSplitRules[i].bid=i; pKMnobs->dmpSplitRules[i].bvSplits=0; pKMnobs->dmpSplitRules[i].pSplitExeptions=NULL; } for (i=0;i<nSplits;i++) if (kmapi_success!=kmapi_parse_split(pKMnobs,KAPI_attribute4index(pKMnobs->pKnobs,"SPLIT_ISSUE",i),&bid)) return kmapi_failure; pKMnobs->cSplitRules=nSplits; return kmapi_success; }
void dump_instruction_fus(FILE *fp, void *pknobs) { int num_of_insts,iid,dummy; kapi_fu_t fu; knobs_t *pIknobs; typedef struct { int x; int *ix; char *gogo; int nx[2]; } xtest; typedef struct { int nxs; xtest *pxtest; xtest *ppx[2]; char *dx; } ytest; static int yy[]={5,5}; static xtest xx[]= {{2,yy,"gogo",{0,0}}, {2,yy,"gogo",{0,0}}}; static xtest zz[2]= {{2,yy,"gogo",{0,0}}, {2,yy,"gogo",{0,0}}}; static ytest ylast={2, &(zz[1]), {xx,zz}, "gugunza", }; char *str; char *cIdx; char buffer[100]; int idx; int iVal; FILE *fpTab=fopen("tryTab.c","w"); int expressions=KAPI_EnumCardinality(pknobs,"expressions"); int i0,i1,m0,m1; i0=KAPI_EnumIndex(pknobs,"port_t","portI0"); i1=KAPI_EnumIndex(pknobs,"port_t","portI1"); m0=KAPI_EnumIndex(pknobs,"port_t","portM0"); m1=KAPI_EnumIndex(pknobs,"port_t","portM1"); dummy=KAPI_cportMask4ut(pknobs,0,kapi_utI); iVal=(1 << i0) | (1 << i1); /* dummy=KAPI_portMask4ut(pknobs,0,kapi_utI); */ dummy=KAPI_cportMask4ut(pknobs,0,kapi_utM); iVal=(1 << m0) | (1 << m1); dummy=KAPI_cportMask4ut(pknobs,0,kapi_utF); dummy=KAPI_cportMask4ut(pknobs,0,kapi_utB); dummy=KAPI_fuCount(pknobs); num_of_insts=KAPI_iidCount(pknobs); _strset(buffer,0); str="#include \"tryhead.h\"\n\ninst_info_tab_t infoTab[] = {\n"; fwrite(str,sizeof(char),strlen(str),fp); for (iid=0;iid<num_of_insts;iid++) { _strset(buffer,0); str=KAPI_iid2uniqueName(pknobs,iid,dummy); fwrite(str,sizeof(char),strlen(str),fp); fwrite(",",sizeof(char),1,fp); fu=KAPI_iid2fu(pknobs,iid,dummy); strcat(buffer,"/* "); strcat(buffer,KAPI_fu2fuName(pknobs,fu,dummy)); strcat(buffer," */"); fwrite(buffer,sizeof(char),strlen(buffer),fp); *buffer='\0'; _itoa(fu,buffer,10); fwrite(buffer,sizeof(char),strlen(buffer),fp); fwrite(",",sizeof(char),1,fp); fwrite("\n",sizeof(char),1,fp); } _strset(buffer,0); str="0,0\n};\n/*"; fwrite(str,sizeof(char),strlen(str),fp); for (idx=0;idx<expressions;idx++) { *buffer='\0'; cIdx=KAPI_EnumName(pknobs,idx,"expressions"); iVal=KAPI_GetIntegerVariable(pknobs,"expr",idx); sprintf(buffer,"[%s] = %d\n",cIdx,iVal); fwrite(buffer,sizeof(char),strlen(buffer),fp); } _strset(buffer,0); str="*/\n\n"; fwrite(str,sizeof(char),strlen(str),fp); printf("finished Try\n"); fclose(fp); fp=fopen("T1.c","w"); KAPI_save_as_header_all_IA64_info( fp, pknobs , "trying123"); printf("finished T1\n"); fclose(fp); fclose(fpTab); //KAPI_fEnableIA64call_from_header(&pknobs,&trying123,0); fp=fopen("T2.c","w"); KAPI_save_as_header_all_IA64_info( fp, pknobs , "trying123"); fclose(fp); printf("finished T2\n"); // pKmapiInfo=KMAPI_initialize(pknobs); if (pKmapiInfo!=NULL) printf("Kmapi initialized!\n"); else { printf("Kmapi Initialization Failed!\n"); } //_getch(); }