Patchwork tci: Fix broken build (regression)

login
register
mail settings
Submitter Stefan Weil
Date Jan. 19, 2013, 7:23 p.m.
Message ID <1358623431-22847-1-git-send-email-sw@weilnetz.de>
Download mbox | patch
Permalink /patch/213881/
State Accepted
Headers show

Comments

Stefan Weil - Jan. 19, 2013, 7:23 p.m.
s390x-linux-user now also uses GETPC. Instead of adding it to the list of
targets which use GETPC, the macro is now defined unconditionally.

This avoids future build regressions like this one:

  CC    s390x-linux-user/target-s390x/int_helper.o
cc1: warnings being treated as errors
qemu/target-s390x/int_helper.c: In function ‘helper_divs32’:
qemu/target-s390x/int_helper.c:47: error: implicit declaration of function ‘GETPC’
qemu/target-s390x/int_helper.c:47: error: nested extern declaration of ‘GETPC’

Signed-off-by: Stefan Weil <sw@weilnetz.de>
---

Hi Blue,

please commit this patch to fix compilations with TCI.

The performance decrease caused by using GETPC in TCI's interpreter loop
can be reduced in a better way by only setting tci_tb_ptr before calling
a helper function. This should be done in a separate patch.

Regards,
Stefan

 include/exec/exec-all.h |    8 +-------
 1 file changed, 1 insertion(+), 7 deletions(-)
Blue Swirl - Jan. 19, 2013, 8:25 p.m.
Thanks, applied.

On Sat, Jan 19, 2013 at 7:23 PM, Stefan Weil <sw@weilnetz.de> wrote:
>
> s390x-linux-user now also uses GETPC. Instead of adding it to the list of
> targets which use GETPC, the macro is now defined unconditionally.
>
> This avoids future build regressions like this one:
>
>   CC    s390x-linux-user/target-s390x/int_helper.o
> cc1: warnings being treated as errors
> qemu/target-s390x/int_helper.c: In function ‘helper_divs32’:
> qemu/target-s390x/int_helper.c:47: error: implicit declaration of function ‘GETPC’
> qemu/target-s390x/int_helper.c:47: error: nested extern declaration of ‘GETPC’
>
> Signed-off-by: Stefan Weil <sw@weilnetz.de>
> ---
>
> Hi Blue,
>
> please commit this patch to fix compilations with TCI.
>
> The performance decrease caused by using GETPC in TCI's interpreter loop
> can be reduced in a better way by only setting tci_tb_ptr before calling
> a helper function. This should be done in a separate patch.
>
> Regards,
> Stefan
>
>  include/exec/exec-all.h |    8 +-------
>  1 file changed, 1 insertion(+), 7 deletions(-)
>
> diff --git a/include/exec/exec-all.h b/include/exec/exec-all.h
> index 46dca74..d235ef8 100644
> --- a/include/exec/exec-all.h
> +++ b/include/exec/exec-all.h
> @@ -284,14 +284,8 @@ extern int tb_invalidated_flag;
>  /* The return address may point to the start of the next instruction.
>     Subtracting one gets us the call instruction itself.  */
>  #if defined(CONFIG_TCG_INTERPRETER)
> -/* Softmmu, Alpha, MIPS, SH4 and SPARC user mode emulations call GETPC().
> -   For all others, GETPC remains undefined (which makes TCI a little faster. */
> -# if defined(CONFIG_SOFTMMU) || \
> -    defined(TARGET_ALPHA) || defined(TARGET_MIPS) || \
> -    defined(TARGET_SH4) || defined(TARGET_SPARC)
>  extern uintptr_t tci_tb_ptr;
> -#  define GETPC() tci_tb_ptr
> -# endif
> +# define GETPC() tci_tb_ptr
>  #elif defined(__s390__) && !defined(__s390x__)
>  # define GETPC() \
>      (((uintptr_t)__builtin_return_address(0) & 0x7fffffffUL) - 1)
> --
> 1.7.10.4
>

Patch

diff --git a/include/exec/exec-all.h b/include/exec/exec-all.h
index 46dca74..d235ef8 100644
--- a/include/exec/exec-all.h
+++ b/include/exec/exec-all.h
@@ -284,14 +284,8 @@  extern int tb_invalidated_flag;
 /* The return address may point to the start of the next instruction.
    Subtracting one gets us the call instruction itself.  */
 #if defined(CONFIG_TCG_INTERPRETER)
-/* Softmmu, Alpha, MIPS, SH4 and SPARC user mode emulations call GETPC().
-   For all others, GETPC remains undefined (which makes TCI a little faster. */
-# if defined(CONFIG_SOFTMMU) || \
-    defined(TARGET_ALPHA) || defined(TARGET_MIPS) || \
-    defined(TARGET_SH4) || defined(TARGET_SPARC)
 extern uintptr_t tci_tb_ptr;
-#  define GETPC() tci_tb_ptr
-# endif
+# define GETPC() tci_tb_ptr
 #elif defined(__s390__) && !defined(__s390x__)
 # define GETPC() \
     (((uintptr_t)__builtin_return_address(0) & 0x7fffffffUL) - 1)