diff mbox series

[1/3] target/arm: Remove redundant mmu_idx lookup

Message ID 20201008162155.161886-2-richard.henderson@linaro.org
State New
Headers show
Series target/arm: MTE fixes | expand

Commit Message

Richard Henderson Oct. 8, 2020, 4:21 p.m. UTC
We already have the full ARMMMUIdx as computed from the
function parameter.

For the purpose of regime_has_2_ranges, we can ignore any
difference between AccType_Normal and AccType_Unpriv, which
would be the only difference between the passed mmu_idx
and arm_mmu_idx_el.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
 target/arm/mte_helper.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

Comments

Philippe Mathieu-Daudé Oct. 8, 2020, 4:32 p.m. UTC | #1
On 10/8/20 6:21 PM, Richard Henderson wrote:
> We already have the full ARMMMUIdx as computed from the

> function parameter.

> 

> For the purpose of regime_has_2_ranges, we can ignore any

> difference between AccType_Normal and AccType_Unpriv, which

> would be the only difference between the passed mmu_idx

> and arm_mmu_idx_el.

> 

> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>

> ---

>  target/arm/mte_helper.c | 3 +--

>  1 file changed, 1 insertion(+), 2 deletions(-)

> 

> diff --git a/target/arm/mte_helper.c b/target/arm/mte_helper.c

> index 5615c6706c..734cc5ca67 100644

> --- a/target/arm/mte_helper.c

> +++ b/target/arm/mte_helper.c

> @@ -563,8 +563,7 @@ static void mte_check_fail(CPUARMState *env, uint32_t desc,

>  

>      case 2:

>          /* Tag check fail causes asynchronous flag set.  */

> -        mmu_idx = arm_mmu_idx_el(env, el);

> -        if (regime_has_2_ranges(mmu_idx)) {

> +        if (regime_has_2_ranges(arm_mmu_idx)) {

>              select = extract64(dirty_ptr, 55, 1);

>          } else {

>              select = 0;

> 


Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Vincenzo Frascino Oct. 9, 2020, 11:12 a.m. UTC | #2
On 10/8/20 5:21 PM, Richard Henderson wrote:
> We already have the full ARMMMUIdx as computed from the

> function parameter.

> 

> For the purpose of regime_has_2_ranges, we can ignore any

> difference between AccType_Normal and AccType_Unpriv, which

> would be the only difference between the passed mmu_idx

> and arm_mmu_idx_el.

> 

> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


Reviewed-by: Vincenzo Frascino <vincenzo.frascino@arm.com>

Tested-by: Vincenzo Frascino <vincenzo.frascino@arm.com>


> ---

>  target/arm/mte_helper.c | 3 +--

>  1 file changed, 1 insertion(+), 2 deletions(-)

> 

> diff --git a/target/arm/mte_helper.c b/target/arm/mte_helper.c

> index 5615c6706c..734cc5ca67 100644

> --- a/target/arm/mte_helper.c

> +++ b/target/arm/mte_helper.c

> @@ -563,8 +563,7 @@ static void mte_check_fail(CPUARMState *env, uint32_t desc,

>  

>      case 2:

>          /* Tag check fail causes asynchronous flag set.  */

> -        mmu_idx = arm_mmu_idx_el(env, el);

> -        if (regime_has_2_ranges(mmu_idx)) {

> +        if (regime_has_2_ranges(arm_mmu_idx)) {

>              select = extract64(dirty_ptr, 55, 1);

>          } else {

>              select = 0;

> 


-- 
Regards,
Vincenzo
diff mbox series

Patch

diff --git a/target/arm/mte_helper.c b/target/arm/mte_helper.c
index 5615c6706c..734cc5ca67 100644
--- a/target/arm/mte_helper.c
+++ b/target/arm/mte_helper.c
@@ -563,8 +563,7 @@  static void mte_check_fail(CPUARMState *env, uint32_t desc,
 
     case 2:
         /* Tag check fail causes asynchronous flag set.  */
-        mmu_idx = arm_mmu_idx_el(env, el);
-        if (regime_has_2_ranges(mmu_idx)) {
+        if (regime_has_2_ranges(arm_mmu_idx)) {
             select = extract64(dirty_ptr, 55, 1);
         } else {
             select = 0;