+ PCOW2(PCI(pcd)->pcop)->matched = PCOP2(PCI(pcs)->pcop)->pcopR;
+ if(!peepBlock->target.wildpCodeOps[index]) {
+ peepBlock->target.wildpCodeOps[index] = PCOP2(PCI(pcs)->pcop)->pcopR;
+
+ //if(PCI(pcs)->pcop->type == PO_GPR_TEMP)
+
+ } else {
+ /*
+ pcs->print(stderr,pcs);
+ pcd->print(stderr,pcd);
+
+ fprintf(stderr, "comparing operands of these instructions, result %d\n",
+ pCodeOpCompare(PCI(pcs)->pcop, peepBlock->target.wildpCodeOps[index])
+ );
+ */
+
+ return ((havematch==1) && pCodeOpCompare(PCOP2(PCI(pcs)->pcop)->pcopR,
+ peepBlock->target.wildpCodeOps[index]));
+ }
+
+ if(PCOP2(PCI(pcs)->pcop)->pcopR) {
+ char *n;
+
+ switch(PCOP2(PCI(pcs)->pcop)->pcopR->type) {
+ case PO_GPR_TEMP:
+ case PO_FSR0:
+ //case PO_INDF0:
+ n = PCOR(PCOP2(PCI(pcs)->pcop)->pcopR)->r->name;
+ break;
+ default:
+ n = PCOP2(PCI(pcs)->pcop)->pcopR->name;
+ }
+
+ if(peepBlock->target.vars[index])
+ return (havematch && (strcmp(peepBlock->target.vars[index],n) == 0));
+ else {
+ DFPRINTF((stderr,"first time for a variable: %d, %s\n",index,n));
+ peepBlock->target.vars[index] = n;
+ return (havematch==1); //&& 1;
+ }
+ }
+
+ } else if (PCOW2(PCI(pcd)->pcop) && (PCOP2(PCI(pcd)->pcop)->pcopR->type == PO_WILD) && PCOP2(PCI(pcs)->pcop)->pcopR)
+ {
+ return 0;
+ } else {
+ return havematch;