diff options
author | Pavel Dovgalyuk <pavel.dovgalyuk@ispras.ru> | 2021-05-11 11:40:10 +0300 |
---|---|---|
committer | Laurent Vivier <laurent@vivier.eu> | 2021-06-05 21:17:10 +0200 |
commit | dd6921894905c8ce0664a77f9dac78408bc3b52d (patch) | |
tree | d25e047fbdade4f9e32c259765fdc23b5cc99d1e /target | |
parent | d7878875ae09e9c59aa2bd52e6f289cb845e944e (diff) | |
download | qemu-dd6921894905c8ce0664a77f9dac78408bc3b52d.zip qemu-dd6921894905c8ce0664a77f9dac78408bc3b52d.tar.gz qemu-dd6921894905c8ce0664a77f9dac78408bc3b52d.tar.bz2 |
target/nios2: fix page-fit instruction count
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>
Diffstat (limited to 'target')
-rw-r--r-- | target/nios2/translate.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/target/nios2/translate.c b/target/nios2/translate.c index 9824544..399f22d 100644 --- a/target/nios2/translate.c +++ b/target/nios2/translate.c @@ -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; } |