mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-04 00:03:54 -06:00
target-i386: Fix segment cache dump
When in Long Mode, cpu_x86_seg_cache() logs "DS16" because the Default operation size bit (D/B bit) is not set for Long Mode Data Segments since there are only Data Segments in Long Mode and no explicit 16/32/64-bit Descriptors. This patch fixes this by checking the Long Mode Active bit of the hidden flags variable and logging "DS" if it is set. (I.e. in Long Mode all Data Segments are logged as "DS") Signed-off-by: Tobias Markus <tobias@markus-regensburg.de> Reviewed-by: Richard Henderson <rth@twiddle.net> Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
This commit is contained in:
parent
2be178a475
commit
469936ae0a
1 changed files with 3 additions and 1 deletions
|
@ -147,7 +147,9 @@ cpu_x86_dump_seg_cache(CPUX86State *env, FILE *f, fprintf_function cpu_fprintf,
|
|||
cpu_fprintf(f, " [%c%c", (sc->flags & DESC_C_MASK) ? 'C' : '-',
|
||||
(sc->flags & DESC_R_MASK) ? 'R' : '-');
|
||||
} else {
|
||||
cpu_fprintf(f, (sc->flags & DESC_B_MASK) ? "DS " : "DS16");
|
||||
cpu_fprintf(f,
|
||||
(sc->flags & DESC_B_MASK || env->hflags & HF_LMA_MASK)
|
||||
? "DS " : "DS16");
|
||||
cpu_fprintf(f, " [%c%c", (sc->flags & DESC_E_MASK) ? 'E' : '-',
|
||||
(sc->flags & DESC_W_MASK) ? 'W' : '-');
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue