cpu-exec: Add nochain debug flag

Respect it to avoid linking TBs together.

Backports commit 89a82cd4b6a90fe117fa715e2abe51d5c607560c from qemu
This commit is contained in:
Richard Henderson 2018-02-16 15:56:00 -05:00 committed by Lioncash
parent a2e7d86ccf
commit e9e8833da4
No known key found for this signature in database
GPG key ID: 4E3C3CC1031BA9C7
2 changed files with 3 additions and 1 deletions

View file

@ -201,7 +201,8 @@ int cpu_exec(struct uc_struct *uc, CPUState *cpu)
/* see if we can patch the calling TB. When the TB /* see if we can patch the calling TB. When the TB
spans two pages, we cannot safely do a direct spans two pages, we cannot safely do a direct
jump. */ 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), tb_add_jump((TranslationBlock *)(next_tb & ~TB_EXIT_MASK),
next_tb & TB_EXIT_MASK, tb); next_tb & TB_EXIT_MASK, tb);
} }

View file

@ -36,6 +36,7 @@ static inline bool qemu_log_enabled(void)
#define CPU_LOG_RESET (1 << 9) #define CPU_LOG_RESET (1 << 9)
#define LOG_UNIMP (1 << 10) #define LOG_UNIMP (1 << 10)
#define LOG_GUEST_ERROR (1 << 11) #define LOG_GUEST_ERROR (1 << 11)
#define CPU_LOG_TB_NOCHAIN (1 << 13)
/* Returns true if a bit is set in the current loglevel mask /* Returns true if a bit is set in the current loglevel mask
*/ */