added setcc calls to some incrementing ops
added patterns for indirect local and external increments added patterns for loe ine and such
This commit is contained in:
		
							parent
							
								
									59fa458a20
								
							
						
					
					
						commit
						6f8e6faa1f
					
				
					 1 changed files with 53 additions and 4 deletions
				
			
		|  | @ -1052,9 +1052,11 @@ lil ngi sil $1==$3 && $2==2 && inreg($1)==2 | | | ||||||
| 			INDSTORE | 			INDSTORE | ||||||
| 			"neg *%(regvar($1)%)" 		|	| | | 			"neg *%(regvar($1)%)" 		|	| | | ||||||
| lil inc sil $1==$3 && inreg($1)==2 | | INDSTORE | lil inc sil $1==$3 && inreg($1)==2 | | INDSTORE | ||||||
| 			"inc *%(regvar($1)%)"		|	| | | 			"inc *%(regvar($1)%)" | ||||||
|  | 			setcc({regdef2, regvar($1)})	|	| | | ||||||
| lil dec sil $1==$3 && inreg($1)==2 | | INDSTORE | lil dec sil $1==$3 && inreg($1)==2 | | INDSTORE | ||||||
| 			"dec *%(regvar($1)%)"		|	| | | 			"dec *%(regvar($1)%)" | ||||||
|  | 			setcc({regdef2, regvar($1)})	|	| | | ||||||
| lol adi stl $2==2 && $1==$3 && inreg($1)==2 | source2 | | lol adi stl $2==2 && $1==$3 && inreg($1)==2 | source2 | | ||||||
| 			remove(regvar($1)) | 			remove(regvar($1)) | ||||||
| 			"add %[1],%(regvar($1)%)" | 			"add %[1],%(regvar($1)%)" | ||||||
|  | @ -1105,6 +1107,18 @@ lol adp stl $1==$3 && inreg($1)==2 | | | ||||||
| 			remove(regvar($1)) | 			remove(regvar($1)) | ||||||
| 			"add $$$2,%(regvar($1)%)" | 			"add $$$2,%(regvar($1)%)" | ||||||
| 			erase(regvar($1))		|	| | | 			erase(regvar($1))		|	| | | ||||||
|  | lil adp sil $1==$3 && $2==1 && inreg($1)==2 | | | ||||||
|  | 			INDSTORE | ||||||
|  | 			"inc *%(regvar($1)%)" | ||||||
|  | 			erase(regvar($1))		|	| | | ||||||
|  | lil adp sil $1==$3 && $2==0-1 && inreg($1)==2 | | | ||||||
|  | 			INDSTORE | ||||||
|  | 			"dec *%(regvar($1)%)" | ||||||
|  | 			erase(regvar($1))		|	| | | ||||||
|  | lil adp sil $1==$3 && inreg($1)==2 | | | ||||||
|  | 			INDSTORE | ||||||
|  | 			"add $$$2,*%(regvar($1)%)" | ||||||
|  | 			erase(regvar($1))		|	| | | ||||||
| #endif | #endif | ||||||
| lol loc sbi stl $1==$4 && $3==2 | |  | lol loc sbi stl $1==$4 && $3==2 | |  | ||||||
| 			remove(indordef) | 			remove(indordef) | ||||||
|  | @ -1119,9 +1133,11 @@ lol ngi stl $1==$3 && $2==2 | | | ||||||
| lil ngi sil $1==$3 && $2==2 | | INDSTORE | lil ngi sil $1==$3 && $2==2 | | INDSTORE | ||||||
| 			"neg *$1(r5)"			|	| | | 			"neg *$1(r5)"			|	| | | ||||||
| lil inc sil $1==$3 | | INDSTORE | lil inc sil $1==$3 | | INDSTORE | ||||||
| 			"inc *$1(r5)"			|	| | | 			"inc *$1(r5)" | ||||||
|  | 			setcc({reginddef2, lb, tostring($1)})	|	| | | ||||||
| lil dec sil $1==$3 | | INDSTORE | lil dec sil $1==$3 | | INDSTORE | ||||||
| 			"dec *$1(r5)"			|	| | | 			"dec *$1(r5)" | ||||||
|  | 			setcc({reginddef2, lb, tostring($1)})	|	| | | ||||||
| lol adi stl $2==2 && $1==$3 | source2 | | lol adi stl $2==2 && $1==$3 | source2 | | ||||||
| 			remove(indordef) | 			remove(indordef) | ||||||
| 			remove(locals, %[ind] <= $1 && %[ind]+%[size] > $1) | 			remove(locals, %[ind] <= $1 && %[ind]+%[size] > $1) | ||||||
|  | @ -1142,6 +1158,18 @@ lol adp stl $1==$3 | | | ||||||
| 			remove(locals, %[ind] <= $1 && %[ind]+%[size] > $1) | 			remove(locals, %[ind] <= $1 && %[ind]+%[size] > $1) | ||||||
| 			"add $$$2,$1(r5)" | 			"add $$$2,$1(r5)" | ||||||
| 			setcc({LOCAL2,$1,2})		|	| | | 			setcc({LOCAL2,$1,2})		|	| | | ||||||
|  | lil adp sil $1==$3 && $2==1 | | | ||||||
|  | 			INDSTORE | ||||||
|  | 			"inc *$1(r5)" | ||||||
|  | 			setcc({LOCAL2,$1,2})		|	| | | ||||||
|  | lil adp sil $1==$3 && $2==0-1 | | | ||||||
|  | 			INDSTORE | ||||||
|  | 			"dec *$1(r5)" | ||||||
|  | 			setcc({LOCAL2,$1,2})		|	| | | ||||||
|  | lil adp sil $1==$3 | | | ||||||
|  | 			INDSTORE | ||||||
|  | 			"add $$$2,*$1(r5)" | ||||||
|  | 			setcc({LOCAL2,$1,2})		|	| | | ||||||
| loe adi ste $2==2 && $1==$3 | source2 | | loe adi ste $2==2 && $1==$3 | source2 | | ||||||
| 			remove(posextern) | 			remove(posextern) | ||||||
| 			"add %[1],$1" | 			"add %[1],$1" | ||||||
|  | @ -1158,6 +1186,27 @@ loe adp ste $1==$3 | | | ||||||
| 			remove(posextern) | 			remove(posextern) | ||||||
| 			"add $$$2,$1" | 			"add $$$2,$1" | ||||||
| 			setcc({relative2,$1})		|	| | | 			setcc({relative2,$1})		|	| | | ||||||
|  | loe loi adp loe sti $1==$4 && $2==2 && $5==2 && $3==1 | | | ||||||
|  | 			INDSTORE | ||||||
|  | 			"inc *$1" | ||||||
|  | 			setcc({reldef2,$1})		|	| | | ||||||
|  | loe loi adp loe sti $1==$4 && $2==2 && $5==2 && $3==0-1 | | | ||||||
|  | 			INDSTORE | ||||||
|  | 			"dec *$1" | ||||||
|  | 			setcc({reldef2,$1})		|	| | | ||||||
|  | loe loi adp loe sti $1==$4 && $2==2 && $5==2 | | | ||||||
|  | 			INDSTORE | ||||||
|  | 			"add $$$3,*$1" | ||||||
|  | 			setcc({reldef2,$1})		|	| | | ||||||
|  | loe ine $1==$2 | | | ||||||
|  | 			allocate(REG={relative2, $1})	| %[a]  | ||||||
|  | 							| ine $2 | | ||||||
|  | loe dee $1==$2 | | | ||||||
|  | 			allocate(REG={relative2, $1})	| %[a]  | ||||||
|  | 							| dee $2 | | ||||||
|  | loe loe adp ste $1==$2 && $2==$4 | | | ||||||
|  | 			allocate(REG={relative2, $1})	| %[a]  | ||||||
|  | 							| loe $2 adp $3 ste $2 | | ||||||
| #ifdef REGVARS | #ifdef REGVARS | ||||||
| lol ior stl $2==2 && $1==$3 && inreg($1)==2 | source2 | | lol ior stl $2==2 && $1==$3 && inreg($1)==2 | source2 | | ||||||
| 			remove(regvar($1)) | 			remove(regvar($1)) | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		
		Reference in a new issue