Commit 89a82cd4 authored by Richard Henderson's avatar Richard Henderson
Browse files

cpu-exec: Add "nochain" debug flag



Respect it to avoid linking TBs together.

Reviewed-by: default avatarPeter Maydell <peter.maydell@linaro.org>
Signed-off-by: default avatarRichard Henderson <rth@twiddle.net>
parent 137d6390
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -477,7 +477,8 @@ int cpu_exec(CPUState *cpu)
                /* see if we can patch the calling TB. When the TB
                   spans two pages, we cannot safely do a direct
                   jump. */
                if (next_tb != 0 && tb->page_addr[1] == -1) {
                if (next_tb != 0 && tb->page_addr[1] == -1
                    && !qemu_loglevel_mask(CPU_LOG_TB_NOCHAIN)) {
                    tb_add_jump((TranslationBlock *)(next_tb & ~TB_EXIT_MASK),
                                next_tb & TB_EXIT_MASK, tb);
                }
+1 −0
Original line number Diff line number Diff line
@@ -41,6 +41,7 @@ static inline bool qemu_log_enabled(void)
#define LOG_UNIMP          (1 << 10)
#define LOG_GUEST_ERROR    (1 << 11)
#define CPU_LOG_MMU        (1 << 12)
#define CPU_LOG_TB_NOCHAIN (1 << 13)

/* Returns true if a bit is set in the current loglevel mask
 */
+3 −0
Original line number Diff line number Diff line
@@ -119,6 +119,9 @@ const QEMULogItem qemu_log_items[] = {
    { LOG_GUEST_ERROR, "guest_errors",
      "log when the guest OS does something invalid (eg accessing a\n"
      "non-existent register)" },
    { CPU_LOG_TB_NOCHAIN, "nochain",
      "do not chain compiled TBs so that \"exec\" and \"cpu\" show\n"
      "complete traces" },
    { 0, NULL, NULL },
};