]> git.proxmox.com Git - mirror_qemu.git/commitdiff
target/nios2: fix page-fit instruction count
authorPavel Dovgalyuk <pavel.dovgalyuk@ispras.ru>
Tue, 11 May 2021 08:40:10 +0000 (11:40 +0300)
committerLaurent Vivier <laurent@vivier.eu>
Sat, 5 Jun 2021 19:17:10 +0000 (21:17 +0200)
This patch fixes calculation of number of the instructions
that fit the current page. It prevents creation of the translation
blocks that cross the page boundaries. It is required for deterministic
exception generation in icount mode.

Signed-off-by: Pavel Dovgalyuk <Pavel.Dovgalyuk@ispras.ru>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <162072241046.823357.10485774346114851009.stgit@pasha-ThinkPad-X280>
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
target/nios2/translate.c

index 9824544eb37c9a94d18081a566d14c0bf4ce8bda..399f22d93862a97695ebad2d37c00db76bf307ea 100644 (file)
@@ -829,7 +829,7 @@ void gen_intermediate_code(CPUState *cs, TranslationBlock *tb, int max_insns)
     /* Set up instruction counts */
     num_insns = 0;
     if (max_insns > 1) {
-        int page_insns = (TARGET_PAGE_SIZE - (tb->pc & TARGET_PAGE_MASK)) / 4;
+        int page_insns = (TARGET_PAGE_SIZE - (tb->pc & ~TARGET_PAGE_MASK)) / 4;
         if (max_insns > page_insns) {
             max_insns = page_insns;
         }