Merge branch 'master' of /home/nchip/public_html/qemu into garage-push
[qemu] / target-cris / translate.c
index f575e63..6a44281 100644 (file)
@@ -29,7 +29,6 @@
 #include <stdio.h>
 #include <string.h>
 #include <inttypes.h>
-#include <assert.h>
 
 #include "cpu.h"
 #include "exec-all.h"
@@ -957,7 +956,8 @@ static void gen_tst_cc (DisasContext *dc, TCGv cc, int cond)
                                else if (dc->cc_size == 2)
                                        bits = 15;      
 
-                               tcg_gen_shri_tl(cc, cc_result, 31);
+                               tcg_gen_shri_tl(cc, cc_result, bits);
+                               tcg_gen_andi_tl(cc, cc, 1);
                        }
                        else {
                                cris_evaluate_flags(dc);
@@ -2633,7 +2633,8 @@ static unsigned int dec_movem_mr(DisasContext *dc)
                tmp32 = tcg_temp_new_i32();
                tcg_gen_addi_tl(addr, cpu_R[dc->op1], i * 8);
                gen_load(dc, tmp32, addr, 4, 0);
-       }
+       } else
+               TCGV_UNUSED(tmp32);
        tcg_temp_free(addr);
 
        for (i = 0; i < (nr >> 1); i++) {
@@ -3271,6 +3272,7 @@ gen_intermediate_code_internal(CPUState *env, TranslationBlock *tb,
                        break;
        } while (!dc->is_jmp && !dc->cpustate_changed
                 && gen_opc_ptr < gen_opc_end
+                 && !singlestep
                 && (dc->pc < next_page_start)
                  && num_insns < max_insns);
 
@@ -3403,6 +3405,7 @@ CPUCRISState *cpu_cris_init (const char *cpu_model)
 
        cpu_exec_init(env);
        cpu_reset(env);
+       qemu_init_vcpu(env);
 
        if (tcg_initialized)
                return env;