[09/67] target/arm: Fold a pc load into load_reg

Message ID 20190726175032.6769-10-richard.henderson@linaro.org
State New
Headers show
Series
  • target/arm: Convert aa32 base isa to decodetree
Related show

Commit Message

Richard Henderson July 26, 2019, 5:49 p.m.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>

---
 target/arm/translate.c | 6 +-----
 1 file changed, 1 insertion(+), 5 deletions(-)

-- 
2.17.1

Comments

Peter Maydell July 29, 2019, 2:27 p.m. | #1
On Fri, 26 Jul 2019 at 18:50, Richard Henderson
<richard.henderson@linaro.org> wrote:
>

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

> ---

>  target/arm/translate.c | 6 +-----

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

>

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

> index e316eeb312..53c46fcdc4 100644

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

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

> @@ -9161,11 +9161,7 @@ static void disas_arm_insn(DisasContext *s, unsigned int insn)

>                              }

>                          } else {

>                              /* store */

> -                            if (i == 15) {

> -                                /* special case: r15 = PC + 8 */

> -                                tmp = tcg_temp_new_i32();

> -                                tcg_gen_movi_i32(tmp, s->pc_read);

> -                            } else if (user) {

> +                            if (user && i != 15) {

>                                  tmp = tcg_temp_new_i32();

>                                  tmp2 = tcg_const_i32(i);

>                                  gen_helper_get_user_reg(tmp, cpu_env, tmp2);

> --

> 2.17.1


Reviewed-by: Peter Maydell <peter.maydell@linaro.org>


thanks
-- PMM

Patch

diff --git a/target/arm/translate.c b/target/arm/translate.c
index e316eeb312..53c46fcdc4 100644
--- a/target/arm/translate.c
+++ b/target/arm/translate.c
@@ -9161,11 +9161,7 @@  static void disas_arm_insn(DisasContext *s, unsigned int insn)
                             }
                         } else {
                             /* store */
-                            if (i == 15) {
-                                /* special case: r15 = PC + 8 */
-                                tmp = tcg_temp_new_i32();
-                                tcg_gen_movi_i32(tmp, s->pc_read);
-                            } else if (user) {
+                            if (user && i != 15) {
                                 tmp = tcg_temp_new_i32();
                                 tmp2 = tcg_const_i32(i);
                                 gen_helper_get_user_reg(tmp, cpu_env, tmp2);