All of lore.kernel.org
 help / color / mirror / Atom feed
From: Aurelien Jarno <aurelien@aurel32.net>
To: Jia Liu <proljc@gmail.com>
Cc: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH v12 00/14] QEMU MIPS ASE DSP support
Date: Wed, 31 Oct 2012 22:46:55 +0100	[thread overview]
Message-ID: <20121031214655.GD3855@ohm.aurel32.net> (raw)
In-Reply-To: <1351088234-7421-1-git-send-email-proljc@gmail.com>

On Wed, Oct 24, 2012 at 10:17:00PM +0800, Jia Liu wrote:
> This is MIPS ASE DSP instructions support for QEMU. These instructions
> are grouped according to "Chapter 4. MIPS DSP ASE Instruction Summary"
> in MIPS ASE DSP manual [1][2].
> 
> [1] MIPS32® Architecture for Programmers VolumeIV-e: The MIPS® DSP
>     Application-Specific Extension to the MIPS32®Architecture
>     http://www.mips.com/products/product-materials/processor/mips-architecture/
> 
> [2] MIPS64® Architecture for Programmers VolumeIV-e: The MIPS® DSP
>     Application-Specific Extention to the MIPS64® Architecture
>     http://www.mips.com/products/product-materials/processor/mips-architecture/
> 
> Signed-off-by: Jia Liu <proljc@gmail.com>
> ---
> 
> Version History:
> v12:
> Addressed Aurelien&Richard's review comments:
> - fix internal function mipsdsp_sat64_acc_sub_q63
> - fix gen_mipsdsp_arith
> - add more test cases
> 
> v11:
> Addressed Johnson&Aurelien's review comments:
> - change DSP r1 & r2 into microMIPS DSP r1 & r2 encodings in TODO file
> 
> Addressed Andreas's review comments:
> - change subjects
> 
> v10:
> Addressed Aurelien's review comments:
> - remove useless return in mipsdsp_sat_abs and group mipsdsp_sat_abs_* by a macro
> - using MIPSDSP_OVERFLOW to check overflow
> - fix load
> - use MIPSDSP_RETURN
> - check for v1 and v2 being 0
> - check for rs and rt being 0
> - fix bit/manipulation instructions
> - remove unnecessary arrays in compare-pick instructions
> - fix 74kf's CP0_PRid
> 
> v9:
> Addressed Aurelien's review comments:
> - group translate actions by opcode
> - group helpers using macro
> - remove unused function not_word_value
> - add absolute macro, overflow check macro, split/combine number macro
> - undo delete bposge32/64 from micromips
> - add return register 0 check
> 
> v8:
> Addressed Aurelien's review comments:
> - fix HFLAGS check, I hope it is right this time
> - make a lot of code more clean
> - fix branch instructions
> - fix load instructions, I hope it is right this time
> - fix bit instructions
> - use a macro to deal CMP
> - use 74kf instead of mips32dspr2
> 
> v7:
> Addressed Aurelien's review comments:
> - make hflags check for dsp, use check_dsp[r2]() instead of check_insn
> - directly use cpu_dspctrl as the second argument in branch instructions
> - factorizing some check_dsp() code one level
> - remove unnecessary save_cpu_state() from load instructions
> - resolve conflicts between MIPS DSP and loongson2e better
> - make repl* more clean
> 
> v6:
> Addressed Siarhei Siamashka's review comments:
> - make internal function mipsdsp_mul_u8_u16 more clean
> 
> - fix MFHI MFLO MTHI MTLO, make mips64 linux run OK
> 
> v5:
> Addressed Richard's review comments:
> - bug shooting with --enanle-debug-tcg
> 
> - add check_insn for each DSP instructions
> - MIPS64 ASE DSP support
> 
> v4:
> Addressed Richard's review comments:
> - split transalte.
> - tested on i386 machine.
> - delete all global env usage so that we don't need to include dyngen-exec.h.
> - fix DEF_HELPER_FLAGS_N error.
> - fix all ERRORS and WARNINGS found by ./scripts/checkpatch.pl.
> - make sample if() code clearer.
> - combine helper_cmpgu_cond_* and helper_cmpgdu_cond_*.
> - fix bitrev.
> - implement repl* and load with no helper.
> - using TCG_COND_GE instead of TCG_COND_GT in OPC_BPOSGE32.
> 
> Thanks WeiRen for prereviewing and lots of suggestion.
> 
> v3:
> Addressed Peter's review comments:
> - split these changes into more patches.
> - add "ULL" suffix for constants which are more than 32 bits wide.
> 
> Addressed WeiRen's review comments:
> - split these changes into 12 patches.
> - more suitable subject and description for every patch.
> 
> Addressed Richard's review comments:
> - use DEF_HELPER_FLAGS_N instead of DEF_HELPER_N in some insns.
> - put most DSP helpers into dsp_helper.c
> 
> - fix two testcases error.
> 
> v2:
> Addressed Stefan's review comments:
> - fixed coding style.
> - changed acc into unsigned int form int and no initialization in translation.
> - added return value in testcases.
> 
> v1:
> - add MIPS ASE DSP Support.
> 
> Jia Liu (14):
>   target-mips: Add ASE DSP internal functions
>   target-mips: Add ASE DSP resources access check
>   Use correct acc value to index cpu_HI/cpu_LO rather than using a fix
>     number
>   target-mips: Add ASE DSP branch instructions
>   target-mips: Add ASE DSP load instructions
>   target-mips: Add ASE DSP arithmetic instructions
>   target-mips: Add ASE DSP GPR-based shift instructions
>   target-mips: Add ASE DSP multiply instructions
>   target-mips: Add ASE DSP bit/manipulation instructions
>   target-mips: Add ASE DSP compare-pick instructions
>   target-mips: Add ASE DSP accumulator instructions
>   target-mips: Add ASE DSP processors
>   target-mips: Add ASE DSP testcases
>   target-mips: Change TODO file
> 
>  linux-user/main.c                              |    6 +
>  target-mips/Makefile.objs                      |    2 +-
>  target-mips/TODO                               |    3 +-
>  target-mips/cpu.h                              |   23 +-
>  target-mips/dsp_helper.c                       | 4033 ++++++++++++++++++++++++
>  target-mips/helper.c                           |    3 +
>  target-mips/helper.h                           |  349 ++
>  target-mips/translate.c                        | 2965 ++++++++++++++++-
>  target-mips/translate_init.c                   |   52 +
>  tests/tcg/mips/mips32-dsp/Makefile             |  136 +
>  tests/tcg/mips/mips32-dsp/absq_s_ph.c          |   31 +
>  tests/tcg/mips/mips32-dsp/absq_s_w.c           |   37 +
>  tests/tcg/mips/mips32-dsp/addq_ph.c            |   46 +
>  tests/tcg/mips/mips32-dsp/addq_s_ph.c          |   69 +
>  tests/tcg/mips/mips32-dsp/addq_s_w.c           |   44 +
>  tests/tcg/mips/mips32-dsp/addsc.c              |   33 +
>  tests/tcg/mips/mips32-dsp/addu_qb.c            |   35 +
>  tests/tcg/mips/mips32-dsp/addu_s_qb.c          |   35 +
>  tests/tcg/mips/mips32-dsp/addwc.c              |   49 +
>  tests/tcg/mips/mips32-dsp/bitrev.c             |   20 +
>  tests/tcg/mips/mips32-dsp/bposge32.c           |   44 +
>  tests/tcg/mips/mips32-dsp/cmp_eq_ph.c          |   35 +
>  tests/tcg/mips/mips32-dsp/cmp_le_ph.c          |   35 +
>  tests/tcg/mips/mips32-dsp/cmp_lt_ph.c          |   35 +
>  tests/tcg/mips/mips32-dsp/cmpgu_eq_qb.c        |   31 +
>  tests/tcg/mips/mips32-dsp/cmpgu_le_qb.c        |   31 +
>  tests/tcg/mips/mips32-dsp/cmpgu_lt_qb.c        |   31 +
>  tests/tcg/mips/mips32-dsp/cmpu_eq_qb.c         |   35 +
>  tests/tcg/mips/mips32-dsp/cmpu_le_qb.c         |   35 +
>  tests/tcg/mips/mips32-dsp/cmpu_lt_qb.c         |   35 +
>  tests/tcg/mips/mips32-dsp/dpaq_s_w_ph.c        |   31 +
>  tests/tcg/mips/mips32-dsp/dpaq_sa_l_w.c        |   77 +
>  tests/tcg/mips/mips32-dsp/dpau_h_qbl.c         |   27 +
>  tests/tcg/mips/mips32-dsp/dpau_h_qbr.c         |   27 +
>  tests/tcg/mips/mips32-dsp/dpsq_s_w_ph.c        |   45 +
>  tests/tcg/mips/mips32-dsp/dpsq_sa_l_w.c        |   55 +
>  tests/tcg/mips/mips32-dsp/dpsu_h_qbl.c         |   27 +
>  tests/tcg/mips/mips32-dsp/dpsu_h_qbr.c         |   27 +
>  tests/tcg/mips/mips32-dsp/extp.c               |   44 +
>  tests/tcg/mips/mips32-dsp/extpdp.c             |   46 +
>  tests/tcg/mips/mips32-dsp/extpdpv.c            |   47 +
>  tests/tcg/mips/mips32-dsp/extpv.c              |   45 +
>  tests/tcg/mips/mips32-dsp/extr_r_w.c           |   48 +
>  tests/tcg/mips/mips32-dsp/extr_rs_w.c          |   48 +
>  tests/tcg/mips/mips32-dsp/extr_s_h.c           |   63 +
>  tests/tcg/mips/mips32-dsp/extr_w.c             |   48 +
>  tests/tcg/mips/mips32-dsp/extrv_r_w.c          |   54 +
>  tests/tcg/mips/mips32-dsp/extrv_rs_w.c         |   52 +
>  tests/tcg/mips/mips32-dsp/extrv_s_h.c          |   71 +
>  tests/tcg/mips/mips32-dsp/extrv_w.c            |   54 +
>  tests/tcg/mips/mips32-dsp/insv.c               |   23 +
>  tests/tcg/mips/mips32-dsp/lbux.c               |   25 +
>  tests/tcg/mips/mips32-dsp/lhx.c                |   25 +
>  tests/tcg/mips/mips32-dsp/lwx.c                |   25 +
>  tests/tcg/mips/mips32-dsp/madd.c               |   31 +
>  tests/tcg/mips/mips32-dsp/maddu.c              |   31 +
>  tests/tcg/mips/mips32-dsp/main.c               |    6 +
>  tests/tcg/mips/mips32-dsp/maq_s_w_phl.c        |   55 +
>  tests/tcg/mips/mips32-dsp/maq_s_w_phr.c        |   55 +
>  tests/tcg/mips/mips32-dsp/maq_sa_w_phl.c       |   55 +
>  tests/tcg/mips/mips32-dsp/maq_sa_w_phr.c       |   55 +
>  tests/tcg/mips/mips32-dsp/mfhi.c               |   21 +
>  tests/tcg/mips/mips32-dsp/mflo.c               |   21 +
>  tests/tcg/mips/mips32-dsp/modsub.c             |   30 +
>  tests/tcg/mips/mips32-dsp/msub.c               |   30 +
>  tests/tcg/mips/mips32-dsp/msubu.c              |   30 +
>  tests/tcg/mips/mips32-dsp/mthi.c               |   21 +
>  tests/tcg/mips/mips32-dsp/mthlip.c             |   58 +
>  tests/tcg/mips/mips32-dsp/mtlo.c               |   21 +
>  tests/tcg/mips/mips32-dsp/muleq_s_w_phl.c      |   41 +
>  tests/tcg/mips/mips32-dsp/muleq_s_w_phr.c      |   40 +
>  tests/tcg/mips/mips32-dsp/muleu_s_ph_qbl.c     |   25 +
>  tests/tcg/mips/mips32-dsp/muleu_s_ph_qbr.c     |   25 +
>  tests/tcg/mips/mips32-dsp/mulq_rs_ph.c         |   25 +
>  tests/tcg/mips/mips32-dsp/mult.c               |   24 +
>  tests/tcg/mips/mips32-dsp/multu.c              |   24 +
>  tests/tcg/mips/mips32-dsp/packrl_ph.c          |   21 +
>  tests/tcg/mips/mips32-dsp/pick_ph.c            |   49 +
>  tests/tcg/mips/mips32-dsp/pick_qb.c            |   36 +
>  tests/tcg/mips/mips32-dsp/preceq_w_phl.c       |   20 +
>  tests/tcg/mips/mips32-dsp/preceq_w_phr.c       |   20 +
>  tests/tcg/mips/mips32-dsp/precequ_ph_qbl.c     |   20 +
>  tests/tcg/mips/mips32-dsp/precequ_ph_qbla.c    |   20 +
>  tests/tcg/mips/mips32-dsp/precequ_ph_qbr.c     |   20 +
>  tests/tcg/mips/mips32-dsp/precequ_ph_qbra.c    |   20 +
>  tests/tcg/mips/mips32-dsp/preceu_ph_qbl.c      |   20 +
>  tests/tcg/mips/mips32-dsp/preceu_ph_qbla.c     |   20 +
>  tests/tcg/mips/mips32-dsp/preceu_ph_qbr.c      |   20 +
>  tests/tcg/mips/mips32-dsp/preceu_ph_qbra.c     |   20 +
>  tests/tcg/mips/mips32-dsp/precrq_ph_w.c        |   21 +
>  tests/tcg/mips/mips32-dsp/precrq_qb_ph.c       |   21 +
>  tests/tcg/mips/mips32-dsp/precrq_rs_ph_w.c     |   35 +
>  tests/tcg/mips/mips32-dsp/precrqu_s_qb_ph.c    |   24 +
>  tests/tcg/mips/mips32-dsp/raddu_w_qb.c         |   20 +
>  tests/tcg/mips/mips32-dsp/rddsp.c              |   54 +
>  tests/tcg/mips/mips32-dsp/repl_ph.c            |   23 +
>  tests/tcg/mips/mips32-dsp/repl_qb.c            |   16 +
>  tests/tcg/mips/mips32-dsp/replv_ph.c           |   19 +
>  tests/tcg/mips/mips32-dsp/replv_qb.c           |   19 +
>  tests/tcg/mips/mips32-dsp/shilo.c              |   27 +
>  tests/tcg/mips/mips32-dsp/shilov.c             |   29 +
>  tests/tcg/mips/mips32-dsp/shll_ph.c            |   24 +
>  tests/tcg/mips/mips32-dsp/shll_qb.c            |   36 +
>  tests/tcg/mips/mips32-dsp/shll_s_ph.c          |   24 +
>  tests/tcg/mips/mips32-dsp/shll_s_w.c           |   52 +
>  tests/tcg/mips/mips32-dsp/shllv_ph.c           |   40 +
>  tests/tcg/mips/mips32-dsp/shllv_qb.c           |   38 +
>  tests/tcg/mips/mips32-dsp/shllv_s_ph.c         |   40 +
>  tests/tcg/mips/mips32-dsp/shllv_s_w.c          |   40 +
>  tests/tcg/mips/mips32-dsp/shra_ph.c            |   30 +
>  tests/tcg/mips/mips32-dsp/shra_r_ph.c          |   30 +
>  tests/tcg/mips/mips32-dsp/shra_r_w.c           |   30 +
>  tests/tcg/mips/mips32-dsp/shrav_ph.c           |   32 +
>  tests/tcg/mips/mips32-dsp/shrav_r_ph.c         |   32 +
>  tests/tcg/mips/mips32-dsp/shrav_r_w.c          |   32 +
>  tests/tcg/mips/mips32-dsp/shrl_qb.c            |   31 +
>  tests/tcg/mips/mips32-dsp/shrlv_qb.c           |   32 +
>  tests/tcg/mips/mips32-dsp/subq_ph.c            |   40 +
>  tests/tcg/mips/mips32-dsp/subq_s_ph.c          |   40 +
>  tests/tcg/mips/mips32-dsp/subq_s_w.c           |   58 +
>  tests/tcg/mips/mips32-dsp/subu_qb.c            |   25 +
>  tests/tcg/mips/mips32-dsp/subu_s_qb.c          |   25 +
>  tests/tcg/mips/mips32-dsp/wrdsp.c              |   54 +
>  tests/tcg/mips/mips32-dspr2/Makefile           |   71 +
>  tests/tcg/mips/mips32-dspr2/absq_s_qb.c        |   35 +
>  tests/tcg/mips/mips32-dspr2/addqh_ph.c         |   30 +
>  tests/tcg/mips/mips32-dspr2/addqh_r_ph.c       |   30 +
>  tests/tcg/mips/mips32-dspr2/addqh_r_w.c        |   34 +
>  tests/tcg/mips/mips32-dspr2/addqh_w.c          |   34 +
>  tests/tcg/mips/mips32-dspr2/addu_ph.c          |   33 +
>  tests/tcg/mips/mips32-dspr2/addu_s_ph.c        |   33 +
>  tests/tcg/mips/mips32-dspr2/adduh_qb.c         |   30 +
>  tests/tcg/mips/mips32-dspr2/adduh_r_qb.c       |   30 +
>  tests/tcg/mips/mips32-dspr2/append.c           |   30 +
>  tests/tcg/mips/mips32-dspr2/balign.c           |   30 +
>  tests/tcg/mips/mips32-dspr2/cmpgdu_eq_qb.c     |   37 +
>  tests/tcg/mips/mips32-dspr2/cmpgdu_le_qb.c     |   37 +
>  tests/tcg/mips/mips32-dspr2/cmpgdu_lt_qb.c     |   37 +
>  tests/tcg/mips/mips32-dspr2/dpa_w_ph.c         |   44 +
>  tests/tcg/mips/mips32-dspr2/dpaqx_s_w_ph.c     |   79 +
>  tests/tcg/mips/mips32-dspr2/dpaqx_sa_w_ph.c    |   53 +
>  tests/tcg/mips/mips32-dspr2/dpax_w_ph.c        |   27 +
>  tests/tcg/mips/mips32-dspr2/dps_w_ph.c         |   27 +
>  tests/tcg/mips/mips32-dspr2/dpsqx_s_w_ph.c     |   54 +
>  tests/tcg/mips/mips32-dspr2/dpsqx_sa_w_ph.c    |   53 +
>  tests/tcg/mips/mips32-dspr2/dpsx_w_ph.c        |   27 +
>  tests/tcg/mips/mips32-dspr2/mul_ph.c           |   47 +
>  tests/tcg/mips/mips32-dspr2/mul_s_ph.c         |   62 +
>  tests/tcg/mips/mips32-dspr2/mulq_rs_w.c        |   36 +
>  tests/tcg/mips/mips32-dspr2/mulq_s_ph.c        |   25 +
>  tests/tcg/mips/mips32-dspr2/mulq_s_w.c         |   36 +
>  tests/tcg/mips/mips32-dspr2/mulsa_w_ph.c       |   29 +
>  tests/tcg/mips/mips32-dspr2/mulsaq_s_w_ph.c    |   29 +
>  tests/tcg/mips/mips32-dspr2/precr_qb_ph.c      |   21 +
>  tests/tcg/mips/mips32-dspr2/precr_sra_ph_w.c   |   32 +
>  tests/tcg/mips/mips32-dspr2/precr_sra_r_ph_w.c |   32 +
>  tests/tcg/mips/mips32-dspr2/prepend.c          |   30 +
>  tests/tcg/mips/mips32-dspr2/shra_qb.c          |   30 +
>  tests/tcg/mips/mips32-dspr2/shra_r_qb.c        |   30 +
>  tests/tcg/mips/mips32-dspr2/shrav_qb.c         |   32 +
>  tests/tcg/mips/mips32-dspr2/shrav_r_qb.c       |   32 +
>  tests/tcg/mips/mips32-dspr2/shrl_ph.c          |   20 +
>  tests/tcg/mips/mips32-dspr2/shrlv_ph.c         |   21 +
>  tests/tcg/mips/mips32-dspr2/subqh_ph.c         |   21 +
>  tests/tcg/mips/mips32-dspr2/subqh_r_ph.c       |   21 +
>  tests/tcg/mips/mips32-dspr2/subqh_r_w.c        |   21 +
>  tests/tcg/mips/mips32-dspr2/subqh_w.c          |   21 +
>  tests/tcg/mips/mips32-dspr2/subu_ph.c          |   40 +
>  tests/tcg/mips/mips32-dspr2/subu_s_ph.c        |   25 +
>  tests/tcg/mips/mips32-dspr2/subuh_qb.c         |   21 +
>  tests/tcg/mips/mips32-dspr2/subuh_r_qb.c       |   32 +
>  tests/tcg/mips/mips64-dsp/Makefile             |  306 ++
>  tests/tcg/mips/mips64-dsp/absq_s_ob.c          |   63 +
>  tests/tcg/mips/mips64-dsp/absq_s_ph.c          |   37 +
>  tests/tcg/mips/mips64-dsp/absq_s_pw.c          |   66 +
>  tests/tcg/mips/mips64-dsp/absq_s_qh.c          |   40 +
>  tests/tcg/mips/mips64-dsp/absq_s_w.c           |   48 +
>  tests/tcg/mips/mips64-dsp/addq_ph.c            |   57 +
>  tests/tcg/mips/mips64-dsp/addq_pw.c            |   46 +
>  tests/tcg/mips/mips64-dsp/addq_qh.c            |   28 +
>  tests/tcg/mips/mips64-dsp/addq_s_ph.c          |   84 +
>  tests/tcg/mips/mips64-dsp/addq_s_pw.c          |   45 +
>  tests/tcg/mips/mips64-dsp/addq_s_qh.c          |   26 +
>  tests/tcg/mips/mips64-dsp/addq_s_w.c           |   48 +
>  tests/tcg/mips/mips64-dsp/addsc.c              |   39 +
>  tests/tcg/mips/mips64-dsp/addu_ob.c            |   28 +
>  tests/tcg/mips/mips64-dsp/addu_qb.c            |   40 +
>  tests/tcg/mips/mips64-dsp/addu_s_ob.c          |   27 +
>  tests/tcg/mips/mips64-dsp/addu_s_qb.c          |   40 +
>  tests/tcg/mips/mips64-dsp/addwc.c              |   59 +
>  tests/tcg/mips/mips64-dsp/bitrev.c             |   23 +
>  tests/tcg/mips/mips64-dsp/bposge32.c           |   50 +
>  tests/tcg/mips/mips64-dsp/bposge64.c           |   50 +
>  tests/tcg/mips/mips64-dsp/cmp_eq_ph.c          |   42 +
>  tests/tcg/mips/mips64-dsp/cmp_eq_pw.c          |   46 +
>  tests/tcg/mips/mips64-dsp/cmp_eq_qh.c          |   46 +
>  tests/tcg/mips/mips64-dsp/cmp_le_ph.c          |   40 +
>  tests/tcg/mips/mips64-dsp/cmp_le_pw.c          |   46 +
>  tests/tcg/mips/mips64-dsp/cmp_le_qh.c          |   46 +
>  tests/tcg/mips/mips64-dsp/cmp_lt_ph.c          |   41 +
>  tests/tcg/mips/mips64-dsp/cmp_lt_pw.c          |   46 +
>  tests/tcg/mips/mips64-dsp/cmp_lt_qh.c          |   46 +
>  tests/tcg/mips/mips64-dsp/cmpgu_eq_ob.c        |   40 +
>  tests/tcg/mips/mips64-dsp/cmpgu_eq_qb.c        |   38 +
>  tests/tcg/mips/mips64-dsp/cmpgu_le_ob.c        |   40 +
>  tests/tcg/mips/mips64-dsp/cmpgu_le_qb.c        |   37 +
>  tests/tcg/mips/mips64-dsp/cmpgu_lt_ob.c        |   40 +
>  tests/tcg/mips/mips64-dsp/cmpgu_lt_qb.c        |   38 +
>  tests/tcg/mips/mips64-dsp/cmpu_eq_ob.c         |   46 +
>  tests/tcg/mips/mips64-dsp/cmpu_eq_qb.c         |   42 +
>  tests/tcg/mips/mips64-dsp/cmpu_le_ob.c         |   44 +
>  tests/tcg/mips/mips64-dsp/cmpu_le_qb.c         |   41 +
>  tests/tcg/mips/mips64-dsp/cmpu_lt_ob.c         |   44 +
>  tests/tcg/mips/mips64-dsp/cmpu_lt_qb.c         |   42 +
>  tests/tcg/mips/mips64-dsp/dappend.c            |   37 +
>  tests/tcg/mips/mips64-dsp/dextp.c              |   54 +
>  tests/tcg/mips/mips64-dsp/dextpdp.c            |   59 +
>  tests/tcg/mips/mips64-dsp/dextpdpv.c           |   63 +
>  tests/tcg/mips/mips64-dsp/dextpv.c             |   58 +
>  tests/tcg/mips/mips64-dsp/dextr_l.c            |   44 +
>  tests/tcg/mips/mips64-dsp/dextr_r_l.c          |   54 +
>  tests/tcg/mips/mips64-dsp/dextr_r_w.c          |   54 +
>  tests/tcg/mips/mips64-dsp/dextr_rs_l.c         |   52 +
>  tests/tcg/mips/mips64-dsp/dextr_rs_w.c         |   52 +
>  tests/tcg/mips/mips64-dsp/dextr_s_h.c          |   73 +
>  tests/tcg/mips/mips64-dsp/dextr_w.c            |   44 +
>  tests/tcg/mips/mips64-dsp/dextrv_l.c           |   46 +
>  tests/tcg/mips/mips64-dsp/dextrv_r_l.c         |   56 +
>  tests/tcg/mips/mips64-dsp/dextrv_r_w.c         |   56 +
>  tests/tcg/mips/mips64-dsp/dextrv_rs_l.c        |   54 +
>  tests/tcg/mips/mips64-dsp/dextrv_rs_w.c        |   54 +
>  tests/tcg/mips/mips64-dsp/dextrv_s_h.c         |   32 +
>  tests/tcg/mips/mips64-dsp/dextrv_w.c           |   46 +
>  tests/tcg/mips/mips64-dsp/dinsv.c              |   26 +
>  tests/tcg/mips/mips64-dsp/dmadd.c              |   57 +
>  tests/tcg/mips/mips64-dsp/dmaddu.c             |   56 +
>  tests/tcg/mips/mips64-dsp/dmsub.c              |   59 +
>  tests/tcg/mips/mips64-dsp/dmsubu.c             |   59 +
>  tests/tcg/mips/mips64-dsp/dmthlip.c            |   41 +
>  tests/tcg/mips/mips64-dsp/dpaq_s_w_ph.c        |   32 +
>  tests/tcg/mips/mips64-dsp/dpaq_s_w_qh.c        |   57 +
>  tests/tcg/mips/mips64-dsp/dpaq_sa_l_pw.c       |   88 +
>  tests/tcg/mips/mips64-dsp/dpaq_sa_l_w.c        |   82 +
>  tests/tcg/mips/mips64-dsp/dpau_h_obl.c         |   59 +
>  tests/tcg/mips/mips64-dsp/dpau_h_obr.c         |   59 +
>  tests/tcg/mips/mips64-dsp/dpau_h_qbl.c         |   29 +
>  tests/tcg/mips/mips64-dsp/dpau_h_qbr.c         |   29 +
>  tests/tcg/mips/mips64-dsp/dpsq_s_w_ph.c        |   51 +
>  tests/tcg/mips/mips64-dsp/dpsq_s_w_qh.c        |   56 +
>  tests/tcg/mips/mips64-dsp/dpsq_sa_l_pw.c       |   76 +
>  tests/tcg/mips/mips64-dsp/dpsq_sa_l_w.c        |   59 +
>  tests/tcg/mips/mips64-dsp/dpsu_h_obl.c         |   32 +
>  tests/tcg/mips/mips64-dsp/dpsu_h_obr.c         |   32 +
>  tests/tcg/mips/mips64-dsp/dpsu_h_qbl.c         |   29 +
>  tests/tcg/mips/mips64-dsp/dpsu_h_qbr.c         |   29 +
>  tests/tcg/mips/mips64-dsp/dshilo.c             |   52 +
>  tests/tcg/mips/mips64-dsp/dshilov.c            |   54 +
>  tests/tcg/mips/mips64-dsp/extp.c               |   50 +
>  tests/tcg/mips/mips64-dsp/extpdp.c             |   51 +
>  tests/tcg/mips/mips64-dsp/extpdpv.c            |   52 +
>  tests/tcg/mips/mips64-dsp/extpv.c              |   51 +
>  tests/tcg/mips/mips64-dsp/extr_r_w.c           |   53 +
>  tests/tcg/mips/mips64-dsp/extr_rs_w.c          |   53 +
>  tests/tcg/mips/mips64-dsp/extr_s_h.c           |   71 +
>  tests/tcg/mips/mips64-dsp/extr_w.c             |   53 +
>  tests/tcg/mips/mips64-dsp/extrv_r_w.c          |   59 +
>  tests/tcg/mips/mips64-dsp/extrv_rs_w.c         |   59 +
>  tests/tcg/mips/mips64-dsp/extrv_s_h.c          |   79 +
>  tests/tcg/mips/mips64-dsp/extrv_w.c            |   59 +
>  tests/tcg/mips/mips64-dsp/head.S               |   16 +
>  tests/tcg/mips/mips64-dsp/insv.c               |   26 +
>  tests/tcg/mips/mips64-dsp/io.h                 |   22 +
>  tests/tcg/mips/mips64-dsp/lbux.c               |   27 +
>  tests/tcg/mips/mips64-dsp/ldx.c                |   27 +
>  tests/tcg/mips/mips64-dsp/lhx.c                |   27 +
>  tests/tcg/mips/mips64-dsp/lwx.c                |   27 +
>  tests/tcg/mips/mips64-dsp/madd.c               |   33 +
>  tests/tcg/mips/mips64-dsp/maddu.c              |   33 +
>  tests/tcg/mips/mips64-dsp/maq_s_l_pwl.c        |   56 +
>  tests/tcg/mips/mips64-dsp/maq_s_l_pwr.c        |   56 +
>  tests/tcg/mips/mips64-dsp/maq_s_w_phl.c        |   60 +
>  tests/tcg/mips/mips64-dsp/maq_s_w_phr.c        |   60 +
>  tests/tcg/mips/mips64-dsp/maq_s_w_qhll.c       |   62 +
>  tests/tcg/mips/mips64-dsp/maq_s_w_qhlr.c       |   62 +
>  tests/tcg/mips/mips64-dsp/maq_s_w_qhrl.c       |   63 +
>  tests/tcg/mips/mips64-dsp/maq_s_w_qhrr.c       |   63 +
>  tests/tcg/mips/mips64-dsp/maq_sa_w_phl.c       |   60 +
>  tests/tcg/mips/mips64-dsp/maq_sa_w_phr.c       |   60 +
>  tests/tcg/mips/mips64-dsp/maq_sa_w_qhll.c      |   62 +
>  tests/tcg/mips/mips64-dsp/maq_sa_w_qhlr.c      |   64 +
>  tests/tcg/mips/mips64-dsp/maq_sa_w_qhrl.c      |   64 +
>  tests/tcg/mips/mips64-dsp/maq_sa_w_qhrr.c      |   64 +
>  tests/tcg/mips/mips64-dsp/mfhi.c               |   24 +
>  tests/tcg/mips/mips64-dsp/mflo.c               |   24 +
>  tests/tcg/mips/mips64-dsp/mips_boot.lds        |   31 +
>  tests/tcg/mips/mips64-dsp/modsub.c             |   37 +
>  tests/tcg/mips/mips64-dsp/msub.c               |   32 +
>  tests/tcg/mips/mips64-dsp/msubu.c              |   32 +
>  tests/tcg/mips/mips64-dsp/mthi.c               |   24 +
>  tests/tcg/mips/mips64-dsp/mthlip.c             |   61 +
>  tests/tcg/mips/mips64-dsp/mtlo.c               |   22 +
>  tests/tcg/mips/mips64-dsp/muleq_s_pw_qhl.c     |   56 +
>  tests/tcg/mips/mips64-dsp/muleq_s_pw_qhr.c     |   57 +
>  tests/tcg/mips/mips64-dsp/muleq_s_w_phl.c      |   46 +
>  tests/tcg/mips/mips64-dsp/muleq_s_w_phr.c      |   45 +
>  tests/tcg/mips/mips64-dsp/muleu_s_ph_qbl.c     |   27 +
>  tests/tcg/mips/mips64-dsp/muleu_s_ph_qbr.c     |   27 +
>  tests/tcg/mips/mips64-dsp/muleu_s_qh_obl.c     |   30 +
>  tests/tcg/mips/mips64-dsp/muleu_s_qh_obr.c     |   31 +
>  tests/tcg/mips/mips64-dsp/mulq_rs_ph.c         |   27 +
>  tests/tcg/mips/mips64-dsp/mulq_rs_qh.c         |   33 +
>  tests/tcg/mips/mips64-dsp/mulsaq_s_l_pw.c      |   59 +
>  tests/tcg/mips/mips64-dsp/mulsaq_s_w_qh.c      |   57 +
>  tests/tcg/mips/mips64-dsp/mult.c               |   26 +
>  tests/tcg/mips/mips64-dsp/multu.c              |   26 +
>  tests/tcg/mips/mips64-dsp/packrl_ph.c          |   24 +
>  tests/tcg/mips/mips64-dsp/packrl_pw.c          |   24 +
>  tests/tcg/mips/mips64-dsp/pick_ob.c            |   66 +
>  tests/tcg/mips/mips64-dsp/pick_ph.c            |   60 +
>  tests/tcg/mips/mips64-dsp/pick_pw.c            |   48 +
>  tests/tcg/mips/mips64-dsp/pick_qb.c            |   43 +
>  tests/tcg/mips/mips64-dsp/pick_qh.c            |   48 +
>  tests/tcg/mips/mips64-dsp/preceq_l_pwl.c       |   24 +
>  tests/tcg/mips/mips64-dsp/preceq_l_pwr.c       |   24 +
>  tests/tcg/mips/mips64-dsp/preceq_pw_qhl.c      |   21 +
>  tests/tcg/mips/mips64-dsp/preceq_pw_qhla.c     |   23 +
>  tests/tcg/mips/mips64-dsp/preceq_pw_qhr.c      |   21 +
>  tests/tcg/mips/mips64-dsp/preceq_pw_qhra.c     |   23 +
>  tests/tcg/mips/mips64-dsp/preceq_w_phl.c       |   23 +
>  tests/tcg/mips/mips64-dsp/preceq_w_phr.c       |   23 +
>  tests/tcg/mips/mips64-dsp/precequ_ph_qbl.c     |   23 +
>  tests/tcg/mips/mips64-dsp/precequ_ph_qbla.c    |   23 +
>  tests/tcg/mips/mips64-dsp/precequ_ph_qbr.c     |   23 +
>  tests/tcg/mips/mips64-dsp/precequ_ph_qbra.c    |   23 +
>  tests/tcg/mips/mips64-dsp/precequ_qh_obl.c     |   22 +
>  tests/tcg/mips/mips64-dsp/precequ_qh_obla.c    |   22 +
>  tests/tcg/mips/mips64-dsp/precequ_qh_obr.c     |   24 +
>  tests/tcg/mips/mips64-dsp/precequ_qh_obra.c    |   24 +
>  tests/tcg/mips/mips64-dsp/preceu_ph_qbl.c      |   23 +
>  tests/tcg/mips/mips64-dsp/preceu_ph_qbla.c     |   23 +
>  tests/tcg/mips/mips64-dsp/preceu_ph_qbr.c      |   23 +
>  tests/tcg/mips/mips64-dsp/preceu_ph_qbra.c     |   23 +
>  tests/tcg/mips/mips64-dsp/preceu_qh_obl.c      |   22 +
>  tests/tcg/mips/mips64-dsp/preceu_qh_obla.c     |   22 +
>  tests/tcg/mips/mips64-dsp/preceu_qh_obr.c      |   23 +
>  tests/tcg/mips/mips64-dsp/preceu_qh_obra.c     |   23 +
>  tests/tcg/mips/mips64-dsp/precr_ob_qh.c        |   25 +
>  tests/tcg/mips/mips64-dsp/precr_sra_qh_pw.c    |   40 +
>  tests/tcg/mips/mips64-dsp/precr_sra_r_qh_pw.c  |   40 +
>  tests/tcg/mips/mips64-dsp/precrq_ob_qh.c       |   25 +
>  tests/tcg/mips/mips64-dsp/precrq_ph_w.c        |   24 +
>  tests/tcg/mips/mips64-dsp/precrq_pw_l.c        |   25 +
>  tests/tcg/mips/mips64-dsp/precrq_qb_ph.c       |   24 +
>  tests/tcg/mips/mips64-dsp/precrq_qh_pw.c       |   25 +
>  tests/tcg/mips/mips64-dsp/precrq_rs_ph_w.c     |   41 +
>  tests/tcg/mips/mips64-dsp/precrq_rs_qh_pw.c    |   43 +
>  tests/tcg/mips/mips64-dsp/precrqu_s_ob_qh.c    |   27 +
>  tests/tcg/mips/mips64-dsp/precrqu_s_qb_ph.c    |   26 +
>  tests/tcg/mips/mips64-dsp/prependd.c           |   37 +
>  tests/tcg/mips/mips64-dsp/prependw.c           |   37 +
>  tests/tcg/mips/mips64-dsp/printf.c             |  266 ++
>  tests/tcg/mips/mips64-dsp/raddu_l_ob.c         |   22 +
>  tests/tcg/mips/mips64-dsp/raddu_w_qb.c         |   23 +
>  tests/tcg/mips/mips64-dsp/rddsp.c              |   53 +
>  tests/tcg/mips/mips64-dsp/repl_ob.c            |   21 +
>  tests/tcg/mips/mips64-dsp/repl_ph.c            |   30 +
>  tests/tcg/mips/mips64-dsp/repl_pw.c            |   34 +
>  tests/tcg/mips/mips64-dsp/repl_qb.c            |   19 +
>  tests/tcg/mips/mips64-dsp/repl_qh.c            |   34 +
>  tests/tcg/mips/mips64-dsp/replv_ob.c           |   23 +
>  tests/tcg/mips/mips64-dsp/replv_ph.c           |   22 +
>  tests/tcg/mips/mips64-dsp/replv_pw.c           |   23 +
>  tests/tcg/mips/mips64-dsp/replv_qb.c           |   22 +
>  tests/tcg/mips/mips64-dsp/shilo.c              |   29 +
>  tests/tcg/mips/mips64-dsp/shilov.c             |   31 +
>  tests/tcg/mips/mips64-dsp/shll_ob.c            |   43 +
>  tests/tcg/mips/mips64-dsp/shll_ph.c            |   43 +
>  tests/tcg/mips/mips64-dsp/shll_pw.c            |   43 +
>  tests/tcg/mips/mips64-dsp/shll_qb.c            |   26 +
>  tests/tcg/mips/mips64-dsp/shll_qh.c            |   42 +
>  tests/tcg/mips/mips64-dsp/shll_s_ph.c          |   43 +
>  tests/tcg/mips/mips64-dsp/shll_s_pw.c          |   43 +
>  tests/tcg/mips/mips64-dsp/shll_s_qh.c          |   43 +
>  tests/tcg/mips/mips64-dsp/shll_s_w.c           |   26 +
>  tests/tcg/mips/mips64-dsp/shllv_ob.c           |   45 +
>  tests/tcg/mips/mips64-dsp/shllv_ph.c           |   27 +
>  tests/tcg/mips/mips64-dsp/shllv_pw.c           |   45 +
>  tests/tcg/mips/mips64-dsp/shllv_qb.c           |   27 +
>  tests/tcg/mips/mips64-dsp/shllv_qh.c           |   45 +
>  tests/tcg/mips/mips64-dsp/shllv_s_ph.c         |   27 +
>  tests/tcg/mips/mips64-dsp/shllv_s_pw.c         |   45 +
>  tests/tcg/mips/mips64-dsp/shllv_s_qh.c         |   45 +
>  tests/tcg/mips/mips64-dsp/shllv_s_w.c          |   27 +
>  tests/tcg/mips/mips64-dsp/shra_ob.c            |   23 +
>  tests/tcg/mips/mips64-dsp/shra_ph.c            |   23 +
>  tests/tcg/mips/mips64-dsp/shra_pw.c            |   36 +
>  tests/tcg/mips/mips64-dsp/shra_qh.c            |   37 +
>  tests/tcg/mips/mips64-dsp/shra_r_ob.c          |   22 +
>  tests/tcg/mips/mips64-dsp/shra_r_ph.c          |   23 +
>  tests/tcg/mips/mips64-dsp/shra_r_pw.c          |   36 +
>  tests/tcg/mips/mips64-dsp/shra_r_qh.c          |   37 +
>  tests/tcg/mips/mips64-dsp/shra_r_w.c           |   23 +
>  tests/tcg/mips/mips64-dsp/shrav_ph.c           |   24 +
>  tests/tcg/mips/mips64-dsp/shrav_pw.c           |   38 +
>  tests/tcg/mips/mips64-dsp/shrav_qh.c           |   39 +
>  tests/tcg/mips/mips64-dsp/shrav_r_ph.c         |   24 +
>  tests/tcg/mips/mips64-dsp/shrav_r_pw.c         |   37 +
>  tests/tcg/mips/mips64-dsp/shrav_r_qh.c         |   39 +
>  tests/tcg/mips/mips64-dsp/shrav_r_w.c          |   24 +
>  tests/tcg/mips/mips64-dsp/shrl_ob.c            |   38 +
>  tests/tcg/mips/mips64-dsp/shrl_qb.c            |   23 +
>  tests/tcg/mips/mips64-dsp/shrl_qh.c            |   22 +
>  tests/tcg/mips/mips64-dsp/shrlv_ob.c           |   39 +
>  tests/tcg/mips/mips64-dsp/shrlv_qb.c           |   24 +
>  tests/tcg/mips/mips64-dsp/shrlv_qh.c           |   23 +
>  tests/tcg/mips/mips64-dsp/subq_ph.c            |   27 +
>  tests/tcg/mips/mips64-dsp/subq_pw.c            |   44 +
>  tests/tcg/mips/mips64-dsp/subq_qh.c            |   26 +
>  tests/tcg/mips/mips64-dsp/subq_s_ph.c          |   27 +
>  tests/tcg/mips/mips64-dsp/subq_s_pw.c          |   63 +
>  tests/tcg/mips/mips64-dsp/subq_s_qh.c          |   61 +
>  tests/tcg/mips/mips64-dsp/subq_s_w.c           |   27 +
>  tests/tcg/mips/mips64-dsp/subu_ob.c            |   26 +
>  tests/tcg/mips/mips64-dsp/subu_qb.c            |   27 +
>  tests/tcg/mips/mips64-dsp/subu_s_ob.c          |   26 +
>  tests/tcg/mips/mips64-dsp/subu_s_qb.c          |   27 +
>  tests/tcg/mips/mips64-dsp/wrdsp.c              |   48 +
>  tests/tcg/mips/mips64-dspr2/.directory         |    2 +
>  tests/tcg/mips/mips64-dspr2/Makefile           |  116 +
>  tests/tcg/mips/mips64-dspr2/absq_s_qb.c        |   42 +
>  tests/tcg/mips/mips64-dspr2/addqh_ph.c         |   35 +
>  tests/tcg/mips/mips64-dspr2/addqh_r_ph.c       |   35 +
>  tests/tcg/mips/mips64-dspr2/addqh_r_w.c        |   38 +
>  tests/tcg/mips/mips64-dspr2/addqh_w.c          |   39 +
>  tests/tcg/mips/mips64-dspr2/addu_ph.c          |   37 +
>  tests/tcg/mips/mips64-dspr2/addu_qh.c          |   43 +
>  tests/tcg/mips/mips64-dspr2/addu_s_ph.c        |   37 +
>  tests/tcg/mips/mips64-dspr2/addu_s_qh.c        |   43 +
>  tests/tcg/mips/mips64-dspr2/adduh_ob.c         |   35 +
>  tests/tcg/mips/mips64-dspr2/adduh_qb.c         |   35 +
>  tests/tcg/mips/mips64-dspr2/adduh_r_ob.c       |   35 +
>  tests/tcg/mips/mips64-dspr2/adduh_r_qb.c       |   35 +
>  tests/tcg/mips/mips64-dspr2/append.c           |   35 +
>  tests/tcg/mips/mips64-dspr2/balign.c           |   35 +
>  tests/tcg/mips/mips64-dspr2/cmpgdu_eq_ob.c     |   44 +
>  tests/tcg/mips/mips64-dspr2/cmpgdu_eq_qb.c     |   41 +
>  tests/tcg/mips/mips64-dspr2/cmpgdu_le_ob.c     |   44 +
>  tests/tcg/mips/mips64-dspr2/cmpgdu_le_qb.c     |   48 +
>  tests/tcg/mips/mips64-dspr2/cmpgdu_lt_ob.c     |   44 +
>  tests/tcg/mips/mips64-dspr2/cmpgdu_lt_qb.c     |   48 +
>  tests/tcg/mips/mips64-dspr2/dbalign.c          |   39 +
>  tests/tcg/mips/mips64-dspr2/dpa_w_ph.c         |   47 +
>  tests/tcg/mips/mips64-dspr2/dpa_w_qh.c         |   56 +
>  tests/tcg/mips/mips64-dspr2/dpaqx_s_w_ph.c     |   97 +
>  tests/tcg/mips/mips64-dspr2/dpaqx_sa_w_ph.c    |   54 +
>  tests/tcg/mips/mips64-dspr2/dpax_w_ph.c        |   32 +
>  tests/tcg/mips/mips64-dspr2/dps_w_ph.c         |   28 +
>  tests/tcg/mips/mips64-dspr2/dps_w_qh.c         |   55 +
>  tests/tcg/mips/mips64-dspr2/dpsqx_s_w_ph.c     |   55 +
>  tests/tcg/mips/mips64-dspr2/dpsqx_sa_w_ph.c    |   53 +
>  tests/tcg/mips/mips64-dspr2/dpsx_w_ph.c        |   28 +
>  tests/tcg/mips/mips64-dspr2/head.S             |   16 +
>  tests/tcg/mips/mips64-dspr2/io.h               |   22 +
>  tests/tcg/mips/mips64-dspr2/mips_boot.lds      |   31 +
>  tests/tcg/mips/mips64-dspr2/mul_ph.c           |   50 +
>  tests/tcg/mips/mips64-dspr2/mul_s_ph.c         |   67 +
>  tests/tcg/mips/mips64-dspr2/mulq_rs_w.c        |   40 +
>  tests/tcg/mips/mips64-dspr2/mulq_s_ph.c        |   26 +
>  tests/tcg/mips/mips64-dspr2/mulq_s_w.c         |   40 +
>  tests/tcg/mips/mips64-dspr2/mulsa_w_ph.c       |   30 +
>  tests/tcg/mips/mips64-dspr2/mulsaq_s_w_ph.c    |   30 +
>  tests/tcg/mips/mips64-dspr2/precr_qb_ph.c      |   23 +
>  tests/tcg/mips/mips64-dspr2/precr_sra_ph_w.c   |   37 +
>  tests/tcg/mips/mips64-dspr2/precr_sra_r_ph_w.c |   37 +
>  tests/tcg/mips/mips64-dspr2/prepend.c          |   35 +
>  tests/tcg/mips/mips64-dspr2/printf.c           |  266 ++
>  tests/tcg/mips/mips64-dspr2/shra_qb.c          |   35 +
>  tests/tcg/mips/mips64-dspr2/shra_r_qb.c        |   35 +
>  tests/tcg/mips/mips64-dspr2/shrav_ob.c         |   22 +
>  tests/tcg/mips/mips64-dspr2/shrav_qb.c         |   37 +
>  tests/tcg/mips/mips64-dspr2/shrav_r_ob.c       |   22 +
>  tests/tcg/mips/mips64-dspr2/shrav_r_qb.c       |   37 +
>  tests/tcg/mips/mips64-dspr2/shrl_ph.c          |   22 +
>  tests/tcg/mips/mips64-dspr2/shrlv_ph.c         |   23 +
>  tests/tcg/mips/mips64-dspr2/subqh_ph.c         |   23 +
>  tests/tcg/mips/mips64-dspr2/subqh_r_ph.c       |   23 +
>  tests/tcg/mips/mips64-dspr2/subqh_r_w.c        |   23 +
>  tests/tcg/mips/mips64-dspr2/subqh_w.c          |   23 +
>  tests/tcg/mips/mips64-dspr2/subu_ph.c          |   26 +
>  tests/tcg/mips/mips64-dspr2/subu_qh.c          |   24 +
>  tests/tcg/mips/mips64-dspr2/subu_s_ph.c        |   25 +
>  tests/tcg/mips/mips64-dspr2/subu_s_qh.c        |   42 +
>  tests/tcg/mips/mips64-dspr2/subuh_ob.c         |   36 +
>  tests/tcg/mips/mips64-dspr2/subuh_qb.c         |   23 +
>  tests/tcg/mips/mips64-dspr2/subuh_r_ob.c       |   23 +
>  tests/tcg/mips/mips64-dspr2/subuh_r_qb.c       |   37 +
>  496 files changed, 26481 insertions(+), 106 deletions(-)
>  create mode 100644 target-mips/dsp_helper.c
>  create mode 100644 tests/tcg/mips/mips32-dsp/Makefile
>  create mode 100644 tests/tcg/mips/mips32-dsp/absq_s_ph.c
>  create mode 100644 tests/tcg/mips/mips32-dsp/absq_s_w.c
>  create mode 100644 tests/tcg/mips/mips32-dsp/addq_ph.c
>  create mode 100644 tests/tcg/mips/mips32-dsp/addq_s_ph.c
>  create mode 100644 tests/tcg/mips/mips32-dsp/addq_s_w.c
>  create mode 100644 tests/tcg/mips/mips32-dsp/addsc.c
>  create mode 100644 tests/tcg/mips/mips32-dsp/addu_qb.c
>  create mode 100644 tests/tcg/mips/mips32-dsp/addu_s_qb.c
>  create mode 100644 tests/tcg/mips/mips32-dsp/addwc.c
>  create mode 100644 tests/tcg/mips/mips32-dsp/bitrev.c
>  create mode 100644 tests/tcg/mips/mips32-dsp/bposge32.c
>  create mode 100644 tests/tcg/mips/mips32-dsp/cmp_eq_ph.c
>  create mode 100644 tests/tcg/mips/mips32-dsp/cmp_le_ph.c
>  create mode 100644 tests/tcg/mips/mips32-dsp/cmp_lt_ph.c
>  create mode 100644 tests/tcg/mips/mips32-dsp/cmpgu_eq_qb.c
>  create mode 100644 tests/tcg/mips/mips32-dsp/cmpgu_le_qb.c
>  create mode 100644 tests/tcg/mips/mips32-dsp/cmpgu_lt_qb.c
>  create mode 100644 tests/tcg/mips/mips32-dsp/cmpu_eq_qb.c
>  create mode 100644 tests/tcg/mips/mips32-dsp/cmpu_le_qb.c
>  create mode 100644 tests/tcg/mips/mips32-dsp/cmpu_lt_qb.c
>  create mode 100644 tests/tcg/mips/mips32-dsp/dpaq_s_w_ph.c
>  create mode 100644 tests/tcg/mips/mips32-dsp/dpaq_sa_l_w.c
>  create mode 100644 tests/tcg/mips/mips32-dsp/dpau_h_qbl.c
>  create mode 100644 tests/tcg/mips/mips32-dsp/dpau_h_qbr.c
>  create mode 100644 tests/tcg/mips/mips32-dsp/dpsq_s_w_ph.c
>  create mode 100644 tests/tcg/mips/mips32-dsp/dpsq_sa_l_w.c
>  create mode 100644 tests/tcg/mips/mips32-dsp/dpsu_h_qbl.c
>  create mode 100644 tests/tcg/mips/mips32-dsp/dpsu_h_qbr.c
>  create mode 100644 tests/tcg/mips/mips32-dsp/extp.c
>  create mode 100644 tests/tcg/mips/mips32-dsp/extpdp.c
>  create mode 100644 tests/tcg/mips/mips32-dsp/extpdpv.c
>  create mode 100644 tests/tcg/mips/mips32-dsp/extpv.c
>  create mode 100644 tests/tcg/mips/mips32-dsp/extr_r_w.c
>  create mode 100644 tests/tcg/mips/mips32-dsp/extr_rs_w.c
>  create mode 100644 tests/tcg/mips/mips32-dsp/extr_s_h.c
>  create mode 100644 tests/tcg/mips/mips32-dsp/extr_w.c
>  create mode 100644 tests/tcg/mips/mips32-dsp/extrv_r_w.c
>  create mode 100644 tests/tcg/mips/mips32-dsp/extrv_rs_w.c
>  create mode 100644 tests/tcg/mips/mips32-dsp/extrv_s_h.c
>  create mode 100644 tests/tcg/mips/mips32-dsp/extrv_w.c
>  create mode 100644 tests/tcg/mips/mips32-dsp/insv.c
>  create mode 100644 tests/tcg/mips/mips32-dsp/lbux.c
>  create mode 100644 tests/tcg/mips/mips32-dsp/lhx.c
>  create mode 100644 tests/tcg/mips/mips32-dsp/lwx.c
>  create mode 100644 tests/tcg/mips/mips32-dsp/madd.c
>  create mode 100644 tests/tcg/mips/mips32-dsp/maddu.c
>  create mode 100644 tests/tcg/mips/mips32-dsp/main.c
>  create mode 100644 tests/tcg/mips/mips32-dsp/maq_s_w_phl.c
>  create mode 100644 tests/tcg/mips/mips32-dsp/maq_s_w_phr.c
>  create mode 100644 tests/tcg/mips/mips32-dsp/maq_sa_w_phl.c
>  create mode 100644 tests/tcg/mips/mips32-dsp/maq_sa_w_phr.c
>  create mode 100644 tests/tcg/mips/mips32-dsp/mfhi.c
>  create mode 100644 tests/tcg/mips/mips32-dsp/mflo.c
>  create mode 100644 tests/tcg/mips/mips32-dsp/modsub.c
>  create mode 100644 tests/tcg/mips/mips32-dsp/msub.c
>  create mode 100644 tests/tcg/mips/mips32-dsp/msubu.c
>  create mode 100644 tests/tcg/mips/mips32-dsp/mthi.c
>  create mode 100644 tests/tcg/mips/mips32-dsp/mthlip.c
>  create mode 100644 tests/tcg/mips/mips32-dsp/mtlo.c
>  create mode 100644 tests/tcg/mips/mips32-dsp/muleq_s_w_phl.c
>  create mode 100644 tests/tcg/mips/mips32-dsp/muleq_s_w_phr.c
>  create mode 100644 tests/tcg/mips/mips32-dsp/muleu_s_ph_qbl.c
>  create mode 100644 tests/tcg/mips/mips32-dsp/muleu_s_ph_qbr.c
>  create mode 100644 tests/tcg/mips/mips32-dsp/mulq_rs_ph.c
>  create mode 100644 tests/tcg/mips/mips32-dsp/mult.c
>  create mode 100644 tests/tcg/mips/mips32-dsp/multu.c
>  create mode 100644 tests/tcg/mips/mips32-dsp/packrl_ph.c
>  create mode 100644 tests/tcg/mips/mips32-dsp/pick_ph.c
>  create mode 100644 tests/tcg/mips/mips32-dsp/pick_qb.c
>  create mode 100644 tests/tcg/mips/mips32-dsp/preceq_w_phl.c
>  create mode 100644 tests/tcg/mips/mips32-dsp/preceq_w_phr.c
>  create mode 100644 tests/tcg/mips/mips32-dsp/precequ_ph_qbl.c
>  create mode 100644 tests/tcg/mips/mips32-dsp/precequ_ph_qbla.c
>  create mode 100644 tests/tcg/mips/mips32-dsp/precequ_ph_qbr.c
>  create mode 100644 tests/tcg/mips/mips32-dsp/precequ_ph_qbra.c
>  create mode 100644 tests/tcg/mips/mips32-dsp/preceu_ph_qbl.c
>  create mode 100644 tests/tcg/mips/mips32-dsp/preceu_ph_qbla.c
>  create mode 100644 tests/tcg/mips/mips32-dsp/preceu_ph_qbr.c
>  create mode 100644 tests/tcg/mips/mips32-dsp/preceu_ph_qbra.c
>  create mode 100644 tests/tcg/mips/mips32-dsp/precrq_ph_w.c
>  create mode 100644 tests/tcg/mips/mips32-dsp/precrq_qb_ph.c
>  create mode 100644 tests/tcg/mips/mips32-dsp/precrq_rs_ph_w.c
>  create mode 100644 tests/tcg/mips/mips32-dsp/precrqu_s_qb_ph.c
>  create mode 100644 tests/tcg/mips/mips32-dsp/raddu_w_qb.c
>  create mode 100644 tests/tcg/mips/mips32-dsp/rddsp.c
>  create mode 100644 tests/tcg/mips/mips32-dsp/repl_ph.c
>  create mode 100644 tests/tcg/mips/mips32-dsp/repl_qb.c
>  create mode 100644 tests/tcg/mips/mips32-dsp/replv_ph.c
>  create mode 100644 tests/tcg/mips/mips32-dsp/replv_qb.c
>  create mode 100644 tests/tcg/mips/mips32-dsp/shilo.c
>  create mode 100644 tests/tcg/mips/mips32-dsp/shilov.c
>  create mode 100644 tests/tcg/mips/mips32-dsp/shll_ph.c
>  create mode 100644 tests/tcg/mips/mips32-dsp/shll_qb.c
>  create mode 100644 tests/tcg/mips/mips32-dsp/shll_s_ph.c
>  create mode 100644 tests/tcg/mips/mips32-dsp/shll_s_w.c
>  create mode 100644 tests/tcg/mips/mips32-dsp/shllv_ph.c
>  create mode 100644 tests/tcg/mips/mips32-dsp/shllv_qb.c
>  create mode 100644 tests/tcg/mips/mips32-dsp/shllv_s_ph.c
>  create mode 100644 tests/tcg/mips/mips32-dsp/shllv_s_w.c
>  create mode 100644 tests/tcg/mips/mips32-dsp/shra_ph.c
>  create mode 100644 tests/tcg/mips/mips32-dsp/shra_r_ph.c
>  create mode 100644 tests/tcg/mips/mips32-dsp/shra_r_w.c
>  create mode 100644 tests/tcg/mips/mips32-dsp/shrav_ph.c
>  create mode 100644 tests/tcg/mips/mips32-dsp/shrav_r_ph.c
>  create mode 100644 tests/tcg/mips/mips32-dsp/shrav_r_w.c
>  create mode 100644 tests/tcg/mips/mips32-dsp/shrl_qb.c
>  create mode 100644 tests/tcg/mips/mips32-dsp/shrlv_qb.c
>  create mode 100644 tests/tcg/mips/mips32-dsp/subq_ph.c
>  create mode 100644 tests/tcg/mips/mips32-dsp/subq_s_ph.c
>  create mode 100644 tests/tcg/mips/mips32-dsp/subq_s_w.c
>  create mode 100644 tests/tcg/mips/mips32-dsp/subu_qb.c
>  create mode 100644 tests/tcg/mips/mips32-dsp/subu_s_qb.c
>  create mode 100644 tests/tcg/mips/mips32-dsp/wrdsp.c
>  create mode 100644 tests/tcg/mips/mips32-dspr2/Makefile
>  create mode 100644 tests/tcg/mips/mips32-dspr2/absq_s_qb.c
>  create mode 100644 tests/tcg/mips/mips32-dspr2/addqh_ph.c
>  create mode 100644 tests/tcg/mips/mips32-dspr2/addqh_r_ph.c
>  create mode 100644 tests/tcg/mips/mips32-dspr2/addqh_r_w.c
>  create mode 100644 tests/tcg/mips/mips32-dspr2/addqh_w.c
>  create mode 100644 tests/tcg/mips/mips32-dspr2/addu_ph.c
>  create mode 100644 tests/tcg/mips/mips32-dspr2/addu_s_ph.c
>  create mode 100644 tests/tcg/mips/mips32-dspr2/adduh_qb.c
>  create mode 100644 tests/tcg/mips/mips32-dspr2/adduh_r_qb.c
>  create mode 100644 tests/tcg/mips/mips32-dspr2/append.c
>  create mode 100644 tests/tcg/mips/mips32-dspr2/balign.c
>  create mode 100644 tests/tcg/mips/mips32-dspr2/cmpgdu_eq_qb.c
>  create mode 100644 tests/tcg/mips/mips32-dspr2/cmpgdu_le_qb.c
>  create mode 100644 tests/tcg/mips/mips32-dspr2/cmpgdu_lt_qb.c
>  create mode 100644 tests/tcg/mips/mips32-dspr2/dpa_w_ph.c
>  create mode 100644 tests/tcg/mips/mips32-dspr2/dpaqx_s_w_ph.c
>  create mode 100644 tests/tcg/mips/mips32-dspr2/dpaqx_sa_w_ph.c
>  create mode 100644 tests/tcg/mips/mips32-dspr2/dpax_w_ph.c
>  create mode 100644 tests/tcg/mips/mips32-dspr2/dps_w_ph.c
>  create mode 100644 tests/tcg/mips/mips32-dspr2/dpsqx_s_w_ph.c
>  create mode 100644 tests/tcg/mips/mips32-dspr2/dpsqx_sa_w_ph.c
>  create mode 100644 tests/tcg/mips/mips32-dspr2/dpsx_w_ph.c
>  create mode 100644 tests/tcg/mips/mips32-dspr2/mul_ph.c
>  create mode 100644 tests/tcg/mips/mips32-dspr2/mul_s_ph.c
>  create mode 100644 tests/tcg/mips/mips32-dspr2/mulq_rs_w.c
>  create mode 100644 tests/tcg/mips/mips32-dspr2/mulq_s_ph.c
>  create mode 100644 tests/tcg/mips/mips32-dspr2/mulq_s_w.c
>  create mode 100644 tests/tcg/mips/mips32-dspr2/mulsa_w_ph.c
>  create mode 100644 tests/tcg/mips/mips32-dspr2/mulsaq_s_w_ph.c
>  create mode 100644 tests/tcg/mips/mips32-dspr2/precr_qb_ph.c
>  create mode 100644 tests/tcg/mips/mips32-dspr2/precr_sra_ph_w.c
>  create mode 100644 tests/tcg/mips/mips32-dspr2/precr_sra_r_ph_w.c
>  create mode 100644 tests/tcg/mips/mips32-dspr2/prepend.c
>  create mode 100644 tests/tcg/mips/mips32-dspr2/shra_qb.c
>  create mode 100644 tests/tcg/mips/mips32-dspr2/shra_r_qb.c
>  create mode 100644 tests/tcg/mips/mips32-dspr2/shrav_qb.c
>  create mode 100644 tests/tcg/mips/mips32-dspr2/shrav_r_qb.c
>  create mode 100644 tests/tcg/mips/mips32-dspr2/shrl_ph.c
>  create mode 100644 tests/tcg/mips/mips32-dspr2/shrlv_ph.c
>  create mode 100644 tests/tcg/mips/mips32-dspr2/subqh_ph.c
>  create mode 100644 tests/tcg/mips/mips32-dspr2/subqh_r_ph.c
>  create mode 100644 tests/tcg/mips/mips32-dspr2/subqh_r_w.c
>  create mode 100644 tests/tcg/mips/mips32-dspr2/subqh_w.c
>  create mode 100644 tests/tcg/mips/mips32-dspr2/subu_ph.c
>  create mode 100644 tests/tcg/mips/mips32-dspr2/subu_s_ph.c
>  create mode 100644 tests/tcg/mips/mips32-dspr2/subuh_qb.c
>  create mode 100644 tests/tcg/mips/mips32-dspr2/subuh_r_qb.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/Makefile
>  create mode 100644 tests/tcg/mips/mips64-dsp/absq_s_ob.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/absq_s_ph.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/absq_s_pw.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/absq_s_qh.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/absq_s_w.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/addq_ph.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/addq_pw.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/addq_qh.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/addq_s_ph.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/addq_s_pw.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/addq_s_qh.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/addq_s_w.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/addsc.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/addu_ob.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/addu_qb.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/addu_s_ob.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/addu_s_qb.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/addwc.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/bitrev.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/bposge32.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/bposge64.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/cmp_eq_ph.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/cmp_eq_pw.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/cmp_eq_qh.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/cmp_le_ph.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/cmp_le_pw.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/cmp_le_qh.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/cmp_lt_ph.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/cmp_lt_pw.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/cmp_lt_qh.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/cmpgu_eq_ob.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/cmpgu_eq_qb.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/cmpgu_le_ob.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/cmpgu_le_qb.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/cmpgu_lt_ob.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/cmpgu_lt_qb.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/cmpu_eq_ob.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/cmpu_eq_qb.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/cmpu_le_ob.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/cmpu_le_qb.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/cmpu_lt_ob.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/cmpu_lt_qb.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/dappend.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/dextp.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/dextpdp.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/dextpdpv.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/dextpv.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/dextr_l.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/dextr_r_l.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/dextr_r_w.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/dextr_rs_l.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/dextr_rs_w.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/dextr_s_h.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/dextr_w.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/dextrv_l.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/dextrv_r_l.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/dextrv_r_w.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/dextrv_rs_l.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/dextrv_rs_w.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/dextrv_s_h.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/dextrv_w.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/dinsv.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/dmadd.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/dmaddu.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/dmsub.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/dmsubu.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/dmthlip.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/dpaq_s_w_ph.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/dpaq_s_w_qh.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/dpaq_sa_l_pw.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/dpaq_sa_l_w.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/dpau_h_obl.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/dpau_h_obr.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/dpau_h_qbl.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/dpau_h_qbr.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/dpsq_s_w_ph.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/dpsq_s_w_qh.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/dpsq_sa_l_pw.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/dpsq_sa_l_w.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/dpsu_h_obl.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/dpsu_h_obr.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/dpsu_h_qbl.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/dpsu_h_qbr.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/dshilo.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/dshilov.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/extp.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/extpdp.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/extpdpv.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/extpv.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/extr_r_w.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/extr_rs_w.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/extr_s_h.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/extr_w.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/extrv_r_w.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/extrv_rs_w.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/extrv_s_h.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/extrv_w.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/head.S
>  create mode 100644 tests/tcg/mips/mips64-dsp/insv.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/io.h
>  create mode 100644 tests/tcg/mips/mips64-dsp/lbux.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/ldx.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/lhx.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/lwx.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/madd.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/maddu.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/maq_s_l_pwl.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/maq_s_l_pwr.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/maq_s_w_phl.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/maq_s_w_phr.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/maq_s_w_qhll.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/maq_s_w_qhlr.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/maq_s_w_qhrl.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/maq_s_w_qhrr.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/maq_sa_w_phl.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/maq_sa_w_phr.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/maq_sa_w_qhll.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/maq_sa_w_qhlr.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/maq_sa_w_qhrl.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/maq_sa_w_qhrr.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/mfhi.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/mflo.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/mips_boot.lds
>  create mode 100644 tests/tcg/mips/mips64-dsp/modsub.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/msub.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/msubu.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/mthi.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/mthlip.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/mtlo.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/muleq_s_pw_qhl.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/muleq_s_pw_qhr.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/muleq_s_w_phl.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/muleq_s_w_phr.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/muleu_s_ph_qbl.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/muleu_s_ph_qbr.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/muleu_s_qh_obl.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/muleu_s_qh_obr.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/mulq_rs_ph.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/mulq_rs_qh.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/mulsaq_s_l_pw.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/mulsaq_s_w_qh.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/mult.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/multu.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/packrl_ph.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/packrl_pw.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/pick_ob.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/pick_ph.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/pick_pw.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/pick_qb.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/pick_qh.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/preceq_l_pwl.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/preceq_l_pwr.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/preceq_pw_qhl.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/preceq_pw_qhla.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/preceq_pw_qhr.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/preceq_pw_qhra.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/preceq_w_phl.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/preceq_w_phr.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/precequ_ph_qbl.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/precequ_ph_qbla.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/precequ_ph_qbr.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/precequ_ph_qbra.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/precequ_qh_obl.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/precequ_qh_obla.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/precequ_qh_obr.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/precequ_qh_obra.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/preceu_ph_qbl.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/preceu_ph_qbla.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/preceu_ph_qbr.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/preceu_ph_qbra.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/preceu_qh_obl.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/preceu_qh_obla.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/preceu_qh_obr.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/preceu_qh_obra.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/precr_ob_qh.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/precr_sra_qh_pw.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/precr_sra_r_qh_pw.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/precrq_ob_qh.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/precrq_ph_w.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/precrq_pw_l.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/precrq_qb_ph.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/precrq_qh_pw.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/precrq_rs_ph_w.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/precrq_rs_qh_pw.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/precrqu_s_ob_qh.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/precrqu_s_qb_ph.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/prependd.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/prependw.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/printf.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/raddu_l_ob.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/raddu_w_qb.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/rddsp.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/repl_ob.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/repl_ph.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/repl_pw.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/repl_qb.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/repl_qh.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/replv_ob.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/replv_ph.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/replv_pw.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/replv_qb.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/shilo.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/shilov.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/shll_ob.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/shll_ph.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/shll_pw.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/shll_qb.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/shll_qh.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/shll_s_ph.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/shll_s_pw.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/shll_s_qh.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/shll_s_w.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/shllv_ob.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/shllv_ph.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/shllv_pw.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/shllv_qb.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/shllv_qh.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/shllv_s_ph.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/shllv_s_pw.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/shllv_s_qh.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/shllv_s_w.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/shra_ob.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/shra_ph.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/shra_pw.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/shra_qh.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/shra_r_ob.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/shra_r_ph.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/shra_r_pw.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/shra_r_qh.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/shra_r_w.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/shrav_ph.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/shrav_pw.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/shrav_qh.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/shrav_r_ph.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/shrav_r_pw.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/shrav_r_qh.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/shrav_r_w.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/shrl_ob.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/shrl_qb.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/shrl_qh.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/shrlv_ob.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/shrlv_qb.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/shrlv_qh.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/subq_ph.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/subq_pw.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/subq_qh.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/subq_s_ph.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/subq_s_pw.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/subq_s_qh.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/subq_s_w.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/subu_ob.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/subu_qb.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/subu_s_ob.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/subu_s_qb.c
>  create mode 100644 tests/tcg/mips/mips64-dsp/wrdsp.c
>  create mode 100644 tests/tcg/mips/mips64-dspr2/.directory
>  create mode 100644 tests/tcg/mips/mips64-dspr2/Makefile
>  create mode 100644 tests/tcg/mips/mips64-dspr2/absq_s_qb.c
>  create mode 100644 tests/tcg/mips/mips64-dspr2/addqh_ph.c
>  create mode 100644 tests/tcg/mips/mips64-dspr2/addqh_r_ph.c
>  create mode 100644 tests/tcg/mips/mips64-dspr2/addqh_r_w.c
>  create mode 100644 tests/tcg/mips/mips64-dspr2/addqh_w.c
>  create mode 100644 tests/tcg/mips/mips64-dspr2/addu_ph.c
>  create mode 100644 tests/tcg/mips/mips64-dspr2/addu_qh.c
>  create mode 100644 tests/tcg/mips/mips64-dspr2/addu_s_ph.c
>  create mode 100644 tests/tcg/mips/mips64-dspr2/addu_s_qh.c
>  create mode 100644 tests/tcg/mips/mips64-dspr2/adduh_ob.c
>  create mode 100644 tests/tcg/mips/mips64-dspr2/adduh_qb.c
>  create mode 100644 tests/tcg/mips/mips64-dspr2/adduh_r_ob.c
>  create mode 100644 tests/tcg/mips/mips64-dspr2/adduh_r_qb.c
>  create mode 100644 tests/tcg/mips/mips64-dspr2/append.c
>  create mode 100644 tests/tcg/mips/mips64-dspr2/balign.c
>  create mode 100644 tests/tcg/mips/mips64-dspr2/cmpgdu_eq_ob.c
>  create mode 100644 tests/tcg/mips/mips64-dspr2/cmpgdu_eq_qb.c
>  create mode 100644 tests/tcg/mips/mips64-dspr2/cmpgdu_le_ob.c
>  create mode 100644 tests/tcg/mips/mips64-dspr2/cmpgdu_le_qb.c
>  create mode 100644 tests/tcg/mips/mips64-dspr2/cmpgdu_lt_ob.c
>  create mode 100644 tests/tcg/mips/mips64-dspr2/cmpgdu_lt_qb.c
>  create mode 100644 tests/tcg/mips/mips64-dspr2/dbalign.c
>  create mode 100644 tests/tcg/mips/mips64-dspr2/dpa_w_ph.c
>  create mode 100644 tests/tcg/mips/mips64-dspr2/dpa_w_qh.c
>  create mode 100644 tests/tcg/mips/mips64-dspr2/dpaqx_s_w_ph.c
>  create mode 100644 tests/tcg/mips/mips64-dspr2/dpaqx_sa_w_ph.c
>  create mode 100644 tests/tcg/mips/mips64-dspr2/dpax_w_ph.c
>  create mode 100644 tests/tcg/mips/mips64-dspr2/dps_w_ph.c
>  create mode 100644 tests/tcg/mips/mips64-dspr2/dps_w_qh.c
>  create mode 100644 tests/tcg/mips/mips64-dspr2/dpsqx_s_w_ph.c
>  create mode 100644 tests/tcg/mips/mips64-dspr2/dpsqx_sa_w_ph.c
>  create mode 100644 tests/tcg/mips/mips64-dspr2/dpsx_w_ph.c
>  create mode 100644 tests/tcg/mips/mips64-dspr2/head.S
>  create mode 100644 tests/tcg/mips/mips64-dspr2/io.h
>  create mode 100644 tests/tcg/mips/mips64-dspr2/mips_boot.lds
>  create mode 100644 tests/tcg/mips/mips64-dspr2/mul_ph.c
>  create mode 100644 tests/tcg/mips/mips64-dspr2/mul_s_ph.c
>  create mode 100644 tests/tcg/mips/mips64-dspr2/mulq_rs_w.c
>  create mode 100644 tests/tcg/mips/mips64-dspr2/mulq_s_ph.c
>  create mode 100644 tests/tcg/mips/mips64-dspr2/mulq_s_w.c
>  create mode 100644 tests/tcg/mips/mips64-dspr2/mulsa_w_ph.c
>  create mode 100644 tests/tcg/mips/mips64-dspr2/mulsaq_s_w_ph.c
>  create mode 100644 tests/tcg/mips/mips64-dspr2/precr_qb_ph.c
>  create mode 100644 tests/tcg/mips/mips64-dspr2/precr_sra_ph_w.c
>  create mode 100644 tests/tcg/mips/mips64-dspr2/precr_sra_r_ph_w.c
>  create mode 100644 tests/tcg/mips/mips64-dspr2/prepend.c
>  create mode 100644 tests/tcg/mips/mips64-dspr2/printf.c
>  create mode 100644 tests/tcg/mips/mips64-dspr2/shra_qb.c
>  create mode 100644 tests/tcg/mips/mips64-dspr2/shra_r_qb.c
>  create mode 100644 tests/tcg/mips/mips64-dspr2/shrav_ob.c
>  create mode 100644 tests/tcg/mips/mips64-dspr2/shrav_qb.c
>  create mode 100644 tests/tcg/mips/mips64-dspr2/shrav_r_ob.c
>  create mode 100644 tests/tcg/mips/mips64-dspr2/shrav_r_qb.c
>  create mode 100644 tests/tcg/mips/mips64-dspr2/shrl_ph.c
>  create mode 100644 tests/tcg/mips/mips64-dspr2/shrlv_ph.c
>  create mode 100644 tests/tcg/mips/mips64-dspr2/subqh_ph.c
>  create mode 100644 tests/tcg/mips/mips64-dspr2/subqh_r_ph.c
>  create mode 100644 tests/tcg/mips/mips64-dspr2/subqh_r_w.c
>  create mode 100644 tests/tcg/mips/mips64-dspr2/subqh_w.c
>  create mode 100644 tests/tcg/mips/mips64-dspr2/subu_ph.c
>  create mode 100644 tests/tcg/mips/mips64-dspr2/subu_qh.c
>  create mode 100644 tests/tcg/mips/mips64-dspr2/subu_s_ph.c
>  create mode 100644 tests/tcg/mips/mips64-dspr2/subu_s_qh.c
>  create mode 100644 tests/tcg/mips/mips64-dspr2/subuh_ob.c
>  create mode 100644 tests/tcg/mips/mips64-dspr2/subuh_qb.c
>  create mode 100644 tests/tcg/mips/mips64-dspr2/subuh_r_ob.c
>  create mode 100644 tests/tcg/mips/mips64-dspr2/subuh_r_qb.c
> 

I am not fully happy with the result, that said I think the instructions
are correctly emulated. To progress forward I have committed the patches.
I'll send clean-up patches in the next days.

-- 
Aurelien Jarno                          GPG: 1024D/F1BCDB73
aurelien@aurel32.net                 http://www.aurel32.net

      parent reply	other threads:[~2012-10-31 21:47 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-10-24 14:17 [Qemu-devel] [PATCH v12 00/14] QEMU MIPS ASE DSP support Jia Liu
2012-10-24 14:17 ` [Qemu-devel] [PATCH v12 01/14] target-mips: Add ASE DSP internal functions Jia Liu
2012-10-24 14:17 ` [Qemu-devel] [PATCH v12 02/14] target-mips: Add ASE DSP resources access check Jia Liu
2012-10-24 14:17 ` [Qemu-devel] [PATCH v12 03/14] Use correct acc value to index cpu_HI/cpu_LO rather than using a fix number Jia Liu
2012-10-24 14:17 ` [Qemu-devel] [PATCH v12 04/14] target-mips: Add ASE DSP branch instructions Jia Liu
2012-10-24 14:17 ` [Qemu-devel] [PATCH v12 05/14] target-mips: Add ASE DSP load instructions Jia Liu
2012-10-24 14:17 ` [Qemu-devel] [PATCH v12 06/14] target-mips: Add ASE DSP arithmetic instructions Jia Liu
2012-10-24 14:17 ` [Qemu-devel] [PATCH v12 07/14] target-mips: Add ASE DSP GPR-based shift instructions Jia Liu
2012-10-29 13:54   ` Aurelien Jarno
2012-10-30 15:05     ` Jia Liu
2012-10-31 13:26     ` Jia Liu
2012-10-31 20:29       ` Aurelien Jarno
2012-10-24 14:17 ` [Qemu-devel] [PATCH v12 08/14] target-mips: Add ASE DSP multiply instructions Jia Liu
2012-10-24 14:17 ` [Qemu-devel] [PATCH v12 09/14] target-mips: Add ASE DSP bit/manipulation instructions Jia Liu
2012-10-24 14:17 ` [Qemu-devel] [PATCH v12 10/14] target-mips: Add ASE DSP compare-pick instructions Jia Liu
2012-10-24 14:17 ` [Qemu-devel] [PATCH v12 11/14] target-mips: Add ASE DSP accumulator instructions Jia Liu
2012-10-24 14:17 ` [Qemu-devel] [PATCH v12 12/14] target-mips: Add ASE DSP processors Jia Liu
2012-10-24 14:17 ` [Qemu-devel] [PATCH v12 13/14] target-mips: Add ASE DSP testcases Jia Liu
2012-10-24 14:17 ` [Qemu-devel] [PATCH v12 14/14] target-mips: Change TODO file Jia Liu
2012-10-31 21:46 ` Aurelien Jarno [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20121031214655.GD3855@ohm.aurel32.net \
    --to=aurelien@aurel32.net \
    --cc=proljc@gmail.com \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.