PowerPC merge: real time TB and decrementer - faster and simpler exception handling...
[qemu] / target-arm / translate.c
index 3efd55e..00bdbb9 100644 (file)
@@ -543,7 +543,8 @@ static void disas_arm_insn(DisasContext *s)
                 rn = (insn >> 16) & 0xf;
                 rd = (insn >> 12) & 0xf;
                 gen_movl_T1_reg(s, rn);
-                gen_add_datah_offset(s, insn);
+                if (insn & (1 << 24))
+                    gen_add_datah_offset(s, insn);
                 if (insn & (1 << 20)) {
                     /* load */
                     switch(sh) {
@@ -777,15 +778,16 @@ static inline int gen_intermediate_code_internal(CPUState *env,
     *gen_opc_ptr = INDEX_op_end;
 
 #ifdef DEBUG_DISAS
-    if (loglevel) {
+    if (loglevel & CPU_LOG_TB_IN_ASM) {
         fprintf(logfile, "----------------\n");
         fprintf(logfile, "IN: %s\n", lookup_symbol(pc_start));
-       disas(logfile, pc_start, dc->pc - pc_start, 0, 0);
-        fprintf(logfile, "\n");
-
-        fprintf(logfile, "OP:\n");
-        dump_ops(gen_opc_buf, gen_opparam_buf);
+        disas(logfile, pc_start, dc->pc - pc_start, 0, 0);
         fprintf(logfile, "\n");
+        if (loglevel & (CPU_LOG_TB_OP)) {
+            fprintf(logfile, "OP:\n");
+            dump_ops(gen_opc_buf, gen_opparam_buf);
+            fprintf(logfile, "\n");
+        }
     }
 #endif
     if (!search_pc)