exec-all: Translate TCI return addresses backwards too
This subtraction of return addresses applies directly to TCI as well as host-TCG. This fixes Linux boots for at least Microblaze, CRIS, ARM and SH4 when using TCI. [sw: Removed indentation for preprocessor statement] [sw: The patch also fixes Linux boot for x86_64] Reviewed-by: Richard Henderson <rth@twiddle.net> Signed-off-by: Stefan Weil <sw@weilnetz.de> Signed-off-by: Peter Crosthwaite <crosthwaite.peter@gmail.com>
This commit is contained in:
		
							parent
							
								
									47c9dfee80
								
							
						
					
					
						commit
						a17d448274
					
				| 
						 | 
					@ -357,11 +357,7 @@ extern uintptr_t tci_tb_ptr;
 | 
				
			||||||
   to indicate the compressed mode; subtracting two works around that.  It
 | 
					   to indicate the compressed mode; subtracting two works around that.  It
 | 
				
			||||||
   is also the case that there are no host isas that contain a call insn
 | 
					   is also the case that there are no host isas that contain a call insn
 | 
				
			||||||
   smaller than 4 bytes, so we don't worry about special-casing this.  */
 | 
					   smaller than 4 bytes, so we don't worry about special-casing this.  */
 | 
				
			||||||
#if defined(CONFIG_TCG_INTERPRETER)
 | 
					#define GETPC_ADJ   2
 | 
				
			||||||
# define GETPC_ADJ   0
 | 
					 | 
				
			||||||
#else
 | 
					 | 
				
			||||||
# define GETPC_ADJ   2
 | 
					 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define GETPC()  (GETRA() - GETPC_ADJ)
 | 
					#define GETPC()  (GETRA() - GETPC_ADJ)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue