Statistics
| Branch: | Revision:

root / target-mips / helper.h @ feature-archipelago

History | View | Annotate | Download (27.4 kB)

# Date Author Comment
736d120a 02/10/2014 05:46 pm Petar Jovanovic

target-mips: add user-mode FR switch support for MIPS32r5

Description of UFR feature:

Required in MIPS32r5 if floating point is implemented and user-mode FR
switching is supported. The UFR register allows user-mode to clear StatusFR
by executing a CTC1 to UFR with GPR0 as input, and read StatusFR by...

b4dd99a3 02/10/2014 05:46 pm Petar Jovanovic

target-mips: add support for CP0_Config5

Add CP0_Config5, define rw_bitmask and enable modifications.

Signed-off-by: Petar Jovanovic <>
Reviewed-by: Eric Johnson <>

b4160af1 02/10/2014 05:46 pm Petar Jovanovic

target-mips: add support for CP0_Config4

Add CP0_Config4, define rw_bitmask.

Signed-off-by: Petar Jovanovic <>
Reviewed-by: Eric Johnson <>

f5daeec4 10/10/2013 09:43 pm Richard Henderson

tcg: Remove stray semi-colons from target-*/helper.h

During GEN_HELPER=1, these are actually stray top-level semi-colons
which are technically invalid ISO C, but GCC accepts as an extension.
If we added enough extension markers that we could dare use...

ce1dd5d1 02/23/2013 07:25 pm Richard Henderson

target-mips: Use mul[us]2 in [D]MULT[U] insns

Cc: Aurelien Jarno <>
Signed-off-by: Richard Henderson <>
Signed-off-by: Blue Swirl <>

df6126a7 02/01/2013 12:30 am Aurelien Jarno

target-mips: implement DSP (d)append sub-class with TCG

DSP instruction from the (d)append sub-class can be implemented with
TCG. Use a different function for these instructions are they are quite
different from compare-pick sub-class.

Fix BALIGN instruction for negative value, where the value should be...

022c62cb 12/19/2012 09:31 am Paolo Bonzini

exec: move include files to include/exec/

Signed-off-by: Paolo Bonzini <>

fc40787a 10/31/2012 11:20 pm Aurelien Jarno

target-mips: implement unaligned loads using TCG

Load/store from helpers should be avoided as they are quite
inefficient. Rewrite unaligned loads instructions using TCG and
aligned loads. The number of actual loads operations to implement
an unaligned load instruction is reduced from up to 8 to 1....

b3d6cd44 10/31/2012 11:20 pm Aurelien Jarno

target-mips: use the softfloat floatXX_muladd functions

Use the new softfloat floatXX_muladd() functions to implement the madd,
msub, nmadd and nmsub instructions. At the same time replace the name of
the helpers by the name of the instruction, as the only reason for the...

b53371ed 10/31/2012 10:37 pm Jia Liu

target-mips: Add ASE DSP accumulator instructions

Add MIPS ASE DSP Accumulator and DSPControl Access instructions.

Signed-off-by: Jia Liu <>
Signed-off-by: Aurelien Jarno <>

26690560 10/31/2012 10:37 pm Jia Liu

target-mips: Add ASE DSP compare-pick instructions

Add MIPS ASE DSP Compare-Pick instructions.

Signed-off-by: Jia Liu <>
Signed-off-by: Aurelien Jarno <>

a22260ae 10/31/2012 10:37 pm Jia Liu

target-mips: Add ASE DSP multiply instructions

Add MIPS ASE DSP Multiply instructions.

Signed-off-by: Jia Liu <>
Signed-off-by: Aurelien Jarno <>

1cb6686c 10/31/2012 10:37 pm Jia Liu

target-mips: Add ASE DSP bit/manipulation instructions

Add MIPS ASE DSP Bit/Manipulation instructions.

Signed-off-by: Jia Liu <>
Signed-off-by: Aurelien Jarno <>

77c5fa8b 10/31/2012 10:37 pm Jia Liu

target-mips: Add ASE DSP GPR-based shift instructions

Add MIPS ASE DSP GPR-Based Shift instructions.

Signed-off-by: Jia Liu <>
Signed-off-by: Aurelien Jarno <>

461c08df 10/31/2012 10:37 pm Jia Liu

target-mips: Add ASE DSP arithmetic instructions

Add MIPS ASE DSP Arithmetic instructions.

Signed-off-by: Jia Liu <>
Signed-off-by: Aurelien Jarno <>

95bf787e 10/28/2012 03:54 pm Aurelien Jarno

target-mips: rename helper flags

Rename helper flags to the new ones. This is purely a mechanical change,
it's possible to use better flags by looking at the helpers.

Reviewed-by: Richard Henderson <>
Signed-off-by: Aurelien Jarno <>

bd277fa1 09/19/2012 10:40 pm Richard Henderson

target-mips: Implement Loongson Multimedia Instructions

Implements all of the COP2 instructions except for the S<cond>
family of comparisons. The documentation is unclear for those.

Signed-off-by: Richard Henderson <>
Signed-off-by: Aurelien Jarno <>

895c2d04 09/15/2012 08:51 pm Blue Swirl

target-mips: switch to AREG0 free mode

Add an explicit CPUState parameter instead of relying on AREG0
and switch to AREG0 free mode.

Signed-off-by: Blue Swirl <>
Acked-by: Aurelien Jarno <>

59821ae8 03/24/2012 03:02 pm Stefan Weil

target-mips: Add compiler attribute to some functions which don't return

helper_raise_exception_err does not return, nor do helper_raise_exception
and do_unaligned_access.

Cc: Aurelien Jarno <>
Signed-off-by: Stefan Weil <>...

5a25ce94 09/06/2011 12:09 pm Edgar E. Iglesias

mips: Hook in more reg accesses via mttr/mftr

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

9ed5726c 12/22/2010 12:14 pm Nathan Froyd

target-mips: fix translation of MT instructions

The translation of dmt/emt/dvpe/evpe was doing the moral equivalent of:

int x;
... /* no initialization of x */
x = f (x);

which confused later bits of TCG rather badly, leading to crashes.

Fix the helpers to only return results (those instructions have no...

5dc5d9f0 07/25/2010 05:54 pm Aurelien Jarno

mips: more fixes to the MIPS interrupt glue logic

Commit 36388314febad3d7675ab919287f03733a560ff6 moved most of the
interrupt logic to cpu-exec.c. Remove the remaining useless code
and fix software interrupts.

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

3c824109 06/09/2010 05:10 pm Nathan Froyd

target-mips: microMIPS ASE support

Add instruction decoding for the microMIPS ASE. All we do is decode and
then forward to the existing gen_* routines.

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

e7139c44 11/30/2009 05:18 pm Aurelien Jarno

target-mips: use physical address in lladdr

Currently the ll/sc instructions use the virtual address in both
user and system mode. Use the physical address insteead in system
mode.

Signed-off-by: Aurelien Jarno <>

2a6e32dd 11/22/2009 03:12 pm Aurelien Jarno

target-mips: make CP0_LLAddr register CPU dependent

Depending on the CPU, CP0_LLAddr is either read-only or read-write,
and the returned value can be shifted by a variable amount of bits.

Signed-off-by: Aurelien Jarno <>
Signed-off-by: Hervé Poussineau <>

e7a6965b 04/06/2009 03:34 pm aurel32

target-mips: use the TCG_CALL_PURE and TCG_CALL_CONST for some helpers

Signed-off-by: Aurelien Jarno <>

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

c01fccd2 03/08/2009 02:06 am aurel32

target-mips: rename helpers from do_ to helper_

Signed-off-by: Aurelien Jarno <>

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

a7812ae4 11/17/2008 04:43 pm pbrook

TCG variable type checking.

Signed-off-by: Paul Brook <>

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

49bcf33c 11/11/2008 01:47 pm aurel32

target-mips: convert bit shuffle ops to TCG

Bit shuffle operations can be written with very few TCG instructions
(between 5 and 8), so it is worth converting them to TCG.

This code also move all bit shuffle generation code to a separate
function in order to have a cleaner exception code path, that is it...

505ad7c2 11/11/2008 01:46 pm aurel32

target-mips: convert bitfield ops to TCG

Bitfield operations can be written with very few TCG instructions
(between 2 and 5), so it is worth converting them to TCG.

Signed-off-by: Aurelien Jarno <>

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

add69063 11/11/2008 01:34 pm aurel32

target-mips: fix mft* helpers/call

This patch attempts to fix mft* helpers and the associated TCG calls.
mft* helpers do not take a register in argument, however:
- some helpers are called with an argument while they do not take one.
- some helpers are declared with an argument they don't use....

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

b6d96bed 07/09/2008 02:05 pm ths

Use temporary registers for the MIPS FPU emulation.

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

d26968ec 06/29/2008 05:53 pm ths

Remove unnecessary helper arguments, and fix some typos.

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

2796188e 06/27/2008 01:03 pm ths

Avoid unused input arguments which triggered tcg errors. Spotted by
Stefan Weil.

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

1a3fd9c3 06/25/2008 12:58 am ths

Remove remaining uses of T0 in the MIPS target.

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

6c5c1e20 06/24/2008 06:12 pm ths

Use temporaries instead of fixed registers for some instructions.

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

be24bb4f 06/23/2008 03:57 pm ths

Pass T0/T1 explicitly to helper functions, and clean up a few dyngen
leftovers.

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

c8c2227e 06/20/2008 06:12 pm ths

Convert unaligned load/store to TCG.

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

92af06d2 06/20/2008 05:35 pm ths

Convert vr54xx multiply instructions to TCG.

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

a16336e4 06/19/2008 09:35 pm ths

Convert remaining MIPS FP instructions to TCG.

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

214c465f 06/12/2008 03:43 pm ths

Switch the standard multiplication instructions to TCG.

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

2b0233ab 06/12/2008 03:42 pm ths

Switch bitfield instructions and assorted special ops to TCG.

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

08ba7963 06/12/2008 06:15 am ths

TCGify a few more instructions.

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

5d0fc900 06/11/2008 06:27 pm ths

Call most FP helpers without deroute through op.c

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

f1aa6320 06/09/2008 10:13 am ths

Switch remaining CP0 instructions to TCG or helper functions.

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

7dd9e556 06/08/2008 10:42 am ths

Register helper functions.

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

30898801 05/21/2008 05:04 am ths

Switch MIPS clo/clz and the condition tests to TCG.

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

4eecc06e 05/19/2008 02:39 am ths

Add file left out from previous commit.

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