bug fixes in RMI and EXG
This commit is contained in:
		
							parent
							
								
									8116e3181f
								
							
						
					
					
						commit
						80d363eac5
					
				
					 1 changed files with 18 additions and 14 deletions
				
			
		|  | @ -170,30 +170,34 @@ adispldefind8 =	{REGISTER ireg,reg; STRING ind;} 4 cost=(3,13) | |||
| 
 | ||||
| TOKENEXPRESSIONS: | ||||
| CONST =		CONST1 + CONST2 + CONST4 | ||||
| source1 =	regdef1 + displ1 + displdef1 + | ||||
| Xsource1 =	regdef1 + displ1 + displdef1 + | ||||
| 		EXTERNAL1 + reldef1 + CONST1 + LOCAL1 | ||||
| 		+ displind1 + extdefind1 + displdefind1 | ||||
| source1 =	Xsource1 | ||||
| #ifdef REGVARS | ||||
| 		+ reginc1 + regdec1 | ||||
| #endif REGVARS | ||||
| source2 =	regdef2 + displ2 + displdef2 + | ||||
| Xsource2 =	regdef2 + displ2 + displdef2 + | ||||
| 		EXTERNAL2 + reldef2 + CONST2 + LOCAL2 | ||||
| 		+ extind2 + displind2 + extdefind2 + displdefind2 | ||||
| source2 =	Xsource2 | ||||
| #ifdef REGVARS | ||||
| 		+ reginc2 + regdec2 | ||||
| #endif REGVARS | ||||
| source4 =	REG + regdef4 + displ4 + displdef4 + LocaLBase + | ||||
| Xsource4 =	REG + regdef4 + displ4 + displdef4 + LocaLBase + | ||||
| 		EXTERNAL4 + reldef4 + CONST + DOUBLE + LOCAL4 + FCONST4 | ||||
| 		+ extind4 + displind4 + extdefind4 + displdefind4 | ||||
| source4 =	Xsource4 | ||||
| #ifdef REGVARS | ||||
| 		+ RREG + reginc4 + regdec4 | ||||
| #endif REGVARS | ||||
| dups4 =		CONST + regdef1 + displ1 + LOCAL1 + | ||||
| 		REG +	regdef2 + displ2 + LOCAL2 + | ||||
| 		RREG +	regdef4 + displ4 + LOCAL4 + DOUBLE | ||||
| source8 =	QREG + regdef8 + displ8 + displdef8 + | ||||
| Xsource8 =	QREG + regdef8 + displ8 + displdef8 + | ||||
| 		EXTERNAL8 + reldef8 + CONST8 + LOCAL8 + FCONST8 | ||||
| 		+ extind8 + displind8 + extdefind8 + displdefind8 | ||||
| source8 =	Xsource8 | ||||
| #ifdef REGVARS | ||||
| 		+ reginc8 + regdec8 | ||||
| #endif REGVARS | ||||
|  | @ -854,7 +858,7 @@ dvi !defined($1) | source4 | | |||
| 			remove(ALL) | ||||
| 			move(%[1],R0) | ||||
| 			"jsb\t.dvi"			     |	     | | | ||||
| rmi $1==4	| source4 source4 | | ||||
| rmi $1==4	| Xsource4 Xsource4 | | ||||
| 			allocate(REG) | ||||
| 			"divl3\t%[1],%[2],%[a]" | ||||
| 			"mull2\t%[1],%[a]" | ||||
|  | @ -862,7 +866,7 @@ rmi $1==4	| source4 source4 | | |||
| 			setcc(%[a])				| %[a]	 | | | ||||
| #ifdef REGVARS | ||||
| rmi stl $1==4 && inreg($2)==2 | ||||
| 		| source4 source4 | | ||||
| 		| Xsource4 Xsource4 | | ||||
| 			remove(regvar($2)) | ||||
| 			allocate(REG) | ||||
| 			"divl3\t%[1],%[2],%[a]" | ||||
|  | @ -872,7 +876,7 @@ rmi stl $1==4 && inreg($2)==2 | |||
| 			setcc(regvar($2))		|	| | | ||||
| #endif REGVARS | ||||
| rmi stl $1==4 && $2<0 | ||||
| 		| source4 source4 | | ||||
| 		| Xsource4 Xsource4 | | ||||
| 			remove(displaced) | ||||
| 			remove(LOCALS,(%[num]<=$2+3 && %[num]+%[size]>$2)) | ||||
| 			allocate(REG) | ||||
|  | @ -881,7 +885,7 @@ rmi stl $1==4 && $2<0 | |||
| 			"subl3\t%[a],%[2],$2(fp)" | ||||
| 			setcc({LOCAL4,LB,$2,4})		|	| | | ||||
| rmi stl $1==4 && $2>=0 | ||||
| 		| source4 source4 | | ||||
| 		| Xsource4 Xsource4 | | ||||
| 			remove(displaced) | ||||
| 			remove(LOCALS,(%[num]<=$2+3 && %[num]+%[size]>$2)) | ||||
| 			allocate(REG) | ||||
|  | @ -891,7 +895,7 @@ rmi stl $1==4 && $2>=0 | |||
| 			setcc({LOCAL4,AP,$2,4})		|	| | | ||||
| #ifdef REGVARS | ||||
| rmi sil $1==4 && inreg($2)==2 | ||||
| 		| source4 source4 | | ||||
| 		| Xsource4 Xsource4 | | ||||
| 			REMEXTANDLOC | ||||
| 			allocate(REG) | ||||
| 			"divl3\t%[1],%[2],%[a]" | ||||
|  | @ -900,7 +904,7 @@ rmi sil $1==4 && inreg($2)==2 | |||
| 			setcc({regdef4,regvar($2)})	|	| | | ||||
| #endif REGVARS | ||||
| rmi sil $1==4 && $2<0 | ||||
| 		| source4 source4 | | ||||
| 		| Xsource4 Xsource4 | | ||||
| 			REMEXTANDLOC | ||||
| 			allocate(REG) | ||||
| 			"divl3\t%[1],%[2],%[a]" | ||||
|  | @ -908,14 +912,14 @@ rmi sil $1==4 && $2<0 | |||
| 			"subl3\t%[a],%[2],*$2(fp)" | ||||
| 			setcc({displdef4,LB,tostring($2)})	|	| | | ||||
| rmi sil $1==4 && $2>=0 | ||||
| 		| source4 source4 | | ||||
| 		| Xsource4 Xsource4 | | ||||
| 			REMEXTANDLOC | ||||
| 			allocate(REG) | ||||
| 			"divl3\t%[1],%[2],%[a]" | ||||
| 			"mull2\t%[1],%[a]" | ||||
| 			"subl3\t%[a],%[2],*$2(ap)" | ||||
| 			setcc({displdef4,AP,tostring($2)})	|	| | | ||||
| rmi ste $1==4	| source4 source4 | | ||||
| rmi ste $1==4	| Xsource4 Xsource4 | | ||||
| 			remove(externals) | ||||
| 			allocate(REG) | ||||
| 			"divl3\t%[1],%[2],%[a]" | ||||
|  | @ -4379,8 +4383,8 @@ dus !defined($1) | source4 | | |||
| 			move(%[1],R0) | ||||
| 			"jsb\t.dus" | ||||
| 			erase(R0)		|	| | | ||||
| exg $1==4	| bigsource4 bigsource4 |	| %[1] %[2] | | | ||||
| exg $1==8	| bigsource8 bigsource8 |	| %[1] %[2] | | | ||||
| exg $1==4	| bigsource4-source4+Xsource4 bigsource4-source4+Xsource4 |	| %[1] %[2] | | | ||||
| exg $1==8	| bigsource8-source8+Xsource8 bigsource8-source8+Xsource8 |	| %[1] %[2] | | | ||||
| exg defined($1) | STACK | | ||||
| 			move({CONST4,$1},R0) | ||||
| 			"jsb\t.exg" | ||||
|  |  | |||
		Loading…
	
	Add table
		
		Reference in a new issue