summaryrefslogtreecommitdiffstats
path: root/target-microblaze
Commit message (Collapse)AuthorAgeFilesLines
* microblaze: cleanup helper_addkcEdgar E. Iglesias2011-01-233-10/+7
| | | | | | Remove unused addition and rename to helper_carry. Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
* microblaze: Improve subkcEdgar E. Iglesias2011-01-223-38/+49
| | | | | | | | Move code from the helper into the translator. The remaining helper parts can reuse helper_addkc, making it possible to remove helper_subkc entirely. Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
* microblaze: Fix 3rd addkc arg when rd is r0Edgar E. Iglesias2011-01-221-2/+1
| | | | Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
* microblaze: Improve addkcEdgar E. Iglesias2011-01-223-26/+45
| | | | | | | | | * Optimize handling when carry is not updated. * Optimize handling for adds with nop semantics. * Move code from helper_addkc to the translator making helper_addkc PURE and CONST. Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
* microblaze: Remove debug leftovers.Edgar E. Iglesias2011-01-221-2/+0
| | | | | | No functional changes. Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
* microblaze: Reorganize for future patchesEdgar E. Iglesias2011-01-221-19/+17
| | | | | | No functional changes. Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
* microblaze: Add support for load/store reversedEdgar E. Iglesias2011-01-191-8/+161
| | | | | | | Load/store reversed (lwr/swr) are insns that endian translate the sub-word part of the address and byteswap the data lanes. Signed-off-by: Edgar E. Iglesias <edgar.iglesias@petalogix.com>
* microblaze: Tweak comment, fast cases -> common casesEdgar E. Iglesias2011-01-191-1/+1
| | | | Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
* microblaze: Improve unconditional direct branchingEdgar E. Iglesias2011-01-141-7/+14
| | | | | | | Avoid emitting conditional tcg operations for uncoditional direct branches. Signed-off-by: Edgar E. Iglesias <edgar.iglesias@petalogix.com>
* microblaze: Use more TB chainingEdgar E. Iglesias2011-01-051-5/+23
| | | | | | | For some workloads with tight loops this ~doubles the emulation speed. Signed-off-by: Edgar E. Iglesias <edgar.iglesias@petalogix.com>
* softfloat: Rename float*_is_nan() functions to float*_is_quiet_nan()Peter Maydell2011-01-021-1/+1
| | | | | | | | | | | | | | | | The softfloat functions float*_is_nan() were badly misnamed, because they return true only for quiet NaNs, not for all NaNs. Rename them to float*_is_quiet_nan() to more accurately reflect what they do. This change was produced by: perl -p -i -e 's/_is_nan/_is_quiet_nan/g' $(git grep -l is_nan) (with the results manually checked.) Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Nathan Froyd <froydnj@codesourcery.com> Acked-by: Edgar E. Iglesias <edgar.iglesias@gmail.com> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
* target-xxx: Use fprintf_function (format checking)Stefan Weil2010-10-301-2/+1
| | | | | | | | | | | | | 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>
* target-microblaze: Use %td for ptrdiff_t arguments in debug messageStefan Weil2010-10-021-1/+1
| | | | | | | | | | According to ISO/IEC 9899:1999 7.19.6.1, the correct length modifier for ptrdiff_t is 't', not 'z'. Cc: Blue Swirl <blauwirbel@gmail.com> Cc: Markus Armbruster <armbru@redhat.com> Signed-off-by: Stefan Weil <weil@mail.berlios.de> Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
* microblaze: Add support for fcmp.unEdgar E. Iglesias2010-09-091-2/+16
| | | | Signed-off-by: Edgar E. Iglesias <edgar.iglesias@petalogix.com>
* microblaze: Add basic FPU emulationEdgar E. Iglesias2010-09-094-9/+358
| | | | | | | | | Missing: * fcmp.un insn * Denormalized exceptions * Exception model is not accurate Signed-off-by: Edgar E. Iglesias <edgar.iglesias@petalogix.com>
* microblaze: Add definitions for FSR reg fieldsEdgar E. Iglesias2010-09-091-0/+7
| | | | Signed-off-by: Edgar E. Iglesias <edgar.iglesias@petalogix.com>
* microblaze: Remove unused members from the disas contextEdgar E. Iglesias2010-07-251-5/+1
| | | | Signed-off-by: Edgar E. Iglesias <edgar.iglesias@petalogix.com>
* microblaze: Speed up base + index addressing modeEdgar E. Iglesias2010-07-241-0/+7
| | | | | | Speed up reg + reg addressing mode when any of the regs is r0. Signed-off-by: Edgar E. Iglesias <edgar.iglesias@petalogix.com>
* microblaze: Use setcond for conditional branchesEdgar E. Iglesias2010-07-241-32/+6
| | | | | | | | Use setcond for evaluating the condition for branches. In the future, we could do better for branches without delay slots. Signed-off-by: Edgar E. Iglesias <edgar.iglesias@petalogix.com>
* microblaze: Improve branch with small immediatesEdgar E. Iglesias2010-07-241-7/+21
| | | | | | | Slight improvements of conditional branches with small immediate offsets. Signed-off-by: Edgar E. Iglesias <edgar.iglesias@petalogix.com>
* remove exec-all.h inclusion from cpu.hPaolo Bonzini2010-07-031-1/+0
| | | | | Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
* move cpu_pc_from_tb to target-*/exec.hPaolo Bonzini2010-07-032-5/+6
| | | | | Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
* remove unused stuff from */exec.hPaolo Bonzini2010-07-031-2/+0
| | | | | Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
* microblaze: Make MSR_UM and MSR_VM part of the tb flagsEdgar E. Iglesias2010-06-071-4/+3
| | | | Signed-off-by: Edgar E. Iglesias <edgar.iglesias@petalogix.com>
* microblaze: Update elf machine nums.Edgar E. Iglesias2010-05-191-1/+1
| | | | | | | | | | | 189 was allocated in upstream binutils. 0xbaab was the old temporary value. Still used by some tools and the linux kernel. I've seen 115 in older gdb versions, but lets ignore that one. Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
* microblaze: remove dead assignments, spotted by clang analyzerBlue Swirl2010-04-251-6/+1
| | | | | | Value stored is never read. Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
* Large page TLB flushPaul Brook2010-03-171-3/+4
| | | | | | | | | | | | | | | | | | 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>
* Target specific usermode cleanupPaul Brook2010-03-122-1/+3
| | | | | | Disable various target specific code that is only relevant to system emulation. Signed-off-by: Paul Brook <paul@codesourcery.com>
* Remove cpu_get_phys_page_debug from userspace emulationPaul Brook2010-03-121-5/+0
| | | | | | cpu_get_phys_page_debug makes no sense for userspace emulation, so remove it. Signed-off-by: Paul Brook <paul@codesourcery.com>
* Move TARGET_PHYS_ADDR_SPACE_BITS to target-*/cpu.h.Richard Henderson2010-03-121-0/+3
| | | | | | | | | | Removes a set of ifdefs from exec.c. Introduce TARGET_VIRT_ADDR_SPACE_BITS for all targets other than Alpha. This will be used for page_find_alloc, which is supposed to be using virtual addresses in the first place. Signed-off-by: Richard Henderson <rth@twiddle.net>
* microblaze: Improve brk emulation.Edgar E. Iglesias2010-02-201-5/+14
| | | | | | | brk insns while in user mode raise priv insn exceptions. This commit makes gdbserver work on linux guests. Signed-off-by: Edgar E. Iglesias <edgar.iglesias@petalogix.com>
* microblaze: Dont segfault when singlestepping first insn.Edgar E. Iglesias2010-02-201-0/+6
| | | | Signed-off-by: Edgar E. Iglesias <edgar.iglesias@petalogix.com>
* kill regs_to_env and env_to_regsPaolo Bonzini2010-01-191-8/+0
| | | | | Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
* microblaze: Print content of EAR registerMichal Simek2009-12-162-4/+4
| | | | | | | I need to see EAR register in output because I need to parse irqsoff problem. Signed-off-by: Michal Simek <monstr@monstr.eu> Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
* microblaze: Update debug logs.Edgar E. Iglesias2009-12-162-2/+14
| | | | Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
* microblaze: Handle wdc flush and clear.Edgar E. Iglesias2009-12-131-0/+3
| | | | Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
* microblaze: Correct branch to registers.Paul Hartke2009-12-131-1/+1
| | | | Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
* microblaze: Restore env when raising unmapped bus access.Edgar E. Iglesias2009-11-121-0/+2
| | | | Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
* microblaze: Unbreak reset.Edgar E. Iglesias2009-11-121-27/+26
| | | | | | | Initialize synthesis config registers at reset to cope with the new cpu_reset sequences. Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
* Revert "Get rid of _t suffix"Anthony Liguori2009-10-013-4/+4
| | | | | | | | | | | | 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 99a0949b720a0936da2052cb9a46db04ffc6db29. Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
* Get rid of _t suffixmalc2009-10-013-4/+4
| | | | | | | Some not so obvious bits, slirp and Xen were left alone for the time being. Signed-off-by: malc <av1474@comtv.ru>
* gcc wants 1st static and then constJuan Quintela2009-09-251-2/+2
| | | | | Signed-off-by: Juan Quintela <quintela@redhat.com> Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
* Fix sys-queue.h conflict for goodBlue Swirl2009-09-121-2/+2
| | | | | | | | | | | | | | | Problem: Our file sys-queue.h is a copy of the BSD file, but there are some additions and it's not entirely compatible. Because of that, there have been conflicts with system headers on BSD systems. Some hacks have been introduced in the commits 15cc9235840a22c289edbe064a9b3c19c5f49896, f40d753718c72693c5f520f0d9899f6e50395e94, 96555a96d724016e13190b28cffa3bc929ac60dc and 3990d09adf4463eca200ad964cc55643c33feb50 but the fixes were fragile. Solution: Avoid the conflict entirely by renaming the functions and the file. Revert the previous hacks. Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
* microblaze: Trap if QEMU finds an unknown insns.Edgar E. Iglesias2009-09-111-0/+6
| | | | | | | If PVR settings enable illegal insn trap, trap when QEMU finds an insn it knows nothing about. Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
* microblaze: Correct prio between MMU and unaligned exceptions.Edgar E. Iglesias2009-09-111-6/+25
| | | | | | | | The microblaze gives MMU faults priority. For stores we still have a flaw that the value leaks to memory in the case of an unaligned exception. Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
* microblaze: HW Exception fixes.Edgar E. Iglesias2009-09-112-19/+21
| | | | | | | | * Correct PVR checks for masking off individual exceptions. * Correct FPU exception code. * Set EAR on unaligned and unassigned exceptions. Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
* microblaze: Trap on illegal load/store sizes.Edgar E. Iglesias2009-09-041-0/+13
| | | | Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
* microblaze: Correct FPU decoding masks.Edgar E. Iglesias2009-09-041-2/+2
| | | | Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
* microblaze: Compute masks for alignment checks at translation time.Edgar E. Iglesias2009-09-032-15/+6
| | | | | Thanks to Blue Swirl for reporting. Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
* microblaze: Trap on bus accesses to unmapped areas.Edgar E. Iglesias2009-09-032-0/+30
| | | | Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
OpenPOWER on IntegriCloud