Statistics
| Branch: | Revision:

root / target-cris / helper.c @ feature-archipelago

History | View | Annotate | Download (7.9 kB)

# Date Author Comment
d66433ff 02/03/2014 04:03 pm Edgar E. Iglesias

cris: Abort when a v10 takes interrupts while in a delayslot

This is an internal error as the CRISv10 should mask interrupts
while executing delay slots. Bail out sooner rather than later.

Signed-off-by: Edgar E. Iglesias <>

00b941e5 07/23/2013 03:41 am Andreas Färber

cpu: Turn cpu_get_phys_page_debug() into a CPUClass hook

Change breakpoint_invalidate() argument to CPUState alongside.

Since all targets now assign a softmmu-only field, we can drop helpers
cpu_class_set_{do_unassigned_access,vmsd}() and device_class_set_vmsd()....

878096ee 06/28/2013 02:25 pm Andreas Färber

cpu: Turn cpu_dump_{state,statistics}() into CPUState hooks

Make cpustats monitor command available unconditionally.

Prepares for changing kvm_handle_internal_error() and kvm_cpu_exec()
arguments to CPUState.

Signed-off-by: Andreas Färber <>

b21bfeea 04/16/2013 03:45 am Andreas Färber

target-cris: Override do_interrupt for pre-v32 CPU cores

Instead of forwarding from cris_cpu_do_interrupt() to do_interruptv10(),
override CPUClass::do_interrupt with crisv10_cpu_do_interrupt() in the
newly introduced class_init functions.

Acked-by: Edgar E. Iglesias <>...

259186a7 03/12/2013 11:35 am Andreas Färber

cpu: Move halted and interrupt_request fields to CPUState

Both fields are used in VMState, thus need to be moved together.
Explicitly zero them on reset since they were located before
breakpoints.

Pass PowerPCCPU to kvmppc_handle_halt().

Signed-off-by: Andreas Färber <>

97a8ea5a 03/12/2013 11:35 am Andreas Färber

cpu: Replace do_interrupt() by CPUClass::do_interrupt method

This removes a global per-target function and thus takes us one step
closer to compiling multiple targets into one executable.

It will also allow to override the interrupt handling for certain CPU...

21317bc2 03/12/2013 11:35 am Andreas Färber

target-cris/helper.c: Update Coding Style

Reindent, add missing braces and drop/adjust whitespace.

Prepares for CPUArchState-to-CPUState field movements in
cpu_cris_handle_mmu_fault(), do_interruptv10() and do_interrupt().
The remaining functions were so minor that they can be fixed in one go....

3f668b6c 01/24/2013 12:28 pm Andreas Färber

target-cris: Fix typo in D_LOG() macro

It's VA_ARGS. Fixes the build with CRIS_[OP_]HELPER_DEBUG defined.

Broken since r6338 / 93fcfe39a0383377e647b821c9f165fd927cd4e0 (Convert
references to logfile/loglevel to use qemu_log*() macros).

Cc: Eduardo Habkost <>...

1de7afc9 12/19/2012 09:32 am Paolo Bonzini

misc: move include files to include/qemu/

Signed-off-by: Paolo Bonzini <>

a8170e5e 10/23/2012 04:58 pm Avi Kivity

Rename target_phys_addr_t to hwaddr

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,...

cf7e0c80 09/15/2012 08:44 pm Aurelien Jarno

target-cris: Switch to AREG0 free mode

Add an explicit CPUCRISState parameter instead of relying on AREG0, and
use cpu_ld* in translation and interrupt handling. Remove AREG0 swapping
in tlb_fill(). Switch to AREG0 free mode

Signed-off-by: Blue Swirl <>...

8219314b 06/15/2012 02:21 pm Lars Persson

cris: Fix NMI-flag handling on crisv10.

- The M-flag is encoded in different bits on cris v10 and cris v32.

Signed-off-by: Lars Persson <>
Signed-off-by: Edgar E. Iglesias <>

f756c7a7 06/14/2012 04:29 pm Edgar E. Iglesias

cris: Add break support for v10.

Still no retb

Signed-off-by: Edgar E. Iglesias <>

a1170bfd 03/14/2012 11:20 pm Andreas Färber

target-cris: Don't overuse CPUState

Scripted conversion:
sed -i "s/CPUState/CPUCRISState/g" target-cris/*.[hc]
sed -i "s/#define CPUCRISState/#define CPUState/" target-cris/cpu.h

Signed-off-by: Andreas Färber <>
Acked-by: Anthony Liguori <>

7ad757b2 02/28/2012 11:33 pm Stefan Weil

target-cris: Clean includes

The change in cpu.h is needed when HOST_LONG_BITS is defined in qemu-common.h.

Cc: Edgar E. Iglesias <>
Signed-off-by: Stefan Weil <>

774d5c5b 12/12/2011 12:38 pm Stefan Sandstrom

cris: Handle conditional stores on CRISv10

Signed-off-by: Stefan Sandstrom <>
Signed-off-by: Edgar E. Iglesias <>

97b348e7 08/07/2011 12:32 pm Blue Swirl

Remove unused is_softmmu parameter from cpu_handle_mmu_fault

Parameter is_softmmu (and its evil mutant twin brother is_softmuu)
is not used in cpu_*_handle_mmu_fault() functions, remove them
and adjust callers.

Acked-by: Richard Henderson <>...

2b41f10e 06/26/2011 09:25 pm Blue Swirl

Remove exec-all.h include directives

Most exec-all.h include directives are now useless, remove them.

Signed-off-by: Blue Swirl <>

58aebb94 09/18/2010 01:34 pm Edgar E. Iglesias

cris: Fix TLB exec bit protection

Signed-off-by: Edgar E. Iglesias <>

abdfd950 09/16/2010 04:40 pm Edgar E. Iglesias

cris: Avoid spurios hw_abort on recursive bus faults

Signed-off-by: Edgar E. Iglesias <>

9f5a1fae 07/05/2010 12:39 pm Edgar E. Iglesias

cris: Avoid debug clobbering for both I & D MMU state.

Signed-off-by: Edgar E. Iglesias <>

3c4fe427 07/05/2010 11:24 am Edgar E. Iglesias

cris: Dont clobber the MMU state across calls to cpu_get_phys_page_debug.

Signed-off-by: Edgar E. Iglesias <>

43dc2a64 03/18/2010 08:41 pm Blue Swirl

Replace assert(0) with abort() or cpu_abort()

When building with -DNDEBUG, assert(0) will not stop execution
so it must not be used for abnormal termination.

Use cpu_abort() when in CPU context, abort() otherwise.

Signed-off-by: Blue Swirl <>

d4c430a8 03/17/2010 04:44 am Paul Brook

Large page TLB flush

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...

4fcc562b 03/12/2010 08:34 pm Paul Brook

Remove cpu_get_phys_page_debug from userspace emulation

cpu_get_phys_page_debug makes no sense for userspace emulation, so remove it.

Signed-off-by: Paul Brook <>

7a977356 02/15/2010 12:47 pm Edgar E. Iglesias

cris: Add v10 style interrupts.

Signed-off-by: Edgar E. Iglesias <>

218951ef 10/10/2009 06:34 pm Edgar E. Iglesias

CRIS: Segmented addressing only for kernel mode.

Segmented translation through the CRIS MMU is only done for
accesses in kernel mode. In user-mode, all accesses are treated
as paged regardless of the mode config in RW_MM_CFG.

Signed-off-by: Edgar E. Iglesias <>

be9f2ded 10/08/2009 01:07 pm Edgar E. Iglesias

CRIS: Update PR_EDA on TLB faults.

Signed-off-by: Edgar E. Iglesias <>

c227f099 10/02/2009 12:12 am Anthony Liguori

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. Something
like this must be presented on the list first so people can provide input...

99a0949b 10/01/2009 09:45 pm malc

Get rid of _t suffix

Some not so obvious bits, slirp and Xen were left alone for the time
being.

Signed-off-by: malc <>

8167ee88 07/16/2009 11:47 pm Blue Swirl

Update to a hopefully more future proof FSF address

Signed-off-by: Blue Swirl <>

2fa73ec8 04/25/2009 04:51 pm Edgar E. Iglesias

CRIS: cris_mmu_result_t -> cris_mmu_result

Signed-off-by: Edgar E. Iglesias <>

93fcfe39 01/16/2009 12:34 am aliguori

Convert references to logfile/loglevel to use qemu_log*() macros

This is a large patch that changes all occurrences of logfile/loglevel
global variables to use the new qemu_log*() macros.

Signed-off-by: Eduardo Habkost <>
Signed-off-by: Anthony Liguori <>...

d12d51d5 01/15/2009 11:48 pm aliguori

Clean up debugging code #ifdefs (Eduardo Habkost)

Use macros to avoid #ifdefs on debugging code.

This patch doesn't try to merge logging macros from different files,
but just unify the debugging code #ifdefs onto a macro on each file. A
further cleanup can unify the debugging macros on a common header, later...

fad6cb1a 01/05/2009 12:05 am aurel32

Update FSF address in GPL/LGPL boilerplate

The attached patch updates the FSF address in the GPL/LGPL boilerplate
in most GPL/LGPLed files, and also in COPYING.LIB.

Signed-off-by: Stuart Brady <>
Signed-off-by: Aurelien Jarno <>...

cddffe37 10/08/2008 05:22 pm edgar_igl

CRIS: Partial EXS reg support and fixes for SPC.

  • Add partial support for the EXS (exception status) register.
  • Update SPC after each singlestep exception.
  • Remove special treatment of break 8.

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5448 c046a42c-6fe2-441c-8c8c-71466251a162

a1aebcb8 10/08/2008 01:48 am edgar_igl

CRIS: Fix brk 8 and add S-flag emulation.

  • break 8 sets ERP to the current insn.
  • First shot at S flag single-stepping.
  • Make it easier to use the local disasm.

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5445 c046a42c-6fe2-441c-8c8c-71466251a162

980f8a0b 09/05/2008 08:17 pm edgar_igl

CRIS: Mask off the cache selection bit after MMU translations.

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5170 c046a42c-6fe2-441c-8c8c-71466251a162

7d5099d5 09/03/2008 05:30 pm edgar_igl

CRIS: Remove redundant code.

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5145 c046a42c-6fe2-441c-8c8c-71466251a162

1b1a38b0 06/10/2008 02:18 am edgar_igl

CRIS: Emulate NMIs.

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4719 c046a42c-6fe2-441c-8c8c-71466251a162

30abcfc7 05/28/2008 12:10 am edgar_igl

CRIS: Restructure the translator to allow for better code generation.

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4594 c046a42c-6fe2-441c-8c8c-71466251a162

cf1d97f0 05/13/2008 01:59 pm edgar_igl CRIS: Improve TLB management and handle delayslots at page boundaries.
  • Dont flush the entire qemu tlb when the $pid changes. Instead we go through
    the guests TLB and choose entries that need to be flushed.
  • Add env->dslot and handle delayslots at pageboundaries....
ef29a70d 05/06/2008 11:04 am edgar_igl CRIS MMU Updates
  • Add support for exec faults and for the k protection bit.
  • Abort if search_pc causes recursive mmu faults.

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4349 c046a42c-6fe2-441c-8c8c-71466251a162

b41f7df0 05/03/2008 01:16 am edgar_igl CRIS updates:
  • Support both the I and D MMUs and improve the accuracy of the MMU model.
  • Handle the automatic user/kernel stack pointer switching when leaving or entering user mode.
  • Move the CCS evaluation into helper funcs.
  • Make sure user-mode cannot change flags only writeable in kernel mode....
e62b5b13 03/14/2008 03:04 am edgar_igl
  • Add a model of the ETRAX interrupt controller.
  • Clean up the interrupt handling a bit.
  • Connect some NOR flash to the test board.

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4055 c046a42c-6fe2-441c-8c8c-71466251a162

bbaf29c7 03/01/2008 07:25 pm edgar_igl
  • target-cris/op.c: Make sure the bit-test insn only updates the XNZ flags.
  • target-cris/helper.c: Update ERP for user-mode simulation aswell.
  • hw/etraxfs_timer.c: Support multiple timers.
  • hw/etraxfs_ser.c: Multiple ports, the data just goes to stdout....
9004627f 02/28/2008 10:28 am edgar_igl

More consistent naming for CRIS register-number macros.

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3996 c046a42c-6fe2-441c-8c8c-71466251a162

941db528 10/28/2007 03:44 am ths

Use the shiny new clz helpers.

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3464 c046a42c-6fe2-441c-8c8c-71466251a162

6ebbf390 10/14/2007 10:07 am j_mayer

Replace is_user variable with mmu_idx in softmmu core,
allowing support of more than 2 mmu access modes.
Add backward compatibility is_user variable in targets code when needed.
Implement per target cpu_mmu_index function, avoiding duplicated code
and #ifdef TARGET_xxx in softmmu core functions....

81fdc5f8 10/08/2007 04:04 pm ths

The remainder of CRIS CPU emulation files, by Edgar E. Iglesias.

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3361 c046a42c-6fe2-441c-8c8c-71466251a162