From: Peter Crosthwaite <crosthwaitepe...@gmail.com> 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 <r...@twiddle.net> Signed-off-by: Stefan Weil <s...@weilnetz.de> Signed-off-by: Peter Crosthwaite <crosthwaite.pe...@gmail.com> --- include/exec/exec-all.h | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/include/exec/exec-all.h b/include/exec/exec-all.h index fbc6dcb..83b9251 100644 --- a/include/exec/exec-all.h +++ b/include/exec/exec-all.h @@ -357,11 +357,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) -- 2.1.4