All of lore.kernel.org
 help / color / mirror / Atom feed
From: Richard Henderson <richard.henderson@linaro.org>
To: qemu-devel@nongnu.org
Cc: edgar.iglesias@xilinx.com
Subject: [PATCH v2 13/76] target/microblaze: Fix width of PC and BTARGET
Date: Fri, 28 Aug 2020 07:18:26 -0700	[thread overview]
Message-ID: <20200828141929.77854-14-richard.henderson@linaro.org> (raw)
In-Reply-To: <20200828141929.77854-1-richard.henderson@linaro.org>

The program counter is only 32-bits wide.  Do not use a 64-bit
type to represent it.  Since they are so closely related, fix
btarget at the same time.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
 target/microblaze/cpu.h       |  4 +-
 target/microblaze/helper.c    | 16 +++----
 target/microblaze/mmu.c       |  4 +-
 target/microblaze/op_helper.c |  4 +-
 target/microblaze/translate.c | 78 ++++++++++++++---------------------
 5 files changed, 43 insertions(+), 63 deletions(-)

diff --git a/target/microblaze/cpu.h b/target/microblaze/cpu.h
index 610ddfb719..f4c3c09b09 100644
--- a/target/microblaze/cpu.h
+++ b/target/microblaze/cpu.h
@@ -231,12 +231,12 @@ typedef struct CPUMBState CPUMBState;
 struct CPUMBState {
     uint32_t debug;
     uint32_t btaken;
-    uint64_t btarget;
+    uint32_t btarget;
     uint32_t bimm;
 
     uint32_t imm;
     uint32_t regs[32];
-    uint64_t pc;
+    uint32_t pc;
     uint64_t msr;
     uint64_t ear;
     uint64_t esr;
diff --git a/target/microblaze/helper.c b/target/microblaze/helper.c
index b240dc76f6..b95617a81a 100644
--- a/target/microblaze/helper.c
+++ b/target/microblaze/helper.c
@@ -143,7 +143,7 @@ void mb_cpu_do_interrupt(CPUState *cs)
             env->msr |= MSR_EIP;
 
             qemu_log_mask(CPU_LOG_INT,
-                          "hw exception at pc=%" PRIx64 " ear=%" PRIx64 " "
+                          "hw exception at pc=%x ear=%" PRIx64 " "
                           "esr=%" PRIx64 " iflags=%x\n",
                           env->pc, env->ear,
                           env->esr, env->iflags);
@@ -167,8 +167,7 @@ void mb_cpu_do_interrupt(CPUState *cs)
                 /* was the branch immprefixed?.  */
                 if (env->bimm) {
                     qemu_log_mask(CPU_LOG_INT,
-                                  "bimm exception at pc=%" PRIx64 " "
-                                  "iflags=%x\n",
+                                  "bimm exception at pc=%x iflags=%x\n",
                                   env->pc, env->iflags);
                     env->regs[17] -= 4;
                     log_cpu_state_mask(CPU_LOG_INT, cs, 0);
@@ -186,8 +185,7 @@ void mb_cpu_do_interrupt(CPUState *cs)
             env->msr |= MSR_EIP;
 
             qemu_log_mask(CPU_LOG_INT,
-                          "exception at pc=%" PRIx64 " ear=%" PRIx64 " "
-                          "iflags=%x\n",
+                          "exception at pc=%x ear=%" PRIx64 " iflags=%x\n",
                           env->pc, env->ear, env->iflags);
             log_cpu_state_mask(CPU_LOG_INT, cs, 0);
             env->iflags &= ~(IMM_FLAG | D_FLAG);
@@ -224,8 +222,7 @@ void mb_cpu_do_interrupt(CPUState *cs)
             }
 #endif
             qemu_log_mask(CPU_LOG_INT,
-                         "interrupt at pc=%" PRIx64 " msr=%" PRIx64 " %x "
-                         "iflags=%x\n",
+                         "interrupt at pc=%x msr=%" PRIx64 " %x iflags=%x\n",
                          env->pc, env->msr, t, env->iflags);
 
             env->msr &= ~(MSR_VMS | MSR_UMS | MSR_VM | MSR_UM | MSR_IE);
@@ -242,9 +239,8 @@ void mb_cpu_do_interrupt(CPUState *cs)
             assert(!(env->iflags & D_FLAG));
             t = (env->msr & (MSR_VM | MSR_UM)) << 1;
             qemu_log_mask(CPU_LOG_INT,
-                        "break at pc=%" PRIx64 " msr=%" PRIx64 " %x "
-                        "iflags=%x\n",
-                        env->pc, env->msr, t, env->iflags);
+                          "break at pc=%x msr=%" PRIx64 " %x iflags=%x\n",
+                          env->pc, env->msr, t, env->iflags);
             log_cpu_state_mask(CPU_LOG_INT, cs, 0);
             env->msr &= ~(MSR_VMS | MSR_UMS | MSR_VM | MSR_UM);
             env->msr |= t;
diff --git a/target/microblaze/mmu.c b/target/microblaze/mmu.c
index 3f403b567b..6e583d78d9 100644
--- a/target/microblaze/mmu.c
+++ b/target/microblaze/mmu.c
@@ -250,8 +250,8 @@ void mmu_write(CPUMBState *env, bool ext, uint32_t rn, uint32_t v)
             if (rn == MMU_R_TLBHI) {
                 if (i < 3 && !(v & TLB_VALID) && qemu_loglevel_mask(~0))
                     qemu_log_mask(LOG_GUEST_ERROR,
-                             "invalidating index %x at pc=%" PRIx64 "\n",
-                             i, env->pc);
+                                  "invalidating index %x at pc=%x\n",
+                                  i, env->pc);
                 env->mmu.tids[i] = env->mmu.regs[MMU_R_PID] & 0xff;
                 mmu_flush_idx(env, i);
             }
diff --git a/target/microblaze/op_helper.c b/target/microblaze/op_helper.c
index ae57d45536..fdf706a723 100644
--- a/target/microblaze/op_helper.c
+++ b/target/microblaze/op_helper.c
@@ -75,12 +75,12 @@ void helper_debug(CPUMBState *env)
 {
     int i;
 
-    qemu_log("PC=%" PRIx64 "\n", env->pc);
+    qemu_log("PC=%08x\n", env->pc);
     qemu_log("rmsr=%" PRIx64 " resr=%" PRIx64 " rear=%" PRIx64 " "
              "debug[%x] imm=%x iflags=%x\n",
              env->msr, env->esr, env->ear,
              env->debug, env->imm, env->iflags);
-    qemu_log("btaken=%d btarget=%" PRIx64 " mode=%s(saved=%s) eip=%d ie=%d\n",
+    qemu_log("btaken=%d btarget=%x mode=%s(saved=%s) eip=%d ie=%d\n",
              env->btaken, env->btarget,
              (env->msr & MSR_UM) ? "user" : "kernel",
              (env->msr & MSR_UMS) ? "user" : "kernel",
diff --git a/target/microblaze/translate.c b/target/microblaze/translate.c
index 19d7b8abfd..72783c1d8a 100644
--- a/target/microblaze/translate.c
+++ b/target/microblaze/translate.c
@@ -55,7 +55,7 @@
 
 static TCGv_i32 env_debug;
 static TCGv_i32 cpu_R[32];
-static TCGv_i64 cpu_pc;
+static TCGv_i32 cpu_pc;
 static TCGv_i64 cpu_msr;
 static TCGv_i64 cpu_ear;
 static TCGv_i64 cpu_esr;
@@ -64,7 +64,7 @@ static TCGv_i64 cpu_btr;
 static TCGv_i64 cpu_edr;
 static TCGv_i32 env_imm;
 static TCGv_i32 env_btaken;
-static TCGv_i64 env_btarget;
+static TCGv_i32 cpu_btarget;
 static TCGv_i32 env_iflags;
 static TCGv env_res_addr;
 static TCGv_i32 env_res_val;
@@ -123,7 +123,7 @@ static inline void t_gen_raise_exception(DisasContext *dc, uint32_t index)
     TCGv_i32 tmp = tcg_const_i32(index);
 
     t_sync_flags(dc);
-    tcg_gen_movi_i64(cpu_pc, dc->pc);
+    tcg_gen_movi_i32(cpu_pc, dc->pc);
     gen_helper_raise_exception(cpu_env, tmp);
     tcg_temp_free_i32(tmp);
     dc->is_jmp = DISAS_UPDATE;
@@ -142,10 +142,10 @@ static void gen_goto_tb(DisasContext *dc, int n, target_ulong dest)
 {
     if (use_goto_tb(dc, dest)) {
         tcg_gen_goto_tb(n);
-        tcg_gen_movi_i64(cpu_pc, dest);
+        tcg_gen_movi_i32(cpu_pc, dest);
         tcg_gen_exit_tb(dc->tb, n);
     } else {
-        tcg_gen_movi_i64(cpu_pc, dest);
+        tcg_gen_movi_i32(cpu_pc, dest);
         tcg_gen_exit_tb(NULL, 0);
     }
 }
@@ -509,7 +509,7 @@ static void dec_msr(DisasContext *dc)
         msr_write(dc, t0);
         tcg_temp_free_i32(t0);
         tcg_temp_free_i32(t1);
-        tcg_gen_movi_i64(cpu_pc, dc->pc + 4);
+        tcg_gen_movi_i32(cpu_pc, dc->pc + 4);
         dc->is_jmp = DISAS_UPDATE;
         return;
     }
@@ -850,7 +850,7 @@ static inline void sync_jmpstate(DisasContext *dc)
             tcg_gen_movi_i32(env_btaken, 1);
         }
         dc->jmp = JMP_INDIRECT;
-        tcg_gen_movi_i64(env_btarget, dc->jmp_pc);
+        tcg_gen_movi_i32(cpu_btarget, dc->jmp_pc);
     }
 }
 
@@ -1019,7 +1019,7 @@ static void dec_load(DisasContext *dc)
         TCGv_i32 treg = tcg_const_i32(dc->rd);
         TCGv_i32 tsize = tcg_const_i32(size - 1);
 
-        tcg_gen_movi_i64(cpu_pc, dc->pc);
+        tcg_gen_movi_i32(cpu_pc, dc->pc);
         gen_helper_memalign(cpu_env, addr, treg, t0, tsize);
 
         tcg_temp_free_i32(t0);
@@ -1139,7 +1139,7 @@ static void dec_store(DisasContext *dc)
         TCGv_i32 treg = tcg_const_i32(dc->rd);
         TCGv_i32 tsize = tcg_const_i32(size - 1);
 
-        tcg_gen_movi_i64(cpu_pc, dc->pc);
+        tcg_gen_movi_i32(cpu_pc, dc->pc);
         /* FIXME: if the alignment is wrong, we should restore the value
          *        in memory. One possible way to achieve this is to probe
          *        the MMU prior to the memaccess, thay way we could put
@@ -1187,18 +1187,15 @@ static inline void eval_cc(DisasContext *dc, unsigned int cc,
     }
 }
 
-static void eval_cond_jmp(DisasContext *dc, TCGv_i64 pc_true, TCGv_i64 pc_false)
+static void eval_cond_jmp(DisasContext *dc, TCGv_i32 pc_true, TCGv_i32 pc_false)
 {
-    TCGv_i64 tmp_btaken = tcg_temp_new_i64();
-    TCGv_i64 tmp_zero = tcg_const_i64(0);
+    TCGv_i32 zero = tcg_const_i32(0);
 
-    tcg_gen_extu_i32_i64(tmp_btaken, env_btaken);
-    tcg_gen_movcond_i64(TCG_COND_NE, cpu_pc,
-                        tmp_btaken, tmp_zero,
+    tcg_gen_movcond_i32(TCG_COND_NE, cpu_pc,
+                        env_btaken, zero,
                         pc_true, pc_false);
 
-    tcg_temp_free_i64(tmp_btaken);
-    tcg_temp_free_i64(tmp_zero);
+    tcg_temp_free_i32(zero);
 }
 
 static void dec_setup_dslot(DisasContext *dc)
@@ -1229,14 +1226,12 @@ static void dec_bcc(DisasContext *dc)
     if (dec_alu_op_b_is_small_imm(dc)) {
         int32_t offset = (int32_t)((int16_t)dc->imm); /* sign-extend.  */
 
-        tcg_gen_movi_i64(env_btarget, dc->pc + offset);
+        tcg_gen_movi_i32(cpu_btarget, dc->pc + offset);
         dc->jmp = JMP_DIRECT_CC;
         dc->jmp_pc = dc->pc + offset;
     } else {
         dc->jmp = JMP_INDIRECT;
-        tcg_gen_extu_i32_i64(env_btarget, *(dec_alu_op_b(dc)));
-        tcg_gen_addi_i64(env_btarget, env_btarget, dc->pc);
-        tcg_gen_andi_i64(env_btarget, env_btarget, UINT32_MAX);
+        tcg_gen_addi_i32(cpu_btarget, *dec_alu_op_b(dc), dc->pc);
     }
     eval_cc(dc, cc, env_btaken, cpu_R[dc->ra]);
 }
@@ -1277,7 +1272,7 @@ static void dec_br(DisasContext *dc)
             tcg_gen_st_i32(tmp_1, cpu_env,
                            -offsetof(MicroBlazeCPU, env)
                            +offsetof(CPUState, halted));
-            tcg_gen_movi_i64(cpu_pc, dc->pc + 4);
+            tcg_gen_movi_i32(cpu_pc, dc->pc + 4);
             gen_helper_raise_exception(cpu_env, tmp_hlt);
             tcg_temp_free_i32(tmp_hlt);
             tcg_temp_free_i32(tmp_1);
@@ -1303,7 +1298,7 @@ static void dec_br(DisasContext *dc)
     dc->jmp = JMP_INDIRECT;
     if (abs) {
         tcg_gen_movi_i32(env_btaken, 1);
-        tcg_gen_extu_i32_i64(env_btarget, *(dec_alu_op_b(dc)));
+        tcg_gen_mov_i32(cpu_btarget, *(dec_alu_op_b(dc)));
         if (link && !dslot) {
             if (!(dc->tb_flags & IMM_FLAG) && (dc->imm == 8 || dc->imm == 0x18))
                 t_gen_raise_exception(dc, EXCP_BREAK);
@@ -1321,9 +1316,7 @@ static void dec_br(DisasContext *dc)
             dc->jmp_pc = dc->pc + (int32_t)((int16_t)dc->imm);
         } else {
             tcg_gen_movi_i32(env_btaken, 1);
-            tcg_gen_extu_i32_i64(env_btarget, *(dec_alu_op_b(dc)));
-            tcg_gen_addi_i64(env_btarget, env_btarget, dc->pc);
-            tcg_gen_andi_i64(env_btarget, env_btarget, UINT32_MAX);
+            tcg_gen_addi_i32(cpu_btarget, *dec_alu_op_b(dc), dc->pc);
         }
     }
 }
@@ -1387,7 +1380,6 @@ static inline void do_rte(DisasContext *dc)
 static void dec_rts(DisasContext *dc)
 {
     unsigned int b_bit, i_bit, e_bit;
-    TCGv_i64 tmp64;
 
     i_bit = dc->ir & (1 << 21);
     b_bit = dc->ir & (1 << 22);
@@ -1413,13 +1405,7 @@ static void dec_rts(DisasContext *dc)
 
     dc->jmp = JMP_INDIRECT;
     tcg_gen_movi_i32(env_btaken, 1);
-
-    tmp64 = tcg_temp_new_i64();
-    tcg_gen_extu_i32_i64(env_btarget, *(dec_alu_op_b(dc)));
-    tcg_gen_extu_i32_i64(tmp64, cpu_R[dc->ra]);
-    tcg_gen_add_i64(env_btarget, env_btarget, tmp64);
-    tcg_gen_andi_i64(env_btarget, env_btarget, UINT32_MAX);
-    tcg_temp_free_i64(tmp64);
+    tcg_gen_add_i32(cpu_btarget, cpu_R[dc->ra], *dec_alu_op_b(dc));
 }
 
 static int dec_check_fpuv2(DisasContext *dc)
@@ -1676,7 +1662,7 @@ void gen_intermediate_code(CPUState *cs, TranslationBlock *tb, int max_insns)
 
 #if SIM_COMPAT
         if (qemu_loglevel_mask(CPU_LOG_TB_IN_ASM)) {
-            tcg_gen_movi_i64(cpu_pc, dc->pc);
+            tcg_gen_movi_i32(cpu_pc, dc->pc);
             gen_helper_debug();
         }
 #endif
@@ -1718,10 +1704,9 @@ void gen_intermediate_code(CPUState *cs, TranslationBlock *tb, int max_insns)
                 dc->tb_flags &= ~D_FLAG;
                 /* If it is a direct jump, try direct chaining.  */
                 if (dc->jmp == JMP_INDIRECT) {
-                    TCGv_i64 tmp_pc = tcg_const_i64(dc->pc);
-                    eval_cond_jmp(dc, env_btarget, tmp_pc);
-                    tcg_temp_free_i64(tmp_pc);
-
+                    TCGv_i32 tmp_pc = tcg_const_i32(dc->pc);
+                    eval_cond_jmp(dc, cpu_btarget, tmp_pc);
+                    tcg_temp_free_i32(tmp_pc);
                     dc->is_jmp = DISAS_JUMP;
                 } else if (dc->jmp == JMP_DIRECT) {
                     t_sync_flags(dc);
@@ -1754,7 +1739,7 @@ void gen_intermediate_code(CPUState *cs, TranslationBlock *tb, int max_insns)
     if (dc->jmp == JMP_DIRECT || dc->jmp == JMP_DIRECT_CC) {
         if (dc->tb_flags & D_FLAG) {
             dc->is_jmp = DISAS_UPDATE;
-            tcg_gen_movi_i64(cpu_pc, npc);
+            tcg_gen_movi_i32(cpu_pc, npc);
             sync_jmpstate(dc);
         } else
             npc = dc->jmp_pc;
@@ -1764,7 +1749,7 @@ void gen_intermediate_code(CPUState *cs, TranslationBlock *tb, int max_insns)
     if (dc->is_jmp == DISAS_NEXT
         && (dc->cpustate_changed || org_flags != dc->tb_flags)) {
         dc->is_jmp = DISAS_UPDATE;
-        tcg_gen_movi_i64(cpu_pc, npc);
+        tcg_gen_movi_i32(cpu_pc, npc);
     }
     t_sync_flags(dc);
 
@@ -1772,7 +1757,7 @@ void gen_intermediate_code(CPUState *cs, TranslationBlock *tb, int max_insns)
         TCGv_i32 tmp = tcg_const_i32(EXCP_DEBUG);
 
         if (dc->is_jmp != DISAS_JUMP) {
-            tcg_gen_movi_i64(cpu_pc, npc);
+            tcg_gen_movi_i32(cpu_pc, npc);
         }
         gen_helper_raise_exception(cpu_env, tmp);
         tcg_temp_free_i32(tmp);
@@ -1822,7 +1807,7 @@ void mb_cpu_dump_state(CPUState *cs, FILE *f, int flags)
         return;
     }
 
-    qemu_fprintf(f, "IN: PC=%" PRIx64 " %s\n",
+    qemu_fprintf(f, "IN: PC=%x %s\n",
                  env->pc, lookup_symbol(env->pc));
     qemu_fprintf(f, "rmsr=%" PRIx64 " resr=%" PRIx64 " rear=%" PRIx64 " "
                  "debug=%x imm=%x iflags=%x fsr=%" PRIx64 " "
@@ -1830,8 +1815,7 @@ void mb_cpu_dump_state(CPUState *cs, FILE *f, int flags)
                  env->msr, env->esr, env->ear,
                  env->debug, env->imm, env->iflags, env->fsr,
                  env->btr);
-    qemu_fprintf(f, "btaken=%d btarget=%" PRIx64 " mode=%s(saved=%s) "
-                 "eip=%d ie=%d\n",
+    qemu_fprintf(f, "btaken=%d btarget=%x mode=%s(saved=%s) eip=%d ie=%d\n",
                  env->btaken, env->btarget,
                  (env->msr & MSR_UM) ? "user" : "kernel",
                  (env->msr & MSR_UMS) ? "user" : "kernel",
@@ -1869,7 +1853,7 @@ void mb_tcg_init(void)
     env_imm = tcg_global_mem_new_i32(cpu_env,
                     offsetof(CPUMBState, imm),
                     "imm");
-    env_btarget = tcg_global_mem_new_i64(cpu_env,
+    cpu_btarget = tcg_global_mem_new_i32(cpu_env,
                      offsetof(CPUMBState, btarget),
                      "btarget");
     env_btaken = tcg_global_mem_new_i32(cpu_env,
@@ -1888,7 +1872,7 @@ void mb_tcg_init(void)
     }
 
     cpu_pc =
-        tcg_global_mem_new_i64(cpu_env, offsetof(CPUMBState, pc), "rpc");
+        tcg_global_mem_new_i32(cpu_env, offsetof(CPUMBState, pc), "rpc");
     cpu_msr =
         tcg_global_mem_new_i64(cpu_env, offsetof(CPUMBState, msr), "rmsr");
     cpu_ear =
-- 
2.25.1



  parent reply	other threads:[~2020-08-28 14:23 UTC|newest]

Thread overview: 92+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-08-28 14:18 [PATCH v2 00/76] target/microblaze improvements Richard Henderson
2020-08-28 14:18 ` [PATCH v2 01/76] tests/tcg: Add microblaze to arches filter Richard Henderson
2020-08-31 17:32   ` Philippe Mathieu-Daudé
2020-08-28 14:18 ` [PATCH v2 02/76] tests/tcg: Do not require FE_TOWARDZERO Richard Henderson
2020-08-31 17:31   ` Philippe Mathieu-Daudé
2020-08-28 14:18 ` [PATCH v2 03/76] tests/tcg: Do not require FE_* exception bits Richard Henderson
2020-08-31 17:30   ` Philippe Mathieu-Daudé
2020-08-28 14:18 ` [PATCH v2 04/76] target/microblaze: Tidy gdbstub Richard Henderson
2020-08-28 14:18 ` [PATCH v2 05/76] target/microblaze: Split out PC from env->sregs Richard Henderson
2020-08-28 14:18 ` [PATCH v2 06/76] target/microblaze: Split out MSR " Richard Henderson
2020-08-28 14:18 ` [PATCH v2 07/76] target/microblaze: Split out EAR " Richard Henderson
2020-08-31 20:50   ` Philippe Mathieu-Daudé
2020-08-28 14:18 ` [PATCH v2 08/76] target/microblaze: Split out ESR " Richard Henderson
2020-08-28 14:18 ` [PATCH v2 09/76] target/microblaze: Split out FSR " Richard Henderson
2020-08-31 20:51   ` Philippe Mathieu-Daudé
2020-08-28 14:18 ` [PATCH v2 10/76] target/microblaze: Split out BTR " Richard Henderson
2020-08-31 20:53   ` Philippe Mathieu-Daudé
2020-08-28 14:18 ` [PATCH v2 11/76] target/microblaze: Split out EDR " Richard Henderson
2020-08-28 14:18 ` [PATCH v2 12/76] target/microblaze: Split the cpu_SR array Richard Henderson
2020-08-28 14:18 ` Richard Henderson [this message]
2020-08-28 14:18 ` [PATCH v2 14/76] target/microblaze: Fix width of MSR Richard Henderson
2020-08-28 14:18 ` [PATCH v2 15/76] target/microblaze: Fix width of ESR Richard Henderson
2020-08-28 14:18 ` [PATCH v2 16/76] target/microblaze: Fix width of FSR Richard Henderson
2020-08-28 14:18 ` [PATCH v2 17/76] target/microblaze: Fix width of BTR Richard Henderson
2020-08-28 14:18 ` [PATCH v2 18/76] target/microblaze: Fix width of EDR Richard Henderson
2020-08-28 14:18 ` [PATCH v2 19/76] target/microblaze: Remove cpu_ear Richard Henderson
2020-08-28 14:18 ` [PATCH v2 20/76] target/microblaze: Tidy raising of exceptions Richard Henderson
2020-08-28 14:18 ` [PATCH v2 21/76] target/microblaze: Mark raise_exception as noreturn Richard Henderson
2020-08-28 14:18 ` [PATCH v2 22/76] target/microblaze: Remove helper_debug and env->debug Richard Henderson
2020-08-28 14:18 ` [PATCH v2 23/76] target/microblaze: Rename env_* tcg variables to cpu_* Richard Henderson
2020-08-31 21:11   ` Philippe Mathieu-Daudé
2020-08-28 14:18 ` [PATCH v2 24/76] target/microblaze: Tidy mb_tcg_init Richard Henderson
2020-08-28 14:18 ` [PATCH v2 25/76] target/microblaze: Split out MSR[C] to its own variable Richard Henderson
2020-08-28 14:18 ` [PATCH v2 26/76] target/microblaze: Use DISAS_NORETURN Richard Henderson
2020-08-28 14:18 ` [PATCH v2 27/76] target/microblaze: Check singlestep_enabled in gen_goto_tb Richard Henderson
2020-08-31 13:54   ` Edgar E. Iglesias
2020-08-31 14:55     ` Richard Henderson
2020-08-28 14:18 ` [PATCH v2 28/76] target/microblaze: Convert to DisasContextBase Richard Henderson
2020-08-28 14:18 ` [PATCH v2 29/76] target/microblaze: Convert to translator_loop Richard Henderson
2020-08-28 14:18 ` [PATCH v2 30/76] target/microblaze: Remove SIM_COMPAT Richard Henderson
2020-08-28 14:18 ` [PATCH v2 31/76] target/microblaze: Remove DISAS_GNU Richard Henderson
2020-08-28 14:18 ` [PATCH v2 32/76] target/microblaze: Remove empty D macros Richard Henderson
2020-08-31 21:14   ` Philippe Mathieu-Daudé
2020-08-28 14:18 ` [PATCH v2 33/76] target/microblaze: Remove LOG_DIS Richard Henderson
2020-08-28 14:18 ` [PATCH v2 34/76] target/microblaze: Ensure imm constant is always available Richard Henderson
2020-08-28 14:18 ` [PATCH v2 35/76] target/microblaze: Add decodetree infrastructure Richard Henderson
2020-08-28 14:18 ` [PATCH v2 36/76] target/microblaze: Convert dec_add to decodetree Richard Henderson
2020-08-28 14:18 ` [PATCH v2 37/76] target/microblaze: Convert dec_sub " Richard Henderson
2020-08-28 14:18 ` [PATCH v2 38/76] target/microblaze: Implement cmp and cmpu inline Richard Henderson
2020-08-28 14:18 ` [PATCH v2 39/76] target/microblaze: Convert dec_pattern to decodetree Richard Henderson
2020-08-28 14:18 ` [PATCH v2 40/76] target/microblaze: Convert dec_and, dec_or, dec_xor " Richard Henderson
2020-08-28 14:18 ` [PATCH v2 41/76] target/microblaze: Convert dec_mul " Richard Henderson
2020-08-28 14:18 ` [PATCH v2 42/76] target/microblaze: Convert dec_div " Richard Henderson
2020-08-28 14:18 ` [PATCH v2 43/76] target/microblaze: Unwind properly when raising divide-by-zero Richard Henderson
2020-08-28 14:18 ` [PATCH v2 44/76] target/microblaze: Convert dec_bit to decodetree Richard Henderson
2020-08-28 14:18 ` [PATCH v2 45/76] target/microblaze: Convert dec_barrel " Richard Henderson
2020-08-28 14:18 ` [PATCH v2 46/76] target/microblaze: Convert dec_imm " Richard Henderson
2020-08-28 14:19 ` [PATCH v2 47/76] target/microblaze: Convert dec_fpu " Richard Henderson
2020-08-28 14:19 ` [PATCH v2 48/76] target/microblaze: Fix cpu unwind for fpu exceptions Richard Henderson
2020-08-28 14:19 ` [PATCH v2 49/76] target/microblaze: Mark fpu helpers TCG_CALL_NO_WG Richard Henderson
2020-08-28 14:19 ` [PATCH v2 50/76] target/microblaze: Replace MSR_EE_FLAG with MSR_EE Richard Henderson
2020-08-31 21:09   ` Philippe Mathieu-Daudé
2020-08-28 14:19 ` [PATCH v2 51/76] target/microblaze: Cache mem_index in DisasContext Richard Henderson
2020-08-28 14:19 ` [PATCH v2 52/76] target/microblaze: Fix cpu unwind for stackprot Richard Henderson
2020-08-28 14:19 ` [PATCH v2 53/76] target/microblaze: Convert dec_load and dec_store to decodetree Richard Henderson
2020-08-28 14:19 ` [PATCH v2 54/76] target/microblaze: Assert no overlap in flags making up tb_flags Richard Henderson
2020-08-28 14:19 ` [PATCH v2 55/76] target/microblaze: Move bimm to BIMM_FLAG Richard Henderson
2020-08-28 14:19 ` [PATCH v2 56/76] target/microblaze: Fix no-op mb_cpu_transaction_failed Richard Henderson
2020-08-28 14:19 ` [PATCH v2 57/76] target/microblaze: Store "current" iflags in insn_start Richard Henderson
2020-08-28 14:19 ` [PATCH v2 58/76] tcg: Add tcg_get_insn_start_param Richard Henderson
2020-08-28 14:19 ` [PATCH v2 59/76] target/microblaze: Use cc->do_unaligned_access Richard Henderson
2020-08-28 14:19 ` [PATCH v2 60/76] target/microblaze: Replace clear_imm with tb_flags_to_set Richard Henderson
2020-08-28 14:19 ` [PATCH v2 61/76] target/microblaze: Replace delayed_branch " Richard Henderson
2020-08-28 14:19 ` [PATCH v2 62/76] target/microblaze: Tidy mb_cpu_dump_state Richard Henderson
2020-08-31 21:08   ` Philippe Mathieu-Daudé
2020-08-31 22:16     ` Richard Henderson
2020-08-31 22:25       ` Philippe Mathieu-Daudé
2020-08-28 14:19 ` [PATCH v2 63/76] target/microblaze: Convert brk and brki to decodetree Richard Henderson
2020-08-28 14:19 ` [PATCH v2 64/76] target/microblaze: Convert mbar " Richard Henderson
2020-08-28 14:19 ` [PATCH v2 65/76] target/microblaze: Reorganize branching Richard Henderson
2020-08-28 14:19 ` [PATCH v2 66/76] target/microblaze: Convert dec_br to decodetree Richard Henderson
2020-08-28 14:19 ` [PATCH v2 67/76] target/microblaze: Convert dec_bcc " Richard Henderson
2020-08-28 14:19 ` [PATCH v2 68/76] target/microblaze: Convert dec_rts " Richard Henderson
2020-08-28 14:19 ` [PATCH v2 69/76] target/microblaze: Tidy do_rti, do_rtb, do_rte Richard Henderson
2020-08-28 14:19 ` [PATCH v2 70/76] target/microblaze: Convert msrclr, msrset to decodetree Richard Henderson
2020-08-28 14:19 ` [PATCH v2 71/76] target/microblaze: Convert dec_msr " Richard Henderson
2020-08-28 14:19 ` [PATCH v2 72/76] target/microblaze: Convert dec_stream " Richard Henderson
2020-08-28 14:19 ` [PATCH v2 73/76] target/microblaze: Remove last of old decoder Richard Henderson
2020-08-28 14:19 ` [PATCH v2 74/76] target/microblaze: Remove cpu_R[0] Richard Henderson
2020-08-28 14:19 ` [PATCH v2 75/76] target/microblaze: Add flags markup to some helpers Richard Henderson
2020-08-28 14:19 ` [PATCH v2 76/76] target/microblaze: Reduce linux-user address space to 32-bit Richard Henderson
2020-08-31 14:14 ` [PATCH v2 00/76] target/microblaze improvements Edgar E. Iglesias

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200828141929.77854-14-richard.henderson@linaro.org \
    --to=richard.henderson@linaro.org \
    --cc=edgar.iglesias@xilinx.com \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.