]> Git Repo - qemu.git/commitdiff
target-xtensa: fix LOOPNEZ/LOOPGTZ translation
authorMax Filippov <[email protected]>
Sun, 15 Apr 2012 21:47:06 +0000 (01:47 +0400)
committerBlue Swirl <[email protected]>
Sat, 21 Apr 2012 13:24:45 +0000 (13:24 +0000)
Translation of LOOP instructions used to call LEND SR write handler to
update LEND and invalidate relevant TBs. Now that LEND SR write handler
ends TB, LOOPNEZ and LOOPGTZ generate wrong code (same as for simple
LOOP). Fix it by calling wsr_lend helper directly.

Signed-off-by: Max Filippov <[email protected]>
Signed-off-by: Blue Swirl <[email protected]>
target-xtensa/translate.c

index 690012398308b04f4778ce35221202b66df4ce39..521c0e622664c589f7093d3d83741d756388ef06 100644 (file)
@@ -2278,7 +2278,7 @@ static void disas_xtensa_insn(DisasContext *dc)
 
                         tcg_gen_subi_i32(cpu_SR[LCOUNT], cpu_R[RRI8_S], 1);
                         tcg_gen_movi_i32(cpu_SR[LBEG], dc->next_pc);
-                        gen_wsr_lend(dc, LEND, tmp);
+                        gen_helper_wsr_lend(tmp);
                         tcg_temp_free(tmp);
 
                         if (BRI8_R > 8) {
This page took 0.030264 seconds and 4 git commands to generate.