qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v12 00/14] QEMU MIPS ASE DSP support


From: Aurelien Jarno
Subject: Re: [Qemu-devel] [PATCH v12 00/14] QEMU MIPS ASE DSP support
Date: Wed, 31 Oct 2012 22:46:55 +0100
User-agent: Mutt/1.5.21 (2010-09-15)

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 <address@hidden>
> ---
> 
> 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
address@hidden                 http://www.aurel32.net



reply via email to

[Prev in Thread] Current Thread [Next in Thread]