target-xtensa: fix LOOPNEZ/LOOPGTZ translation
Translation of LOOP instructions used to call LEND SR write handler to update LEND and invalidate relevant TBs. Now that LEND SR write handler ends TB, LOOPNEZ and LOOPGTZ generate wrong code (same as for simple LOOP). Fix it by calling wsr_lend helper directly. Signed-off-by: Max Filippov <jcmvbkbc@gmail.com> Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
This commit is contained in:
		
							parent
							
								
									f91837a7f1
								
							
						
					
					
						commit
						b18b37f7c5
					
				| 
						 | 
				
			
			@ -2278,7 +2278,7 @@ static void disas_xtensa_insn(DisasContext *dc)
 | 
			
		|||
 | 
			
		||||
                        tcg_gen_subi_i32(cpu_SR[LCOUNT], cpu_R[RRI8_S], 1);
 | 
			
		||||
                        tcg_gen_movi_i32(cpu_SR[LBEG], dc->next_pc);
 | 
			
		||||
                        gen_wsr_lend(dc, LEND, tmp);
 | 
			
		||||
                        gen_helper_wsr_lend(tmp);
 | 
			
		||||
                        tcg_temp_free(tmp);
 | 
			
		||||
 | 
			
		||||
                        if (BRI8_R > 8) {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue