- 04 Feb, 2011 2 commits
-
-
Peter Maydell authored
The ARM cp15 register 0,c0,c0,5 is standardised in the v7 architecture as the MPIDR. Clean up its implementation to remove A9 specific handling. This commit includes fixing an error in the value returned for the MPIDR on A9, where we were erroneously claiming a cluster ID of 9. Signed-off-by:
Peter Maydell <peter.maydell@linaro.org> Signed-off-by:
Aurelien Jarno <aurelien@aurel32.net>
-
Peter Maydell authored
Add a CPU feature flag for v7MP (the multiprocessing extensions); some instructions exist only for v7MP and not for the base v7 architecture. Signed-off-by:
Peter Maydell <peter.maydell@linaro.org> Signed-off-by:
Aurelien Jarno <aurelien@aurel32.net>
-
- 14 Jan, 2011 4 commits
-
-
Peter Maydell authored
When translating the SRS instruction, handle the "store registers to stack of current mode" case in the helper function rather than inline. This means the generated code does not make assumptions about the current CPU mode which might not be valid when the TB is executed later. Signed-off-by:
Peter Maydell <peter.maydell@linaro.org> Reviewed-by:
Aurelien Jarno <aurelien@aurel32.net> Signed-off-by:
Aurelien Jarno <aurelien@aurel32.net>
-
Peter Maydell authored
VSQRTS always uses the standard FPSCR value as it is a Neon instruction. Signed-off-by:
Peter Maydell <peter.maydell@linaro.org> Reviewed-by:
Aurelien Jarno <aurelien@aurel32.net> Signed-off-by:
Aurelien Jarno <aurelien@aurel32.net>
-
Peter Maydell authored
Add support to the ARM helper routines for a second fp_status value which should be used for operations which the ARM ARM indicates use "ARM standard floating-point arithmetic" rather than being controlled by the rounding/flush/NaN settings in the FPSCR. Signed-off-by:
Peter Maydell <peter.maydell@linaro.org> Reviewed-by:
Aurelien Jarno <aurelien@aurel32.net> Signed-off-by:
Aurelien Jarno <aurelien@aurel32.net>
-
Peter Maydell authored
The implementation of the ARM VRSQRTS instruction (which calculates (3 - op1 * op2) / 2) was missing the division operation. It also did not handle the special cases of (0,inf) and (inf,0). Signed-off-by:
Peter Maydell <peter.maydell@linaro.org> Reviewed-by:
Aurelien Jarno <aurelien@aurel32.net> Signed-off-by:
Aurelien Jarno <aurelien@aurel32.net>
-
- 06 Jan, 2011 2 commits
-
-
Peter Maydell authored
Wire up the new softfloat support for flushing input denormals to zero on ARM. The FPSCR FZ bit enables flush-to-zero for both inputs and outputs, but the reporting of when inputs are flushed to zero is via a separate IDC bit rather than the UFC (underflow) bit used when output denormals are flushed to zero. Signed-off-by:
Peter Maydell <peter.maydell@linaro.org> Acked-by:
Aurelien Jarno <aurelien@aurel32.net> Signed-off-by:
Aurelien Jarno <aurelien@aurel32.net>
-
Peter Maydell authored
When handling a write to the ARM FPSCR, set the softfloat cumulative exception flags from the cumulative flags in the FPSCR, not the exception-enable bits. Also don't apply a mask: vfp_exceptbits_to_host will only look at the correct bits anyway. Signed-off-by:
Peter Maydell <peter.maydell@linaro.org> Acked-by:
Aurelien Jarno <aurelien@aurel32.net> Signed-off-by:
Aurelien Jarno <aurelien@aurel32.net>
-
- 27 Dec, 2010 3 commits
-
-
Juha Riihimäki authored
Signed-off-by:
Juha Riihimäki <juha.riihimaki@nokia.com> Signed-off-by:
Aurelien Jarno <aurelien@aurel32.net>
-
Mattias Holm authored
Signed-off-by:
Juha Riihimäki <juha.riihimaki@nokia.com> Signed-off-by:
Aurelien Jarno <aurelien@aurel32.net>
-
Juha Riihimäki authored
Override access control checks (including execute) for mmu translation table descriptors assigned to manager domains. Signed-off-by:
Juha Riihimäki <juha.riihimaki@nokia.com> Signed-off-by:
Aurelien Jarno <aurelien@aurel32.net>
-
- 07 Dec, 2010 4 commits
-
-
Peter Maydell authored
Use the softfloat conversion routines for conversion to 16 bit integers, because just casting to a 16 bit type truncates the value rather than saturating it at 16-bit MAXINT/MININT. Signed-off-by:
Peter Maydell <peter.maydell@linaro.org> Reviewed-by:
Nathan Froyd <froydnj@codesourcery.com>
-
Peter Maydell authored
VCVT of 16 bit fixed point to float should ignore the top 16 bits of the source register. Cast to int16_t and friends rather than int16 -- the former is guaranteed exactly 16 bits wide where the latter is merely at least 16 bits wide (and so is usually 32 bits). Signed-off-by:
Peter Maydell <peter.maydell@linaro.org> Reviewed-by:
Nathan Froyd <froydnj@codesourcery.com>
-
Peter Maydell authored
The ARM ARM defines that if the input to a single<->double conversion is a NaN then the output is always forced to be a quiet NaN by setting the most significant bit of the fraction part. Signed-off-by:
Peter Maydell <peter.maydell@linaro.org> Reviewed-by:
Nathan Froyd <froydnj@codesourcery.com>
-
Peter Maydell authored
The ARM architecture mandates that converting a NaN value to integer gives zero (if Invalid Operation FP exceptions are not being trapped). This isn't the behaviour of the SoftFloat library, so NaNs must be special-cased. Signed-off-by:
Peter Maydell <peter.maydell@linaro.org> Reviewed-by:
Nathan Froyd <froydnj@codesourcery.com>
-
- 03 Dec, 2010 2 commits
-
-
Peter Maydell authored
Expose the vfp_get_fpscr() and vfp_set_fpscr() functions to C code as well as generated code, so we can use them to read and write the FPSCR when saving and restoring VFP registers across signal handlers in linux-user mode. Signed-off-by:
Peter Maydell <peter.maydell@linaro.org> Signed-off-by:
Riku Voipio <riku.voipio@nokia.com>
-
Peter Maydell authored
In linux-user mode, the XScale/iWMMXT coprocessors must be enabled at reset so that we can run code that uses these instructions. Signed-off-by:
Peter Maydell <peter.maydell@linaro.org>
-
- 30 Oct, 2010 1 commit
-
-
Stefan Weil authored
fprintf_function uses format checking with GCC_FMT_ATTR. Format errors were fixed in * target-i386/helper.c * target-mips/translate.c * target-ppc/translate.c Cc: Blue Swirl <blauwirbel@gmail.com> Signed-off-by:
Stefan Weil <weil@mail.berlios.de> Signed-off-by:
Blue Swirl <blauwirbel@gmail.com>
-
- 01 Jul, 2010 1 commit
-
-
Chih-Min Chao authored
Signed-off-by:
Chih-Min Chao <cmchao@gmail.com> Signed-off-by:
Aurelien Jarno <aurelien@aurel32.net>
-
- 31 May, 2010 1 commit
-
-
Lars Munch authored
Booting an arm kernel has been broken a while when booting from non zero start address. This is due to the order of events: board init loads the kernel and sets register 15 to the start address and then qemu_system_reset reset the cpu making register 15 zero again. This patch fixes the usage of the register 15 start address trick in combination with arm_load_kernel. Signed-off-by:
Lars Munch <lars@segv.dk> Signed-off-by:
Aurelien Jarno <aurelien@aurel32.net>
-
- 05 Apr, 2010 2 commits
-
-
Paul Brook authored
Only include hw/loader.h from target-arm/helper.c when building for system emulation. Signed-off-by:
Paul Brook <paul@codesourcery.com>
-
Paul Brook authored
Move ARMv7-M PC/SP initialization to the CPU reset routine. Add a board reset routine to call this. Also load values directly from ROM as images have not been copied yet. Avoid clearing the NVIC pointer on cpu reset. Signed-off-by:
Paul Brook <paul@codesourcery.com>
-
- 27 Mar, 2010 1 commit
-
-
Rabin Vincent authored
Don't set PAGE_EXEC for XN pages, to avoid a bypass of XN protection checking if the page is already in the TLB. Signed-off-by:
Rabin Vincent <rabin@rab.in> Signed-off-by:
Aurelien Jarno <aurelien@aurel32.net>
-
- 16 Mar, 2010 1 commit
-
-
Paul Brook authored
QEMU uses a fixed page size for the CPU TLB. If the guest uses large pages then we effectively split these into multiple smaller pages, and populate the corresponding TLB entries on demand. When the guest invalidates the TLB by virtual address we must invalidate all entries covered by the large page. However the address used to invalidate the entry may not be present in the QEMU TLB, so we do not know which regions to clear. Implementing a full vaiable size TLB is hard and slow, so just keep a simple address/mask pair to record which addresses may have been mapped by large pages. If the guest invalidates this region then flush the whole TLB. Signed-off-by:
Paul Brook <paul@codesourcery.com>
-
- 12 Mar, 2010 1 commit
-
-
Paul Brook authored
cpu_get_phys_page_debug makes no sense for userspace emulation, so remove it. Signed-off-by:
Paul Brook <paul@codesourcery.com>
-
- 19 Feb, 2010 1 commit
-
-
Rabin Vincent authored
When handling an exception, switch to the correct mode based on the Thumb Exception (TE) bit in the SCTLR. Signed-off-by:
Rabin Vincent <rabin@rab.in>
-
- 06 Feb, 2010 1 commit
-
-
Riku Voipio authored
Access the cp15.c13 TLS registers directly with TCG ops instead of with a slow helper. If the the cp15 read/write was not TLS register access, fall back to the cp15 helper. This makes accessing __thread variables in linux-user when apps are compiled with -mtp=cp15 possible. legal cp15 register to acces from linux-user are already checked in cp15_user_ok. While at it, make the cp15.c13 Thread ID registers available only on ARMv6K and newer. Signed-off-by:
Riku Voipio <riku.voipio@nokia.com>
-
- 05 Feb, 2010 1 commit
-
-
Riku Voipio authored
Access the cp15.c13 TLS registers directly with TCG ops instead of with a slow helper. If the the cp15 read/write was not TLS register access, fall back to the cp15 helper. This makes accessing __thread variables in linux-user when apps are compiled with -mtp=cp15 possible. legal cp15 register to acces from linux-user are already checked in cp15_user_ok. While at it, make the cp15.c13 Thread ID registers available only on ARMv6K and newer. Signed-off-by:
Riku Voipio <riku.voipio@nokia.com>
-
- 22 Nov, 2009 1 commit
-
-
Paul Brook authored
Implement ARMv6 atomic ops (ldrex/strex) using the same trick as PPC. Signed-off-by:
Paul Brook <paul@codesourcery.com>
-
- 19 Nov, 2009 2 commits
-
-
Paul Brook authored
Basic Cortex-A9 support. Signed-off-by:
Paul Brook <paul@codesourcery.com>
-
Paul Brook authored
Implement the ARM VFP half precision floating point extensions. Signed-off-by:
Paul Brook <paul@codesourcery.com>
-
- 27 Oct, 2009 1 commit
-
-
Juha Riihimäki authored
All other bits except for the EN in the VFP FPEXC register are defined as subarchitecture specific and real functionality for any of the other bits has not been implemented in QEMU. However, current code allows modifying all bits in the VFP FPEXC register leading to problems when guest code is writing 1's to the subarchitecture specific bits and checking whether the bits stay up to verify the existence of functionality which in fact does not exist in QEMU. This patch has been revised to include the same behavior change in the gdb register write function. Signed-off-by:
Juha Riihimäki <juha.riihimaki@nokia.com> Acked-by:
Laurent Desnogues <laurent.desnogues@gmail.com> Signed-off-by:
Aurelien Jarno <aurelien@aurel32.net>
-
- 22 Oct, 2009 2 commits
-
-
Aurelien Jarno authored
(INT32_MIN / -1) triggers an overflow, and the result depends on the host architecture (INT32_MIN on arm, -1 on ppc, SIGFPE on x86). Use a test to output the correct value. Signed-off-by:
Aurelien Jarno <aurelien@aurel32.net> Acked-by:
Laurent Desnogues <laurent.desnogues@gmail.com>
-
Aurelien Jarno authored
Signed-off-by:
Aurelien Jarno <aurelien@aurel32.net> Acked-by:
Laurent Desnogues <laurent.desnogues@gmail.com>
-
- 01 Oct, 2009 2 commits
-
-
Anthony Liguori authored
In the very least, a change like this requires discussion on the list. The naming convention is goofy and it causes a massive merge problem. Something like this _must_ be presented on the list first so people can provide input and cope with it. This reverts commit 99a0949b . Signed-off-by:
Anthony Liguori <aliguori@us.ibm.com>
-
malc authored
Some not so obvious bits, slirp and Xen were left alone for the time being. Signed-off-by:
malc <av1474@comtv.ru>
-
- 24 Apr, 2009 1 commit
-
-
aliguori authored
Signed-off-by:
Marcelo Tosatti <mtosatti@redhat.com> Signed-off-by:
Anthony Liguori <aliguori@us.ibm.com> git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@7242 c046a42c-6fe2-441c-8c8c-71466251a162
-
- 07 Mar, 2009 2 commits
-
-
aurel32 authored
According to ARM Cortex A8 Technical Reference Manual, the reset value for CP15 c1 auxiliary control register is 2, not zero (page 3.12). Signed-off-by:
Riku Voipio <riku.voipio@iki.fi> Acked-by:
Laurent Desnogues <laurent.desnogues@gmail.com> Signed-off-by:
Aurelien Jarno <aurelien@aurel32.net> git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6771 c046a42c-6fe2-441c-8c8c-71466251a162
-
aurel32 authored
Fix remaining arm warnings - except for the mess in the NetWinder FP emulator. Signed-off-by:
Jan Kiszka <jan.kiszka@siemens.com> Signed-off-by:
Aurelien Jarno <aurelien@aurel32.net> git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6766 c046a42c-6fe2-441c-8c8c-71466251a162
-
- 05 Feb, 2009 1 commit
-
-
aliguori authored
Signed-off-by:
Avi Kivity <avi@redhat.com> Signed-off-by:
Anthony Liguori <aliguori@us.ibm.com> git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6530 c046a42c-6fe2-441c-8c8c-71466251a162
-