Rev 7626 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 7626 | Rev 7700 | ||
---|---|---|---|
Line 661... | Line 661... | ||
661 | 661 | ||
Line 662... | Line 662... | ||
662 | void CheckReg(int idx,int base,int *reg1,int *reg2,int razr) |
662 | void CheckReg(int idx,int base,int *reg1,int *reg2,int razr) |
663 | { |
663 | { |
664 | if(razr==r32){ |
664 | if(razr==r32){ |
665 | unsigned char lreg[8]; |
665 | unsigned char lreg[16]; |
666 | int i; |
666 | int i; |
667 | for(i=0;i<8;i++){ |
667 | for(i=0;i<8;i++){ |
668 | if(i==ESP||i==EBP)lreg[i]=1; |
668 | if(i==ESP||i==EBP)lreg[i]=1; |
669 | else{ |
669 | else{ |
670 | if((idx!=-1&&idx==i)||(base!=-1&&base==i))lreg[i]=1; |
670 | if((idx!=-1&&idx==i)||(base!=-1&&base==i))lreg[i]=1; |
Line 673... | Line 673... | ||
673 | // printf("%c",lreg[i]+'0'); |
673 | // printf("%c",lreg[i]+'0'); |
674 | } |
674 | } |
675 | if(lreg[*reg1]==0)lreg[*reg1]=1; |
675 | if(lreg[*reg1]==0)lreg[*reg1]=1; |
676 | else{ |
676 | else{ |
677 | for(i=7;i>=0;i--){ // fix by cppcheck, side effect - enable EAX |
677 | for(i=8;i!=0;i--){ |
678 | if(lreg[i]==0){ |
678 | if(lreg[i]==0){ |
679 | lreg[i]=1; |
679 | lreg[i]=1; |
680 | *reg1=i; |
680 | *reg1=i; |
681 | break; |
681 | break; |
682 | } |
682 | } |
683 | } |
683 | } |
684 | } |
684 | } |
685 | // printf("\nreg1=%d",*reg1); |
685 | // printf("\nreg1=%d",*reg1); |
686 | if(lreg[*reg2]!=0){ |
686 | if(lreg[*reg2]!=0){ |
687 | for(i=7;i>=0;i--){ // fix by cppcheck, side effect - enable EAX |
687 | for(i=8;i!=0;i--){ |
688 | if(lreg[i]==0){ |
688 | if(lreg[i]==0){ |
689 | *reg2=i; |
689 | *reg2=i; |
690 | break; |
690 | break; |
691 | } |
691 | } |
692 | } |
692 | } |
693 | } |
693 | } |
Line 4092... | Line 4092... | ||
4092 | } |
4092 | } |
4093 | return i; |
4093 | return i; |
4094 | } |
4094 | } |
4095 | 4095 | ||
Line 4096... | Line 4096... | ||
4096 | int FastSearch(unsigned char *list,short *ofs,int type,char *str) |
4096 | int FastSearch(unsigned char *list,short unsigned *ofs,int type,char *str) |
4097 | { |
4097 | { |
4098 | if((strlen(str)-1)>0){ |
4098 | if((strlen(str)-1)>0){ |
4099 | short offs=-1; |
4099 | short offs=-1; |
4100 | unsigned char c; |
4100 | unsigned char c; |
4101 | c=str[0]; |
4101 | c=str[0]; |