Richard Henderson
7eff2e7c65
target/i386: Cleanup read_crN, write_crN, lmsw
...
Pull the svm intercept check into the translator.
Pull the entire implementation of lmsw into the translator.
Push the check for CR8LEG into the regno validation switch.
Unify the gen_io_start check between read/write.
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20210514151342.384376-40-richard.henderson@linaro.org >
2021-05-19 12:17:11 -05:00
Richard Henderson
3d4fce8b8e
target/i386: Remove user stub for cpu_vmexit
...
This function is only called from tcg/sysemu/.
There is no need for a stub in tcg/user/.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com >
Message-Id: <20210514151342.384376-39-richard.henderson@linaro.org >
2021-05-19 12:17:11 -05:00
Richard Henderson
b53605dbd2
target/i386: Remove pc_start argument to gen_svm_check_intercept
...
When exiting helper_svm_check_intercept via exception, cpu_vmexit
calls cpu_restore_state, which will recover eip and cc_op via unwind.
Therefore we do not need to store eip or cc_op before the call.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com >
Message-Id: <20210514151342.384376-38-richard.henderson@linaro.org >
2021-05-19 12:17:11 -05:00
Richard Henderson
d051ea04d0
target/i386: Tidy svm_check_intercept from tcg
...
The param argument to helper_svm_check_intercept_param is always 0;
eliminate it and rename to helper_svm_check_intercept. Fold
gen_svm_check_intercept_param into gen_svm_check_intercept.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com >
Message-Id: <20210514151342.384376-37-richard.henderson@linaro.org >
2021-05-19 12:17:11 -05:00
Richard Henderson
ed3c4739e9
target/i386: Simplify gen_debug usage
...
Both invocations pass the start of the current instruction,
which is available as s->base.pc_next. The function sets
is_jmp, so we can eliminate a second setting.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com >
Message-Id: <20210514151342.384376-36-richard.henderson@linaro.org >
2021-05-19 12:17:11 -05:00
Richard Henderson
b82055aece
target/i386: Mark some helpers as noreturn
...
Any helper that always raises an exception or interrupt,
or simply exits to the main loop, can be so marked.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com >
Message-Id: <20210514151342.384376-35-richard.henderson@linaro.org >
2021-05-19 12:17:11 -05:00
Richard Henderson
8d6806c7dd
target/i386: Eliminate SVM helpers for user-only
...
Use STUB_HELPER to ensure that such calls are always eliminated.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com >
Message-Id: <20210514151342.384376-34-richard.henderson@linaro.org >
2021-05-19 12:17:11 -05:00
Richard Henderson
e6aeb948bb
target/i386: Implement skinit in translate.c
...
Our sysemu implementation is a stub. We can already intercept
instructions for vmexit, and raising #UD is trivial.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com >
Message-Id: <20210514151342.384376-33-richard.henderson@linaro.org >
2021-05-19 12:17:11 -05:00
Richard Henderson
b322b3afc1
target/i386: Assert !GUEST for user-only
...
For user-only, we do not need to check for VMM intercept.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com >
Message-Id: <20210514151342.384376-32-richard.henderson@linaro.org >
2021-05-19 12:17:11 -05:00
Richard Henderson
5d2238896a
target/i386: Assert !SVME for user-only
...
Most of the VMM instructions are already disabled for user-only,
by being usable only from ring 0.
The spec is intentionally loose for VMMCALL, allowing the VMM to
define syscalls for user-only. However, we're not emulating any
VMM, so VMMCALL can just raise #UD unconditionally.
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20210514151342.384376-31-richard.henderson@linaro.org >
2021-05-19 12:16:48 -05:00
Richard Henderson
9f55e5a947
target/i386: Add stub generator for helper_set_dr
...
This removes an ifdef from the middle of disas_insn,
and ensures that the branch is not reachable.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com >
Message-Id: <20210514151342.384376-30-richard.henderson@linaro.org >
2021-05-19 12:15:47 -05:00
Richard Henderson
a6f62100a8
target/i386: Reorder DisasContext members
...
Sort all of the single-byte members to the same area
of the structure, eliminating 8 bytes of padding.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com >
Message-Id: <20210514151342.384376-29-richard.henderson@linaro.org >
2021-05-19 12:15:47 -05:00
Richard Henderson
3236c2ade2
target/i386: Fix the comment for repz_opt
...
After fixing a typo in the comment, fixup for CODING_STYLE.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20210514151342.384376-28-richard.henderson@linaro.org >
2021-05-19 12:15:47 -05:00
Richard Henderson
305d08e512
target/i386: Reduce DisasContext jmp_opt, repz_opt to bool
...
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com >
Message-Id: <20210514151342.384376-27-richard.henderson@linaro.org >
2021-05-19 12:15:47 -05:00
Richard Henderson
c1de1a1ace
target/i386: Leave TF in DisasContext.flags
...
It's just as easy to clear the flag with AND than assignment.
In two cases the test for the bit can be folded together with
the test for HF_INHIBIT_IRQ_MASK.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com >
Message-Id: <20210514151342.384376-26-richard.henderson@linaro.org >
2021-05-19 12:15:47 -05:00
Richard Henderson
5862579473
target/i386: Reduce DisasContext popl_esp_hack and rip_offset to uint8_t
...
Both of these fields store the size of a single memory access,
so the range of values is 0-8.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com >
Message-Id: <20210514151342.384376-25-richard.henderson@linaro.org >
2021-05-19 12:15:47 -05:00
Richard Henderson
a77ca425d7
target/i386: Reduce DisasContext.vex_[lv] to uint8_t
...
Currently, vex_l is either {0,1}; if in the future we implement
AVX-512, the max value will be 2. In vex_v we store a register
number. This is 0-15 for SSE, and 0-31 for AVX-512.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com >
Message-Id: <20210514151342.384376-24-richard.henderson@linaro.org >
2021-05-19 12:15:47 -05:00
Richard Henderson
a8b9b657a0
target/i386: Reduce DisasContext.prefix to uint8_t
...
The highest bit in this set is 0x40 (PREFIX_REX).
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com >
Message-Id: <20210514151342.384376-23-richard.henderson@linaro.org >
2021-05-19 12:15:47 -05:00
Richard Henderson
c651f3a3cb
target/i386: Reduce DisasContext.override to int8_t
...
The range of values is -1 (none) to 5 (R_GS).
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com >
Message-Id: <20210514151342.384376-22-richard.henderson@linaro.org >
2021-05-19 12:15:47 -05:00
Richard Henderson
c6ad6f44ed
target/i386: Reduce DisasContext.flags to uint32_t
...
The value comes from tb->flags, which is uint32_t.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com >
Message-Id: <20210514151342.384376-21-richard.henderson@linaro.org >
2021-05-19 12:15:46 -05:00
Richard Henderson
0046060e5d
target/i386: Remove DisasContext.f_st as unused
...
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com >
Message-Id: <20210514151342.384376-20-richard.henderson@linaro.org >
2021-05-19 12:15:46 -05:00
Richard Henderson
8ab1e4860b
target/i386: Move rex_w into DisasContext
...
Treat this flag exactly like we treat the other rex bits.
The -1 initialization is unused; the two tests are > 0 and == 1,
so the value can be reduced to a bool.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com >
Message-Id: <20210514151342.384376-19-richard.henderson@linaro.org >
2021-05-19 12:15:46 -05:00
Richard Henderson
bbdb4237c5
target/i386: Move rex_r into DisasContext
...
Treat this flag exactly like we treat rex_b and rex_x.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com >
Message-Id: <20210514151342.384376-18-richard.henderson@linaro.org >
2021-05-19 12:15:46 -05:00
Richard Henderson
915ffe89a5
target/i386: Tidy REX_B, REX_X definition
...
Change the storage from int to uint8_t since the value is in {0,8}.
For x86_64 add 0 in the macros to (1) promote the type back to int,
and (2) make the macro an rvalue.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com >
Message-Id: <20210514151342.384376-17-richard.henderson@linaro.org >
2021-05-19 12:15:46 -05:00
Richard Henderson
1e92b7275c
target/i386: Introduce REX_PREFIX
...
The existing flag, x86_64_hregs, does not accurately describe
its setting. It is true if and only if a REX prefix has been
seen. Yes, that affects the "h" regs, but that's secondary.
Add PREFIX_REX and include this bit in s->prefix. Add REX_PREFIX
so that the check folds away when x86_64 is compiled out.
Fold away the reg >= 8 check, because bit 3 of the register
number comes from the REX prefix in the first place.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com >
Message-Id: <20210514151342.384376-16-richard.henderson@linaro.org >
2021-05-19 12:15:46 -05:00
Richard Henderson
beedb93c04
target/i386: Assert !ADDSEG for x86_64 user-only
...
LMA disables traditional segmentation, exposing a flat address space.
This means that ADDSEG is off.
Since we're adding an accessor macro, pull the value directly out
of flags otherwise.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com >
Message-Id: <20210514151342.384376-15-richard.henderson@linaro.org >
2021-05-19 12:15:46 -05:00
Richard Henderson
73e90dc458
target/i386: Assert LMA for x86_64 user-only
...
LMA is a pre-requisite for CODE64, so there is no way to disable it
for x86_64-linux-user, and there is no way to enable it for i386.
Since we're adding an accessor macro, pull the value directly out
of flags when we're not assuming a constant.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com >
Message-Id: <20210514151342.384376-14-richard.henderson@linaro.org >
2021-05-19 12:15:46 -05:00
Richard Henderson
eec7d0f838
target/i386: Assert CODE64 for x86_64 user-only
...
For x86_64 user-only, there is no way to leave 64-bit mode.
Without x86_64, there is no way to enter 64-bit mode. There is
an existing macro to aid with that; simply place it in the right
place in the ifdef chain.
Since we're adding an accessor macro, pull the value directly out
of flags when we're not assuming a constant.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com >
Message-Id: <20210514151342.384376-13-richard.henderson@linaro.org >
2021-05-19 12:15:46 -05:00
Richard Henderson
b40a47a17f
target/i386: Assert SS32 for x86_64 user-only
...
For user-only, SS32 == !VM86, because we are never in
real-mode. Since we cannot enter vm86 mode for x86_64
user-only, SS32 is always set.
Since we're adding an accessor macro, pull the value
directly out of flags otherwise.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com >
Message-Id: <20210514151342.384376-12-richard.henderson@linaro.org >
2021-05-19 12:15:46 -05:00
Richard Henderson
9996dcfd67
target/i386: Assert CODE32 for x86_64 user-only
...
For user-only, CODE32 == !VM86, because we are never in real-mode.
Since we cannot enter vm86 mode for x86_64 user-only, CODE32 is
always set.
Since we're adding an accessor macro, pull the value directly out
of flags otherwise.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com >
Message-Id: <20210514151342.384376-11-richard.henderson@linaro.org >
2021-05-19 12:15:46 -05:00
Richard Henderson
f8a35846d5
target/i386: Assert !VM86 for x86_64 user-only
...
For i386-linux-user, we can enter vm86 mode via the vm86(2) syscall.
That syscall explicitly returns to 32-bit mode, and the syscall does
not exist for a 64-bit x86_64 executable.
Since we're adding an accessor macro, pull the value directly out of
flags otherwise.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com >
Message-Id: <20210514151342.384376-10-richard.henderson@linaro.org >
2021-05-19 12:15:46 -05:00
Richard Henderson
0ab011cca0
target/i386: Assert IOPL is 0 for user-only
...
On real hardware, the linux kernel has the iopl(2) syscall which
can set IOPL to 3, to allow e.g. the xserver to briefly disable
interrupts while programming the graphics card.
However, QEMU cannot and does not implement this syscall, so the
IOPL is never changed from 0. Which means that all of the checks
vs CPL <= IOPL are false for user-only.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com >
Message-Id: <20210514151342.384376-9-richard.henderson@linaro.org >
2021-05-19 12:15:46 -05:00
Richard Henderson
01b9d8c1b2
target/i386: Assert CPL is 3 for user-only
...
A user-mode executable always runs in ring 3.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com >
Message-Id: <20210514151342.384376-8-richard.henderson@linaro.org >
2021-05-19 12:15:46 -05:00
Richard Henderson
d75f912927
target/i386: Assert PE is set for user-only
...
A user-mode executable is never in real-mode. Since we're adding
an accessor macro, pull the value directly out of flags for sysemu.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com >
Message-Id: <20210514151342.384376-7-richard.henderson@linaro.org >
2021-05-19 12:15:46 -05:00
Richard Henderson
ca7874c2fa
target/i386: Split out check_iopl
...
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com >
Message-Id: <20210514151342.384376-6-richard.henderson@linaro.org >
2021-05-19 12:15:46 -05:00
Richard Henderson
aa9f21b1f0
target/i386: Split out check_vm86_iopl
...
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com >
Message-Id: <20210514151342.384376-5-richard.henderson@linaro.org >
2021-05-19 12:15:46 -05:00
Richard Henderson
e048f3d6b9
target/i386: Unify code paths for IRET
...
In vm86 mode, we use the same helper as real-mode, but with
an extra check for IOPL. All non-exceptional paths set EFLAGS.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com >
Message-Id: <20210514151342.384376-4-richard.henderson@linaro.org >
2021-05-19 12:15:46 -05:00
Richard Henderson
bc19f5052d
target/i386: Split out check_cpl0
...
Split out the check for CPL != 0 and the raising of #GP.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com >
Message-Id: <20210514151342.384376-3-richard.henderson@linaro.org >
2021-05-19 12:15:46 -05:00
Richard Henderson
6bd9958645
target/i386: Split out gen_exception_gpf
...
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com >
Message-Id: <20210514151342.384376-2-richard.henderson@linaro.org >
2021-05-19 12:15:46 -05:00
Peter Maydell
d874bc0816
Merge remote-tracking branch 'remotes/kevin/tags/for-upstream' into staging
...
Block layer patches
- vhost-user-blk: Fix error handling during initialisation
- Add test cases for the vhost-user-blk export
- Fix leaked Transaction objects
- qcow2: Expose dirty bit in 'qemu-img info'
# gpg: Signature made Tue 18 May 2021 11:57:46 BST
# gpg: using RSA key DC3DEB159A9AF95D3D7456FE7F09B272C88F2FD6
# gpg: issuer "kwolf@redhat.com "
# gpg: Good signature from "Kevin Wolf <kwolf@redhat.com >" [full]
# Primary key fingerprint: DC3D EB15 9A9A F95D 3D74 56FE 7F09 B272 C88F 2FD6
* remotes/kevin/tags/for-upstream:
vhost-user-blk: Check that num-queues is supported by backend
virtio: Fail if iommu_platform is requested, but unsupported
vhost-user-blk: Get more feature flags from vhost device
vhost-user-blk: Improve error reporting in realize
vhost-user-blk: Don't reconnect during initialisation
vhost-user-blk: Make sure to set Error on realize failure
vhost-user-blk-test: test discard/write zeroes invalid inputs
tests/qtest: add multi-queue test case to vhost-user-blk-test
test: new qTest case to test the vhost-user-blk-server
block/export: improve vu_blk_sect_range_ok()
block: Fix Transaction leak in bdrv_reopen_multiple()
block: Fix Transaction leak in bdrv_root_attach_child()
qcow2: set bdi->is_dirty
Signed-off-by: Peter Maydell <peter.maydell@linaro.org >
2021-05-19 16:10:35 +01:00
Richard Henderson
e543f94685
target/ppc: Remove type argument for mmubooke206_get_physical_address
...
It is no longer used.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20210518201146.794854-16-richard.henderson@linaro.org >
Signed-off-by: David Gibson <david@gibson.dropbear.id.au >
2021-05-19 12:52:07 +10:00
Richard Henderson
5507d62609
target/ppc: Remove type argument from mmubooke206_check_tlb
...
We can now use MMU_INST_FETCH from access_type for this.
Unify the I/D code paths, making use of prot_for_access_type.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20210518201146.794854-15-richard.henderson@linaro.org >
Signed-off-by: David Gibson <david@gibson.dropbear.id.au >
2021-05-19 12:52:07 +10:00
Richard Henderson
40079604ae
target/ppc: Remove type argument from mmubooke_get_physical_address
...
It is no longer used.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20210518201146.794854-14-richard.henderson@linaro.org >
Signed-off-by: David Gibson <david@gibson.dropbear.id.au >
2021-05-19 12:52:07 +10:00
Richard Henderson
05c3ef1451
target/ppc: Remove type argument from mmubooke_check_tlb
...
We can now use MMU_INST_FETCH from access_type for this.
Unify the I/D code paths, making use of prot_for_access_type.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20210518201146.794854-13-richard.henderson@linaro.org >
Signed-off-by: David Gibson <david@gibson.dropbear.id.au >
2021-05-19 12:52:07 +10:00
Richard Henderson
61d2cde867
target/ppc: Remove type argument from mmu40x_get_physical_address
...
It is no longer used.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20210518201146.794854-12-richard.henderson@linaro.org >
Signed-off-by: David Gibson <david@gibson.dropbear.id.au >
2021-05-19 12:52:07 +10:00
Richard Henderson
590fc3c01d
target/ppc: Remove type argument from get_bat_6xx_tlb
...
We can now use MMU_INST_FETCH from access_type for this.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20210518201146.794854-11-richard.henderson@linaro.org >
Signed-off-by: David Gibson <david@gibson.dropbear.id.au >
2021-05-19 12:52:07 +10:00
Richard Henderson
f3f5794d79
target/ppc: Remove type argument from ppc6xx_tlb_check
...
We can now use MMU_INST_FETCH from access_type for this.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20210518201146.794854-10-richard.henderson@linaro.org >
Signed-off-by: David Gibson <david@gibson.dropbear.id.au >
2021-05-19 12:52:07 +10:00
Richard Henderson
574c5585e3
target/ppc: Remove type argument from ppc6xx_tlb_pte_check
...
It is no longer used.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20210518201146.794854-9-richard.henderson@linaro.org >
Signed-off-by: David Gibson <david@gibson.dropbear.id.au >
2021-05-19 12:52:07 +10:00
Richard Henderson
91e615a07d
target/ppc: Remove type argument from check_prot
...
We can now use MMU_INST_FETCH from access_type for this.
Use prot_for_access_type to simplify everything.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20210518201146.794854-8-richard.henderson@linaro.org >
[dwg: Remove a stray trailing whitespace]
Signed-off-by: David Gibson <david@gibson.dropbear.id.au >
2021-05-19 12:51:51 +10:00
Richard Henderson
9630cd6262
target/ppc: Use MMUAccessType in mmu_helper.c
...
This replaces 'int rw' with 'MMUAccessType access_type'.
Comparisons vs zero become either MMU_DATA_LOAD or MMU_DATA_STORE,
since we had previously squashed rw to 0 for code access.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20210518201146.794854-7-richard.henderson@linaro.org >
Signed-off-by: David Gibson <david@gibson.dropbear.id.au >
2021-05-19 12:50:47 +10:00