Subversion Repositories Kolibri OS

Rev

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];