sim-card
/
qemu
Archived
10
0
Fork 0
Commit Graph

52 Commits

Author SHA1 Message Date
Stefan Weil 94598c1d95 target-microblaze: Clean includes
The change in cpu.h is needed when HOST_LONG_BITS is defined in qemu-common.h.

Signed-off-by: Stefan Weil <sw@weilnetz.de>
2012-02-28 22:33:42 +01:00
Edgar E. Iglesias 9f6113c7e6 microblaze: Break the tb at memory barriers
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
2012-01-12 13:54:17 +01:00
Edgar E. Iglesias 5818dee572 microblaze: Emulate the hw stackprotector
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
2012-01-12 13:54:16 +01:00
Edgar E. Iglesias 48b5e96f0f microblaze: Add support for the clz insn
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
2012-01-12 13:54:16 +01:00
Dong Xu Wang 4abf79a428 fix spelling in target sub directory
Cc: Richard Henderson <rth@twiddle.net>
Cc: Edgar E. Iglesias <edgar.iglesias@gmail.com>
Cc: Aurelien Jarno <aurelien@aurel32.net>
Cc: Alexander Graf <agraf@suse.de>
Cc: Aurelien Jarno <aurelien@aurel32.net>
Cc: Blue Swirl <blauwirbel@gmail.com>
Signed-off-by: Dong Xu Wang <wdongxu@linux.vnet.ibm.com>
Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
2011-12-02 10:50:57 +00:00
Edgar E. Iglesias 8a84fc6bf7 microblaze: Add an MSR_PVR constant and use it.
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@petalogix.com>
2011-08-25 22:44:25 +02:00
Edgar E. Iglesias 97b833c5df microblaze: Make the MSR PVR bit non writable
Instead of hardcoding it to 1.

Signed-off-by: Edgar E. Iglesias <edgar.iglesias@petalogix.com>
2011-08-25 22:44:25 +02:00
Anthony Liguori 7267c0947d Use glib memory allocation and free functions
qemu_malloc/qemu_free no longer exist after this commit.

Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2011-08-20 23:01:08 -05:00
Peter A. G. Crosthwaite 927d721777 microblaze: Add missing call to qemu_init_vcpu.
Fixes emulation with io-thread.

Signed-off-by: Peter A. G. Crosthwaite <peter.crosthwaite@petalogix.com>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
2011-07-31 06:40:13 +02:00
Blue Swirl 2b41f10e18 Remove exec-all.h include directives
Most exec-all.h include directives are now useless, remove them.

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
2011-06-26 18:25:35 +00:00
Stefan Weil e87b7cb0f0 Remove unused function parameters from gen_pc_load and rename the function
Function gen_pc_load was introduced in commit
d2856f1ad4.
The only reason for parameter searched_pc was
a debug statement in target-i386/translate.c.

Parameter puc was needed by target-sparc until
commit d7da2a1040.

Remove searched_pc from the debug statement and remove both
parameters from the parameter list of gen_pc_load.

As the function name gen_pc_load was also misleading,
it is now called restore_state_to_opc. This new name
was suggested by Peter Maydell, thanks.

v2: Remove last parameter, too, and rename the function.

v3: Fix [] typo in target-arm/translate.c.
    Fix wrong SHA1 object name in commit message (copy+paste error).

Cc: Aurelien Jarno <aurelien@aurel32.net>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Stefan Weil <weil@mail.berlios.de>
2011-04-20 10:33:59 +02:00
Edgar E. Iglesias 6d76d23e82 microblaze: Add partial decoding of stream insns
Based on a patch from: Alejandro Cabrera <aldaya@gmail.com>

Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
2011-04-12 00:48:33 +02:00
Stefan Weil 4b4a72e556 Fix conversions from pointer to tcg_target_long
tcg_gen_exit_tb takes a parameter of type tcg_target_long,
so the type casts of pointer to long should be replaced by
type casts of pointer to tcg_target_long (suggested by Blue Swirl).

These changes are needed for build environments where
sizeof(long) != sizeof(void *), especially for w64.

Signed-off-by: Stefan Weil <weil@mail.berlios.de>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
2011-04-10 00:45:16 +02:00
Stefan Weil 4ff9786c67 Fix trivial "endianness bugs"
Replace endianess -> endianness.

Signed-off-by: Stefan Weil <weil@mail.berlios.de>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
2011-04-03 21:42:57 +02:00
Edgar E. Iglesias 6c5f738dae microblaze: Handle singlestepping over direct jmps
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@petalogix.com>
2011-02-10 00:46:09 +01:00
Edgar E. Iglesias 5d0bb8239d microblaze: cleanup helper_addkc
Remove unused addition and rename to helper_carry.

Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
2011-01-23 03:52:20 +01:00
Edgar E. Iglesias e0a42ebc08 microblaze: Improve subkc
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>
2011-01-22 12:39:16 +01:00
Edgar E. Iglesias 7e9e433008 microblaze: Fix 3rd addkc arg when rd is r0
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
2011-01-22 12:35:48 +01:00
Edgar E. Iglesias 40cbf5b709 microblaze: Improve addkc
* 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>
2011-01-22 12:02:53 +01:00
Edgar E. Iglesias 2accfb5fa6 microblaze: Remove debug leftovers.
No functional changes.

Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
2011-01-22 12:00:12 +01:00
Edgar E. Iglesias ee8b246f82 microblaze: Reorganize for future patches
No functional changes.

Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
2011-01-22 11:57:19 +01:00
Edgar E. Iglesias 9f8beb6636 microblaze: Add support for load/store reversed
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>
2011-01-19 23:18:00 +01:00
Edgar E. Iglesias 9ef5535763 microblaze: Tweak comment, fast cases -> common cases
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
2011-01-19 22:48:07 +01:00
Edgar E. Iglesias 844bab604b microblaze: Improve unconditional direct branching
Avoid emitting conditional tcg operations for uncoditional
direct branches.

Signed-off-by: Edgar E. Iglesias <edgar.iglesias@petalogix.com>
2011-01-14 12:30:26 +01:00
Edgar E. Iglesias 23979dc541 microblaze: Use more TB chaining
For some workloads with tight loops this ~doubles the emulation
speed.

Signed-off-by: Edgar E. Iglesias <edgar.iglesias@petalogix.com>
2011-01-05 02:23:09 +01:00
Stefan Weil 9a78eead0c target-xxx: Use fprintf_function (format checking)
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>
2010-10-30 08:01:59 +00:00
Stefan Weil e6aa0f11ed 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>
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
2010-10-02 13:12:21 +02:00
Edgar E. Iglesias 97694c57d7 microblaze: Add basic FPU emulation
Missing:
* fcmp.un insn
* Denormalized exceptions
* Exception model is not accurate

Signed-off-by: Edgar E. Iglesias <edgar.iglesias@petalogix.com>
2010-09-09 10:20:17 +02:00
Edgar E. Iglesias a5efa6441c microblaze: Remove unused members from the disas context
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@petalogix.com>
2010-07-25 00:09:41 +02:00
Edgar E. Iglesias 4b5ef0b50d microblaze: Speed up base + index addressing mode
Speed up reg + reg addressing mode when any of the regs is r0.

Signed-off-by: Edgar E. Iglesias <edgar.iglesias@petalogix.com>
2010-07-24 23:25:49 +02:00
Edgar E. Iglesias b2565c694a microblaze: Use setcond for conditional branches
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>
2010-07-24 21:51:51 +02:00
Edgar E. Iglesias 61204ce8ec microblaze: Improve branch with small immediates
Slight improvements of conditional branches with small
immediate offsets.

Signed-off-by: Edgar E. Iglesias <edgar.iglesias@petalogix.com>
2010-07-24 21:24:59 +02:00
Edgar E. Iglesias ff21f70afd microblaze: Improve brk emulation.
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>
2010-02-20 14:04:01 +01:00
Michal Simek 4c24aa0a69 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>
2009-12-16 12:54:26 +01:00
Edgar E. Iglesias 17c52a43b4 microblaze: Update debug logs.
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
2009-12-16 12:52:56 +01:00
Edgar E. Iglesias f062a3c793 microblaze: Handle wdc flush and clear.
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
2009-12-13 09:10:08 +01:00
Paul Hartke 9d2dcce9a3 microblaze: Correct branch to registers.
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
2009-12-13 03:22:24 +01:00
Edgar E. Iglesias 4898427ec8 microblaze: Unbreak reset.
Initialize synthesis config registers at reset to cope with the new
cpu_reset sequences.

Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
2009-11-12 02:12:44 +01:00
Juan Quintela 3897293825 gcc wants 1st static and then const
Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
2009-09-25 19:52:06 +00:00
Blue Swirl 72cf2d4f0e Fix sys-queue.h conflict for good
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 15cc923584,
f40d753718,
96555a96d7 and
3990d09adf 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>
2009-09-12 07:36:22 +00:00
Edgar E. Iglesias 02b33596d0 microblaze: Trap if QEMU finds an unknown insns.
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>
2009-09-11 10:38:31 +02:00
Edgar E. Iglesias a12f650781 microblaze: Correct prio between MMU and unaligned exceptions.
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>
2009-09-11 10:35:27 +02:00
Edgar E. Iglesias 97f90cbfe8 microblaze: HW Exception fixes.
* 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>
2009-09-11 10:27:38 +02:00
Edgar E. Iglesias 0187688f32 microblaze: Trap on illegal load/store sizes.
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
2009-09-04 10:38:59 +02:00
Edgar E. Iglesias 3aa8098843 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>
2009-09-03 22:28:21 +02:00
Edgar E. Iglesias 3c50a71fc9 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.

Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
2009-09-03 13:04:02 +02:00
Edgar E. Iglesias 968a40f6fa microblaze: Trap on unaligned data accesses.
Untested...

Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
2009-09-03 12:59:46 +02:00
Edgar E. Iglesias 821ebb33e4 microblaze: Trap on divizions by zero.
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
2009-09-03 12:52:01 +02:00
Edgar E. Iglesias ee7dbcf834 microblaze: Correct mfs into r0.
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
2009-09-03 11:18:55 +02:00
Edgar E. Iglesias 1567a00568 microblaze: Catch illegal insns and privilege violations.
Raise illegal instruction exceptions when executing instructions that
require units not available on the particulare microblaze configuration.

Also trap priviliege violations made by userspace.

Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
2009-09-03 11:12:30 +02:00