diff options
author | Richard Henderson | 2019-09-10 21:47:39 +0200 |
---|---|---|
committer | Richard Henderson | 2019-09-25 19:36:43 +0200 |
commit | 5b87b3e671c00fd054bcbf4668d99d56b33c598c (patch) | |
tree | 37340d52aba54fe838c5db080ee67f91cc58612b /include/exec | |
parent | cputlb: Split out load/store_memop (diff) | |
download | qemu-5b87b3e671c00fd054bcbf4668d99d56b33c598c.tar.gz qemu-5b87b3e671c00fd054bcbf4668d99d56b33c598c.tar.xz qemu-5b87b3e671c00fd054bcbf4668d99d56b33c598c.zip |
cputlb: Introduce TLB_BSWAP
Handle bswap on ram directly in load/store_helper. This fixes a
bug with the previous implementation in that one cannot use the
I/O path for RAM.
Fixes: a26fc6f5152b47f1
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: David Hildenbrand <david@redhat.com>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Diffstat (limited to 'include/exec')
-rw-r--r-- | include/exec/cpu-all.h | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/include/exec/cpu-all.h b/include/exec/cpu-all.h index e0c8dc540c..d148bded35 100644 --- a/include/exec/cpu-all.h +++ b/include/exec/cpu-all.h @@ -335,12 +335,14 @@ CPUArchState *cpu_copy(CPUArchState *env); #define TLB_MMIO (1 << (TARGET_PAGE_BITS_MIN - 3)) /* Set if TLB entry contains a watchpoint. */ #define TLB_WATCHPOINT (1 << (TARGET_PAGE_BITS_MIN - 4)) +/* Set if TLB entry requires byte swap. */ +#define TLB_BSWAP (1 << (TARGET_PAGE_BITS_MIN - 5)) /* Use this mask to check interception with an alignment mask * in a TCG backend. */ #define TLB_FLAGS_MASK \ - (TLB_INVALID_MASK | TLB_NOTDIRTY | TLB_MMIO | TLB_WATCHPOINT) + (TLB_INVALID_MASK | TLB_NOTDIRTY | TLB_MMIO | TLB_WATCHPOINT | TLB_BSWAP) /** * tlb_hit_page: return true if page aligned @addr is a hit against the |