From: Peter Crosthwaite Date: Tue, 18 Aug 2015 03:28:18 +0000 (-0700) Subject: exec-all: Translate TCI return addresses backwards too X-Git-Tag: v2.4.1~50 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=637dd0bb7c0e8a3275230b771085439f256b403d;p=thirdparty%2Fqemu.git 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 Signed-off-by: Stefan Weil Signed-off-by: Peter Crosthwaite (cherry picked from commit a17d448274575efbfcc1c04ec2641a0afeb74e17) Signed-off-by: Michael Roth --- diff --git a/include/exec/exec-all.h b/include/exec/exec-all.h index a6fce04f651..60f12bc65cc 100644 --- a/include/exec/exec-all.h +++ b/include/exec/exec-all.h @@ -308,11 +308,7 @@ extern uintptr_t tci_tb_ptr; 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 smaller than 4 bytes, so we don't worry about special-casing this. */ -#if defined(CONFIG_TCG_INTERPRETER) -# define GETPC_ADJ 0 -#else -# define GETPC_ADJ 2 -#endif +#define GETPC_ADJ 2 #define GETPC() (GETRA() - GETPC_ADJ)