diff mbox

[v2,2/3] target-sparc: address_mask(), asi_address_mask() are TARGET_SPARC64 only

Message ID 1409658764-28113-3-git-send-email-peter.maydell@linaro.org
State New
Headers show

Commit Message

Peter Maydell Sept. 2, 2014, 11:52 a.m. UTC
The address_mask() and asi_address_mask() functions are only used in
TARGET_SPARC64 configs, so guard with ifdefs to avoid warnings about
unused functions in 32-bit builds.

Since the main reason these functions were marked 'inline' was to
suppress unused-function warnings with gcc, we remove the 'inline'
as no longer necessary.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
---
 target-sparc/ldst_helper.c | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

Comments

Artyom Tarasenko Sept. 3, 2014, 8:49 a.m. UTC | #1
On Tue, Sep 2, 2014 at 1:52 PM, Peter Maydell <peter.maydell@linaro.org> wrote:
> The address_mask() and asi_address_mask() functions are only used in
> TARGET_SPARC64 configs, so guard with ifdefs to avoid warnings about
> unused functions in 32-bit builds.
>
> Since the main reason these functions were marked 'inline' was to
> suppress unused-function warnings with gcc, we remove the 'inline'
> as no longer necessary.

I thought address_mask was inline because it's in the hot path.
Wouldn't the removal hit performance?

Artyom

> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
> ---
>  target-sparc/ldst_helper.c | 10 +++++++---
>  1 file changed, 7 insertions(+), 3 deletions(-)
>
> diff --git a/target-sparc/ldst_helper.c b/target-sparc/ldst_helper.c
> index 1a62e19..2d028a5 100644
> --- a/target-sparc/ldst_helper.c
> +++ b/target-sparc/ldst_helper.c
> @@ -250,7 +250,8 @@ static void replace_tlb_1bit_lru(SparcTLBEntry *tlb,
>
>  #endif
>
> -static inline target_ulong address_mask(CPUSPARCState *env1, target_ulong addr)
> +#if defined(TARGET_SPARC64) || defined(CONFIG_USER_ONLY)
> +static target_ulong address_mask(CPUSPARCState *env1, target_ulong addr)
>  {
>  #ifdef TARGET_SPARC64
>      if (AM_CHECK(env1)) {
> @@ -259,6 +260,7 @@ static inline target_ulong address_mask(CPUSPARCState *env1, target_ulong addr)
>  #endif
>      return addr;
>  }
> +#endif
>
>  /* returns true if access using this ASI is to have address translated by MMU
>     otherwise access is to raw physical address */
> @@ -287,8 +289,9 @@ static inline int is_translating_asi(int asi)
>  #endif
>  }
>
> -static inline target_ulong asi_address_mask(CPUSPARCState *env,
> -                                            int asi, target_ulong addr)
> +#ifdef TARGET_SPARC64
> +static target_ulong asi_address_mask(CPUSPARCState *env,
> +                                     int asi, target_ulong addr)
>  {
>      if (is_translating_asi(asi)) {
>          return address_mask(env, addr);
> @@ -296,6 +299,7 @@ static inline target_ulong asi_address_mask(CPUSPARCState *env,
>          return addr;
>      }
>  }
> +#endif
>
>  void helper_check_align(CPUSPARCState *env, target_ulong addr, uint32_t align)
>  {
> --
> 1.9.1
>
>
Richard Henderson Sept. 3, 2014, 3:09 p.m. UTC | #2
On 09/03/2014 01:49 AM, Artyom Tarasenko wrote:
> On Tue, Sep 2, 2014 at 1:52 PM, Peter Maydell <peter.maydell@linaro.org> wrote:
>> The address_mask() and asi_address_mask() functions are only used in
>> TARGET_SPARC64 configs, so guard with ifdefs to avoid warnings about
>> unused functions in 32-bit builds.
>>
>> Since the main reason these functions were marked 'inline' was to
>> suppress unused-function warnings with gcc, we remove the 'inline'
>> as no longer necessary.
> 
> I thought address_mask was inline because it's in the hot path.
> Wouldn't the removal hit performance?

The compiler will probably inline it itself as it sees fit.


r~
diff mbox

Patch

diff --git a/target-sparc/ldst_helper.c b/target-sparc/ldst_helper.c
index 1a62e19..2d028a5 100644
--- a/target-sparc/ldst_helper.c
+++ b/target-sparc/ldst_helper.c
@@ -250,7 +250,8 @@  static void replace_tlb_1bit_lru(SparcTLBEntry *tlb,
 
 #endif
 
-static inline target_ulong address_mask(CPUSPARCState *env1, target_ulong addr)
+#if defined(TARGET_SPARC64) || defined(CONFIG_USER_ONLY)
+static target_ulong address_mask(CPUSPARCState *env1, target_ulong addr)
 {
 #ifdef TARGET_SPARC64
     if (AM_CHECK(env1)) {
@@ -259,6 +260,7 @@  static inline target_ulong address_mask(CPUSPARCState *env1, target_ulong addr)
 #endif
     return addr;
 }
+#endif
 
 /* returns true if access using this ASI is to have address translated by MMU
    otherwise access is to raw physical address */
@@ -287,8 +289,9 @@  static inline int is_translating_asi(int asi)
 #endif
 }
 
-static inline target_ulong asi_address_mask(CPUSPARCState *env,
-                                            int asi, target_ulong addr)
+#ifdef TARGET_SPARC64
+static target_ulong asi_address_mask(CPUSPARCState *env,
+                                     int asi, target_ulong addr)
 {
     if (is_translating_asi(asi)) {
         return address_mask(env, addr);
@@ -296,6 +299,7 @@  static inline target_ulong asi_address_mask(CPUSPARCState *env,
         return addr;
     }
 }
+#endif
 
 void helper_check_align(CPUSPARCState *env, target_ulong addr, uint32_t align)
 {