- 05 Jun, 2014 3 commits
-
-
Paolo Bonzini authored
It is only included in cputlb.c now. Reviewed-by:
Richard Henderson <rth@twiddle.net> Signed-off-by:
Paolo Bonzini <pbonzini@redhat.com>
-
Paolo Bonzini authored
They do not need to be in op_helper.c. Because cputlb.c now includes softmmu_template.h twice for each size, io_readX must be elided the second time through. Reviewed-by:
Richard Henderson <rth@twiddle.net> Signed-off-by:
Paolo Bonzini <pbonzini@redhat.com>
-
Paolo Bonzini authored
We will reference it from more files in the next patch. To avoid ruining the small steps we're making towards multi-target, make it a method of CPU rather than just a global. Reviewed-by:
Andreas Färber <afaerber@suse.de> Signed-off-by:
Paolo Bonzini <pbonzini@redhat.com>
-
- 13 Mar, 2014 4 commits
-
-
Andreas Färber authored
Signed-off-by:
Andreas Färber <afaerber@suse.de>
-
Andreas Färber authored
Signed-off-by:
Andreas Färber <afaerber@suse.de>
-
Andreas Färber authored
Rename can_do_io() to cpu_can_do_io() and change argument to CPUState. Signed-off-by:
Andreas Färber <afaerber@suse.de>
-
Andreas Färber authored
Reset them. Signed-off-by:
Andreas Färber <afaerber@suse.de>
-
- 11 Feb, 2014 2 commits
-
-
Edgar E. Iglesias authored
Reviewed-by:
Peter Maydell <peter.maydell@linaro.org> Signed-off-by:
Edgar E. Iglesias <edgar.iglesias@xilinx.com>
-
Edgar E. Iglesias authored
Reviewed-by:
Peter Maydell <peter.maydell@linaro.org> Signed-off-by:
Edgar E. Iglesias <edgar.iglesias@xilinx.com>
-
- 01 Feb, 2014 1 commit
-
-
Martin Husemann authored
Do not rely on int8_t (and friends) not being preprocessor symbols (or symbols expanding to themselves). On NetBSD (for example) the glue(u, SDATA_TYPE) results in u__int8_t, which is undefined. There is no way to stop cpp expanding inner macros, so just add the few lines explicitly and get rid of the magic. Signed-off-by:
Martin Husemann <martin@NetBSD.org> Reviewed-by:
Peter Maydell <peter.maydell@linaro.org> Reviewed-by:
Andreas Färber <afaerber@suse.de> Signed-off-by:
Michael Tokarev <mjt@tls.msk.ru>
-
- 10 Oct, 2013 2 commits
-
-
Richard Henderson authored
Step three in the transition: helpers not tied to the target "default" endianness. To be used when the guest uses a memory operation with non-default endianness. Signed-off-by:
Richard Henderson <rth@twiddle.net>
-
Richard Henderson authored
All implementations now boil down to GETRA. Signed-off-by:
Richard Henderson <rth@twiddle.net>
-
- 02 Sep, 2013 3 commits
-
-
Richard Henderson authored
Reviewed-by:
Aurelien Jarno <aurelien@aurel32.net> Signed-off-by:
Richard Henderson <rth@twiddle.net>
-
Richard Henderson authored
In a following patch, there will be confusion between multiple "unsigned" suffixes; rename this one so as to imply "load". Reviewed-by:
Aurelien Jarno <aurelien@aurel32.net> Signed-off-by:
Richard Henderson <rth@twiddle.net>
-
Richard Henderson authored
Always define GETRA; use __builtin_extract_return_addr, rather than having a special case for s390. Split GETPC_ADJ out of GETPC; use 2 universally, rather than having a special case for arm. Rename GETPC_LDST to GETRA_LDST to indicate that it does not contain the GETPC_ADJ value. Likewise with GETPC_EXT to GETRA_EXT. Perform the GETPC_ADJ adjustment inside helper_ret_ld/st. This will allow backends to pass along the "true" return address rather than the massaged GETPC value. In the meantime, double application of GETPC_ADJ does not hurt, since the call insn in all ISAs is at least 4 bytes long. Reviewed-by:
Aurelien Jarno <aurelien@aurel32.net> Signed-off-by:
Richard Henderson <rth@twiddle.net>
-
- 26 Aug, 2013 2 commits
-
-
Richard Henderson authored
Avoid a loop in the tlb_fill path; the fill will either succeed or generate an exception. Inline the slow_ld/st function; it was a complete copy of the main helper except for the actual cross-page unaligned code, and the compiler was inlining it anyway. Add unlikely markers optimizing for the most common case of simple tlb miss. Make sure the compiler can optimize away the unaligned paths for a 1 byte access. Reviewed-by:
Aurelien Jarno <aurelien@aurel32.net> Signed-off-by:
Richard Henderson <rth@twiddle.net>
-
Richard Henderson authored
Allow the code that tcg generates to be less obtuse, passing in the return address directly instead of computing it in the helper. Maintain the old entrance point unchanged as an alternate entry point. Delete the helper_st*_cmmu prototypes; the implementations did not exist. Signed-off-by:
Richard Henderson <rth@twiddle.net>
-
- 29 May, 2013 4 commits
-
-
Paolo Bonzini authored
Reviewed-by:
Richard Henderson <rth@twiddle.net> Signed-off-by:
Paolo Bonzini <pbonzini@redhat.com>
-
Paolo Bonzini authored
The memory API is able to split it in two 4-byte accesses. Reviewed-by:
Richard Henderson <rth@twiddle.net> Signed-off-by:
Paolo Bonzini <pbonzini@redhat.com>
-
Paolo Bonzini authored
There is no reason to avoid a recompile before accessing unassigned memory. In the end it will be treated as MMIO anyway. Reviewed-by:
Richard Henderson <rth@twiddle.net> Signed-off-by:
Paolo Bonzini <pbonzini@redhat.com>
-
Paolo Bonzini authored
It is never used, the IOTLB always goes through io_mem_notdirty. In fact in softmmu_template.h, if it were, QEMU would crash just below the tests, as soon as io_mem_read/write dispatches to error_mem_read/write. Reviewed-by:
Richard Henderson <rth@twiddle.net> Signed-off-by:
Paolo Bonzini <pbonzini@redhat.com>
-
- 19 Dec, 2012 2 commits
-
-
Paolo Bonzini authored
Signed-off-by:
Paolo Bonzini <pbonzini@redhat.com>
-
Paolo Bonzini authored
Signed-off-by:
Paolo Bonzini <pbonzini@redhat.com>
-
- 03 Nov, 2012 1 commit
-
-
Yeongkyoon Lee authored
Add GETPC_EXT which is used by MMU helpers to selectively calculate the code address of accessing guest memory when called from a qemu_ld/st optimized code or a C function. Currently, it supports only i386 and x86-64 hosts. Signed-off-by:
Yeongkyoon Lee <yeongkyoon.lee@samsung.com> Signed-off-by:
Blue Swirl <blauwirbel@gmail.com>
-
- 23 Oct, 2012 1 commit
-
-
Avi Kivity authored
target_phys_addr_t is unwieldly, violates the C standard (_t suffixes are reserved) and its purpose doesn't match the name (most target_phys_addr_t addresses are not target specific). Replace it with a finger-friendly, standards conformant hwaddr. Outstanding patchsets can be fixed up with the command git rebase -i --exec 'find -name "*.[ch]" | xargs s/target_phys_addr_t/hwaddr/g' origin Signed-off-by:
Avi Kivity <avi@redhat.com> Signed-off-by:
Anthony Liguori <aliguori@us.ibm.com>
-
- 15 Sep, 2012 1 commit
-
-
Blue Swirl authored
Now that CONFIG_TCG_PASS_AREG0 is enabled for all targets, remove dead code and support for !CONFIG_TCG_PASS_AREG0 case. Remove dyngen-exec.h and all references to it. Although included by hw/spapr_hcall.c, it does not seem to use it. Remove unused HELPER_CFLAGS. Signed-off-by:
Blue Swirl <blauwirbel@gmail.com> Reviewed-by:
Richard Henderson <rth@twiddle.net>
-
- 15 Apr, 2012 1 commit
-
-
Stefan Weil authored
w64 requires uintptr_t. Signed-off-by:
Stefan Weil <sw@weilnetz.de>
-
- 14 Apr, 2012 1 commit
-
-
Blue Swirl authored
Use uintptr_t instead of void * or unsigned long in several op related functions, env->mem_io_pc and GETPC() macro. Reviewed-by:
Stefan Weil <sw@weilnetz.de> Signed-off-by:
Blue Swirl <blauwirbel@gmail.com>
-
- 18 Mar, 2012 2 commits
-
-
Blue Swirl authored
Optionally, make memory access helpers take a parameter for CPUState instead of relying on global env. On most targets, perform simple moves to reorder registers. On i386, switch from regparm(3) calling convention to standard stack-based version. Signed-off-by:
Blue Swirl <blauwirbel@gmail.com>
-
Blue Swirl authored
Use stack based calling convention (GCC default) for interfacing with generated code instead of register based convention (regparm(3)). Signed-off-by:
Blue Swirl <blauwirbel@gmail.com>
-
- 08 Mar, 2012 2 commits
-
-
Avi Kivity authored
Instead of indirecting via io_mem_region, dispatch directly through the MemoryRegion obtained from the iotlb or phys_page_find(). Signed-off-by:
Avi Kivity <avi@redhat.com>
-
Avi Kivity authored
A step towards eliminating io indices. Signed-off-by:
Avi Kivity <avi@redhat.com>
-
- 04 Jan, 2012 4 commits
-
-
Avi Kivity authored
We no longer use any of the lower bits of a ram_addr, so we might as well use them for the io table index. This increases the number of potential I/O handlers by a factor of 8. Signed-off-by:
Avi Kivity <avi@redhat.com> Reviewed-by:
Richard Henderson <rth@twiddle.net>
-
Avi Kivity authored
Convert the fixed-address IO_MEM_RAM, IO_MEM_ROM, IO_MEM_UNASSIGNED, and IO_MEM_NOTDIRTY io handlers to MemoryRegions. These aren't real regions, since they are never added to the memory hierarchy, but they allow reuse of the dispatch functionality. Signed-off-by:
Avi Kivity <avi@redhat.com> Reviewed-by:
Richard Henderson <rth@twiddle.net>
-
Avi Kivity authored
The code sometimes uses range comparisons on io indexes (e.g. index =< IO_MEM_ROM). Avoid these as they make moving to objects harder. Signed-off-by:
Avi Kivity <avi@redhat.com> Reviewed-by:
Richard Henderson <rth@twiddle.net>
-
Avi Kivity authored
Currently mmio access goes directly to the io_mem_{read,write} arrays. In preparation for eliminating them, add indirection via a function. Signed-off-by:
Avi Kivity <avi@redhat.com> Reviewed-by:
Richard Henderson <rth@twiddle.net>
-
- 01 Oct, 2011 2 commits
-
-
Blue Swirl authored
Pass CPUState pointer to tlb_fill() instead of architecture local cpu_single_env hacks. Signed-off-by:
Blue Swirl <blauwirbel@gmail.com>
-
Blue Swirl authored
Add some comments to describe each file. Signed-off-by:
Blue Swirl <blauwirbel@gmail.com>
-
- 04 Apr, 2010 1 commit
-
-
Paul Brook authored
Historically the qemu tlb "addend" field was used for both RAM and IO accesses, so needed to be able to hold both host addresses (unsigned long) and guest physical addresses (target_phys_addr_t). However since the introduction of the iotlb field it has only been used for RAM accesses. This means we can change the type of addend to unsigned long, and remove associated hacks in the big-endian TCG backends. We can also remove the host dependence from target_phys_addr_t. Signed-off-by:
Paul Brook <paul@codesourcery.com>
-
- 29 Mar, 2010 1 commit
-
-
Blue Swirl authored
Arrange various declarations so that also non-CPU code can access them, adjust users. Move CPU specific code to cpus.c. Signed-off-by:
Blue Swirl <blauwirbel@gmail.com>
-