diff options
author | Richard Henderson <rth@twiddle.net> | 2016-09-03 11:32:35 -0700 |
---|---|---|
committer | Richard Henderson <rth@twiddle.net> | 2016-10-26 08:29:02 -0700 |
commit | 6a73ecf5cfcd39b7afb5d6a24174730eac49d4b5 (patch) | |
tree | aea605ed47f998cda117cc02659475b6e1c77cee /target-alpha/helper.c | |
parent | 05188cc72f0399e99c92f608a8e7ca4c8e552c4b (diff) |
target-alpha: Introduce MMU_PHYS_IDX
Rather than using helpers for physical accesses, use a mmu index.
The primary cleanup is with store-conditional on physical addresses.
Signed-off-by: Richard Henderson <rth@twiddle.net>
Diffstat (limited to 'target-alpha/helper.c')
-rw-r--r-- | target-alpha/helper.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/target-alpha/helper.c b/target-alpha/helper.c index 85168b7ed1..9ba3e1a1b8 100644 --- a/target-alpha/helper.c +++ b/target-alpha/helper.c @@ -126,6 +126,14 @@ static int get_physical_address(CPUAlphaState *env, target_ulong addr, int prot = 0; int ret = MM_K_ACV; + /* Handle physical accesses. */ + if (mmu_idx == MMU_PHYS_IDX) { + phys = addr; + prot = PAGE_READ | PAGE_WRITE | PAGE_EXEC; + ret = -1; + goto exit; + } + /* Ensure that the virtual address is properly sign-extended from the last implemented virtual address bit. */ if (saddr >> TARGET_VIRT_ADDR_SPACE_BITS != saddr >> 63) { |