inline cpu_halted into sole caller
All implementations are now the same, and there is only one caller,so inline the function there.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
microblaze: Add PVR for writeback cache, endians
Specify PVR for writeback cache, endians and others.
Signed-off-by: Michal Simek <monstr@monstr.eu>Signed-off-by: Edgar E. Iglesias <edgar.iglesias@petalogix.com>
microblaze: Handle singlestepping over direct jmps
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@petalogix.com>
cris, microblaze: use cpu_has_work
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
microblaze: cleanup helper_addkc
Remove unused addition and rename to helper_carry.
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
microblaze: Improve subkc
Move code from the helper into the translator. The remaininghelper parts can reuse helper_addkc, making it possible toremove helper_subkc entirely.
microblaze: Fix 3rd addkc arg when rd is r0
microblaze: Improve addkc
microblaze: Remove debug leftovers.
No functional changes.
microblaze: Reorganize for future patches
microblaze: Add support for load/store reversed
Load/store reversed (lwr/swr) are insns that endian translatethe sub-word part of the address and byteswap the data lanes.
microblaze: Tweak comment, fast cases -> common cases
microblaze: Improve unconditional direct branching
Avoid emitting conditional tcg operations for uncoditionaldirect branches.
microblaze: Use more TB chaining
For some workloads with tight loops this ~doubles the emulationspeed.
softfloat: Rename float*_is_nan() functions to float*_is_quiet_nan()
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...
target-xxx: Use fprintf_function (format checking)
fprintf_function uses format checking with GCC_FMT_ATTR.
Cc: Blue Swirl <blauwirbel@gmail.com>Signed-off-by: Stefan Weil <weil@mail.berlios.de>...
target-microblaze: Use %td for ptrdiff_t arguments in debug message
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>...
microblaze: Add support for fcmp.un
microblaze: Add basic FPU emulation
microblaze: Add definitions for FSR reg fields
microblaze: Remove unused members from the disas context
microblaze: Speed up base + index addressing mode
Speed up reg + reg addressing mode when any of the regs is r0.
microblaze: Use setcond for conditional branches
Use setcond for evaluating the condition for branches.In the future, we could do better for branches withoutdelay slots.
microblaze: Improve branch with small immediates
Slight improvements of conditional branches with smallimmediate offsets.
remove exec-all.h inclusion from cpu.h
move cpu_pc_from_tb to target-*/exec.h
remove unused stuff from */exec.h
microblaze: Make MSR_UM and MSR_VM part of the tb flags
microblaze: Update elf machine nums.
189 was allocated in upstream binutils.
0xbaab was the old temporary value. Still used by some tools and thelinux kernel.
I've seen 115 in older gdb versions, but lets ignore that one.
microblaze: remove dead assignments, spotted by clang analyzer
Value stored is never read.
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
Large page TLB flush
QEMU uses a fixed page size for the CPU TLB. If the guest uses largepages then we effectively split these into multiple smaller pages, andpopulate the corresponding TLB entries on demand.
When the guest invalidates the TLB by virtual address we must invalidate...
Target specific usermode cleanup
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 emulation
cpu_get_phys_page_debug makes no sense for userspace emulation, so remove it.
Move TARGET_PHYS_ADDR_SPACE_BITS to target-*/cpu.h.
Removes a set of ifdefs from exec.c.
Introduce TARGET_VIRT_ADDR_SPACE_BITS for all targets otherthan Alpha. This will be used for page_find_alloc, which issupposed to be using virtual addresses in the first place....
microblaze: Improve brk emulation.
brk insns while in user mode raise priv insn exceptions.This commit makes gdbserver work on linux guests.
microblaze: Dont segfault when singlestepping first insn.
kill regs_to_env and env_to_regs
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
microblaze: Print content of EAR register
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.
microblaze: Handle wdc flush and clear.
microblaze: Correct branch to registers.
microblaze: Restore env when raising unmapped bus access.
microblaze: Unbreak reset.
Initialize synthesis config registers at reset to cope with the newcpu_reset sequences.
Revert "Get rid of _t suffix"
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. Somethinglike this must be presented on the list first so people can provide input...
Get rid of _t suffix
Some not so obvious bits, slirp and Xen were left alone for the timebeing.
Signed-off-by: malc <av1474@comtv.ru>
gcc wants 1st static and then const
Signed-off-by: Juan Quintela <quintela@redhat.com>Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
Fix sys-queue.h conflict for good
Problem: Our file sys-queue.h is a copy of the BSD file, but there aresome additions and it's not entirely compatible. Because of that, there havebeen conflicts with system headers on BSD systems. Some hacks have beenintroduced in the commits 15cc9235840a22c289edbe064a9b3c19c5f49896,...
microblaze: Trap if QEMU finds an unknown insns.
If PVR settings enable illegal insn trap, trap when QEMU finds aninsn it knows nothing about.
microblaze: Correct prio between MMU and unaligned exceptions.
The microblaze gives MMU faults priority. For stores we stillhave a flaw that the value leaks to memory in the case of anunaligned exception.
microblaze: HW Exception fixes.
microblaze: Trap on illegal load/store sizes.
microblaze: Correct FPU decoding masks.
microblaze: Compute masks for alignment checks at translation time.
Thanks to Blue Swirl for reporting.Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
microblaze: Trap on bus accesses to unmapped areas.
microblaze: MMU shows more respect to synthesis config.
The microblaze MMU can be synthesized in different configurations.Have the MMU model show more respect to the chosen configuration.
microblaze: Trap on unaligned data accesses.
Untested...
microblaze: Trap on divizions by zero.
microblaze: Correct mfs into r0.
microblaze: Catch illegal insns and privilege violations.
Raise illegal instruction exceptions when executing instructions thatrequire units not available on the particulare microblaze configuration.
Also trap priviliege violations made by userspace.
microblaze: Add infrastructure for supporting hw exceptions.
microblaze: Clear exception in dslot ESR bit if not in dslot.
microblaze: Correct MMU debug log.
cleanup cpu-exec.c, part 0/N: consolidate handle_cpu_signal
handle_cpu_signal is very nearly copy-paste code for each target, with afew minor variations. This patch sets up appropriate defaults for ageneric handle_cpu_signal and provides overrides for particular targets...
Update to a hopefully more future proof FSF address
microblaze: Make writes to MMU_ZPR flush the TLB.
microblaze: Correct typo.
microblaze: Add petalogix s3a1800dsp MMU linux ref-design.
This setup was designed by petalogix and is supported by upstream linux.The design targets a xilinx spartan-3a-1800 dsp board with MMU.
microblaze: Add MMU emulation.
microblaze: Add translation routines.