Statistics
| Branch: | Revision:

root / target-mips / helper.c @ 9a78eead

History | View | Annotate | Download (22.1 kB)

# Date Author Comment
138afb02 08/06/2010 01:21 pm Edgar E. Iglesias

mips: Add support for VInt and VEIC irq modes

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

3fc00a7b 07/17/2010 05:13 pm Aurelien Jarno

target-mips: fix xtlb exception for loongson

Loongson 2E and 2F use the same entry for xtlb and tlb exception, at
offset 0x000.

Signed-off-by: Aurelien Jarno <>

bbfa8f72 06/09/2010 05:10 pm Nathan Froyd

target-mips: add microMIPS exception handler support

Unlike MIPS16, microMIPS lets you choose the ISA mode for your exception
handlers. The ISA mode is selectable via a user-writable CP0.Config3
flag.

Signed-off-by: Nathan Froyd <>...

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

3c7b48b7 03/12/2010 08:44 pm Paul Brook

Target specific usermode cleanup

Disable various target specific code that is only relevant to system emulation.

Signed-off-by: Paul Brook <>

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

c36bbb28 02/06/2010 06:23 pm Aurelien Jarno

target-mips: don't call cpu_loop_exit() from helper.c

In helper.c AREG0 may not correspond do env, so it's not possible to
call cpu_loop_exit() here. Call it from op_helper.c instead.

Signed-off-by: Aurelien Jarno <>

32188a03 12/13/2009 09:20 pm Nathan Froyd

target-mips: change interrupt bits to be mips16-aware

We need to stash the operating mode into the low bit of the error PC and
restore it on return from interrupts.

Signed-off-by: Nathan Froyd <>
Signed-off-by: Aurelien Jarno <>

25b91e32 11/30/2009 05:10 pm Aurelien Jarno

target-mips: add a function to do virtual -> physical translations

Signed-off-by: Aurelien Jarno <>

1147e189 11/30/2009 05:10 pm Aurelien Jarno

target-mips: split code raising MMU exception in a separate function

Signed-off-by: Aurelien Jarno <>

60c9af07 11/22/2009 03:37 pm Aurelien Jarno

target-mips: fix physical address type in MMU functions

Signed-off-by: Aurelien Jarno <>

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

58caed6d 09/30/2009 09:45 pm Michael S. Tsirkin

target-mips: unmatched brackets in if 0

Fix unmatched braket in commented out code

Signed-off-by: Michael S. Tsirkin <>
Signed-off-by: Blue Swirl <>

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

Update to a hopefully more future proof FSF address

Signed-off-by: Blue Swirl <>

55616505 05/13/2009 10:54 pm Paul Brook

Include assert.h from qemu-common.h

Include assert.h from qemu-common.h and remove other direct uses.
cpu-all.h still need to include it because of the dyngen-exec.h hacks

Signed-off-by: Paul Brook <>

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

6958549d 01/14/2009 09:40 pm aurel32

target-mips: fix indentation

Remove all tabs from target-mips/*

Signed-off-by: Aurelien Jarno <>

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

932e71cd 01/12/2009 11:33 pm aurel32

target-mips: get rid of tests on env->user_mode_only

Replace runtime checks on env->user_mode_only by compile time
checks on CONFIG_USER_ONLY.

Signed-off-by: Aurelien Jarno <>

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

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

f9480ffc 12/20/2008 09:42 pm ths

Fix remaining compiler warnings for mips targets.

Signed-off-by: Stefan Weil <>

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

9c67ef0c 09/22/2008 12:21 am ths

Fix Xcontext fill, by Here Poussineau.

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

0eaef5aa 07/23/2008 07:14 pm ths

Less hardcoding of TARGET_USER_ONLY.

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

b5dc7732 06/27/2008 01:02 pm ths

More efficient target register / TC accesses.

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

53715e48 03/29/2008 11:43 pm ths

Fix infinite loop when invalidating TLB, by Herve Poussineau.

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

b67bfe8d 01/04/2008 07:52 pm ths

Handle some more exception types.

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

9a5d878f 01/03/2008 11:26 pm ths

Fix exception debug output.

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

14e51cc7 12/26/2007 09:34 pm ths

De-cruft exception definitions, and implement nicer debug output.

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

6d35524c 12/25/2007 05:13 am ths

Improved PABITS handling, and config register fixes.

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

67d6abff 11/22/2007 02:34 am ths

Fix off-by-one address checks in MIPS64 MMU, by Aurelien Jarno.

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

d26bc211 11/08/2007 08:05 pm ths

Clean out the N32 macros from target-mips, and introduce MIPS ABI specific
defines for linux-user.

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

6276c767 10/29/2007 04:57 am ths

Fix logic bug which broke TLBL/TLBS handling somewhat.

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

623a930e 10/28/2007 09:45 pm ths

Implement missing MIPS supervisor mode bits.

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3472 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....

89fc88da 10/13/2007 08:29 pm ths

Fix off-by-one in address check.

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

540635ba 09/30/2007 04:58 am ths

Code provision for n32/n64 mips userland emulation. Not functional yet.

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

671880e6 09/29/2007 10:21 pm ths

Supervisor mode implementation, by Aurelien Jarno.

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

08fa4bab 09/27/2007 02:52 am ths

hflags computation cleanup, by Aurelien Jarno.

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

387a8fe5 09/25/2007 05:49 pm ths

Optimise instructions accessing CP0, by Aurelien Jarno.

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

e189e748 09/24/2007 03:48 pm ths

Per-CPU instruction decoding implementation, by Aurelien Jarno.

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

3b46e624 09/17/2007 11:09 am ths

find -type f | xargs sed -i 's/[\t ]*$//g' # Yes, again. Note the star in the regex.

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

5fafdf24 09/17/2007 12:08 am ths

find -type f | xargs sed -i 's/[\t ]$//g' # on most files

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

ead9360e 09/06/2007 03:18 am ths

Partial support for 34K multithreading, not functional yet.

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

3ddf0b5c 08/26/2007 08:37 pm ths

Disable 64-bit instructions on 32-bit CPU, by Aurelien Jarno.

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

996ba2cc 06/25/2007 08:34 pm ths

MIPS64 improvements, based on a patch by Aurelien Jarno.

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

e034e2c3 06/23/2007 09:04 pm ths

Handle MIPS64 SEGBITS value correctly.

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

6e473128 05/28/2007 11:36 pm ths

Handle PX/UX status flags correctly, by Aurelien Jarno.

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

fd88b6ab 05/23/2007 11:24 am ths

The 24k wants more watch and srsmap registers.

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

100ce988 05/13/2007 10:22 pm ths

Full MIPS64 MMU implementation, by Aurelien Jarno.

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

f2e9ebef 05/13/2007 05:07 pm ths

MMU code improvements, by Aurelien Jarno.

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

29929e34 05/13/2007 04:49 pm ths

MIPS TLB style selection at runtime, by Herve Poussineau.

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

b4ab4b4e 05/09/2007 12:34 pm ths

Preliminary MIPS 64-bit MMU implementation, by Aurelien Jarno.

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

5a5012ec 05/07/2007 04:55 pm ths

MIPS 64-bit FPU support, plus some collateral bugfixes in the
conditional branch handling.

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

0a6de750 05/07/2007 03:46 pm ths

Clear BD slot on next exception if appropriate.

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

e58c8ba5 04/13/2007 11:17 pm ths

Another fix for CP0 Cause register handling.

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

9b3c35e0 04/07/2007 02:21 pm j_mayer

cpu_get_phys_page_debug should return target_phys_addr_t
instead of target_ulong to be consistent.

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

beb811bd 04/06/2007 10:31 pm ths

Fix handling of ADES exceptions.

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

c53f4a62 04/06/2007 02:21 am ths

fix branch delay slot cornercases.

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

acd858d9 04/06/2007 02:18 am ths

Handle EBase properly.

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

5efbfedd 03/30/2007 08:48 pm ths

Squash logic bugs while they are fresh...

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

24c7b0e3 03/30/2007 07:44 pm ths

Sanitize mips exception handling.

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

39d51eb8 03/18/2007 02:43 pm ths

Fix BD flag handling, cause register contents, implement some more bits
for R2 interrupt handling.

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

3594c774 02/21/2007 01:37 am ths

Replace TLSZ with TARGET_FMT_lx.

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

925fd0f2 02/18/2007 02:19 am ths

Fix sign-extension of VPN field in TLB, by Herve Poussineau.

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

3b1c8be4 01/22/2007 10:50 pm ths

Fix PageMask handling, second part.

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

bc814401 01/21/2007 05:12 am ths

Bring TLB / PageSize handling in line with real hardware behaviour.

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

2ee4aed8 01/03/2007 05:18 pm bellard

moved invalidate_tlb() to helper.c as a work around for gcc 3.2.2 bug - suppressed invalid tb_invalidate_page_range() calls

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

5dc4b744 12/21/2006 03:48 pm ths

Scrap SIGN_EXTEND32.

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

c570fd16 12/21/2006 03:19 am ths

Preliminiary MIPS64 support, disabled by default due to performance impact.

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

ca7c2b1b 12/11/2006 12:08 am ths

Handle invalid accesses as SIGILL for mips/mipsel userland emulation.

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

aa328add 12/07/2006 06:22 pm ths

Fix reset handling, CP0 isn't enabled by default (a fact which doesn't
matter when running in kernel space).

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

7a387fff 12/06/2006 10:17 pm ths

Add MIPS32R2 instructions, and generally straighten out the instruction
decoding. This is also the first percent towards MIPS64 support.

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

814b9a47 12/06/2006 07:42 pm ths

MIPS TLB performance improvements, by Daniel Jacobowitz.

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

3e382bc8 06/26/2006 11:29 pm bellard

consistent update of ERL and EXL
(Dirk Behme)

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

43057ab1 06/14/2006 08:15 pm bellard

use constants for TLB handling (Thiemo Seufer)

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

ba9a74da 05/23/2006 01:14 am bellard

fix wrong bitmasks for CP0_Context and CP0_EntryHi (Thiemo Seufer)

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

3d9fb9fe 05/23/2006 01:13 am bellard

cosmetics (Thiemo Seufer)

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

9d05095e 05/23/2006 01:03 am bellard

mips cleanup (Thiemo Seufer)

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

ecd78a0a 03/11/2006 06:35 pm pbrook

Clear MIPS_HFLAG_BMASK for ErrorEPC (Thiemo Seufer).

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

98c1b82b 03/11/2006 06:20 pm pbrook

e bitfields in mips TLB structures (Thiemo Seufer).

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

4ad40f36 12/05/2005 09:59 pm bellard

MIPS fixes (Daniel Jacobowitz)

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

e37e863f 07/05/2005 01:17 am bellard

correct split between helper.c and op_helper.c - cosmetics

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

0d8aca8c 07/02/2005 06:35 pm bellard

TLB reload exception vector (Ralf Baechle)

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

85498508 07/02/2005 06:34 pm bellard

fixed c0_context in tlb exception (Ralf Baechle)

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

7a962d30 07/02/2005 06:31 pm bellard

use MIPS_TLB_NB constant (Ralf Baechle)

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

dfae6487 07/02/2005 06:12 pm bellard

remove nonsense exception code (Ralf Baechle)

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

9fb63ac2 07/02/2005 06:07 pm bellard

MIPS_USES_R4K_TLB typo

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

6af0bf9c 07/02/2005 05:58 pm bellard

MIPS target (Jocelyn Mayer)

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