From: "Philippe Mathieu-Daudé" <philmd@oss.qualcomm.com>
To: qemu-devel@nongnu.org
Cc: "Aleksandar Rikalo" <arikalo@gmail.com>,
"Aurelien Jarno" <aurelien@aurel32.net>,
"Jiaxun Yang" <jiaxun.yang@flygoat.com>,
"Philippe Mathieu-Daudé" <philmd@oss.qualcomm.com>,
"Pierrick Bouvier" <pierrick.bouvier@oss.qualcomm.com>
Subject: [PATCH 1/4] tests/tcg/mips: Clear DSPControl at start of DSP tests
Date: Wed, 28 Oct 2026 20:21:20 +0100 [thread overview]
Message-ID: <20261028192124.30941-2-philmd@oss.qualcomm.com> (raw)
In-Reply-To: <20261028192124.30941-1-philmd@oss.qualcomm.com>
Some tests check sticky DSPControl flags assuming the register
starts zeroed. Clear it explicitly so tests remain valid when
run in the same process.
Signed-off-by: Philippe Mathieu-Daudé <philmd@oss.qualcomm.com>
---
tests/tcg/mipsel/test_dsp_r1_absq_s_ph.c | 2 ++
tests/tcg/mipsel/test_dsp_r1_absq_s_w.c | 2 ++
tests/tcg/mipsel/test_dsp_r1_addq_ph.c | 2 ++
tests/tcg/mipsel/test_dsp_r1_addq_s_ph.c | 2 ++
tests/tcg/mipsel/test_dsp_r1_addq_s_w.c | 2 ++
tests/tcg/mipsel/test_dsp_r1_addsc.c | 2 ++
tests/tcg/mipsel/test_dsp_r1_addu_qb.c | 2 ++
tests/tcg/mipsel/test_dsp_r1_addu_s_qb.c | 2 ++
tests/tcg/mipsel/test_dsp_r1_addwc.c | 2 ++
tests/tcg/mipsel/test_dsp_r1_bitrev.c | 2 ++
tests/tcg/mipsel/test_dsp_r1_bposge32.c | 2 ++
tests/tcg/mipsel/test_dsp_r1_cmp_eq_ph.c | 2 ++
tests/tcg/mipsel/test_dsp_r1_cmp_le_ph.c | 2 ++
tests/tcg/mipsel/test_dsp_r1_cmp_lt_ph.c | 2 ++
tests/tcg/mipsel/test_dsp_r1_cmpgu_eq_qb.c | 2 ++
tests/tcg/mipsel/test_dsp_r1_cmpgu_le_qb.c | 2 ++
tests/tcg/mipsel/test_dsp_r1_cmpgu_lt_qb.c | 2 ++
tests/tcg/mipsel/test_dsp_r1_cmpu_eq_qb.c | 2 ++
tests/tcg/mipsel/test_dsp_r1_cmpu_le_qb.c | 2 ++
tests/tcg/mipsel/test_dsp_r1_cmpu_lt_qb.c | 2 ++
tests/tcg/mipsel/test_dsp_r1_dpaq_s_w_ph.c | 2 ++
tests/tcg/mipsel/test_dsp_r1_dpaq_sa_l_w.c | 2 ++
tests/tcg/mipsel/test_dsp_r1_dpau_h_qbl.c | 2 ++
tests/tcg/mipsel/test_dsp_r1_dpau_h_qbr.c | 2 ++
tests/tcg/mipsel/test_dsp_r1_dpsq_s_w_ph.c | 2 ++
tests/tcg/mipsel/test_dsp_r1_dpsq_sa_l_w.c | 2 ++
tests/tcg/mipsel/test_dsp_r1_dpsu_h_qbl.c | 2 ++
tests/tcg/mipsel/test_dsp_r1_dpsu_h_qbr.c | 2 ++
tests/tcg/mipsel/test_dsp_r1_extp.c | 2 ++
tests/tcg/mipsel/test_dsp_r1_extpdp.c | 2 ++
tests/tcg/mipsel/test_dsp_r1_extpdpv.c | 2 ++
tests/tcg/mipsel/test_dsp_r1_extpv.c | 2 ++
tests/tcg/mipsel/test_dsp_r1_extr_r_w.c | 2 ++
tests/tcg/mipsel/test_dsp_r1_extr_rs_w.c | 2 ++
tests/tcg/mipsel/test_dsp_r1_extr_s_h.c | 2 ++
tests/tcg/mipsel/test_dsp_r1_extr_w.c | 2 ++
tests/tcg/mipsel/test_dsp_r1_extrv_r_w.c | 2 ++
tests/tcg/mipsel/test_dsp_r1_extrv_rs_w.c | 2 ++
tests/tcg/mipsel/test_dsp_r1_extrv_s_h.c | 2 ++
tests/tcg/mipsel/test_dsp_r1_extrv_w.c | 2 ++
tests/tcg/mipsel/test_dsp_r1_insv.c | 2 ++
tests/tcg/mipsel/test_dsp_r1_lbux.c | 2 ++
tests/tcg/mipsel/test_dsp_r1_lhx.c | 2 ++
tests/tcg/mipsel/test_dsp_r1_lwx.c | 2 ++
tests/tcg/mipsel/test_dsp_r1_madd.c | 2 ++
tests/tcg/mipsel/test_dsp_r1_maddu.c | 2 ++
tests/tcg/mipsel/test_dsp_r1_maq_s_w_phl.c | 2 ++
tests/tcg/mipsel/test_dsp_r1_maq_s_w_phr.c | 2 ++
tests/tcg/mipsel/test_dsp_r1_maq_sa_w_phl.c | 2 ++
tests/tcg/mipsel/test_dsp_r1_maq_sa_w_phr.c | 2 ++
tests/tcg/mipsel/test_dsp_r1_mfhi.c | 2 ++
tests/tcg/mipsel/test_dsp_r1_mflo.c | 2 ++
tests/tcg/mipsel/test_dsp_r1_modsub.c | 2 ++
tests/tcg/mipsel/test_dsp_r1_msub.c | 2 ++
tests/tcg/mipsel/test_dsp_r1_msubu.c | 2 ++
tests/tcg/mipsel/test_dsp_r1_mthi.c | 2 ++
tests/tcg/mipsel/test_dsp_r1_mthlip.c | 2 ++
tests/tcg/mipsel/test_dsp_r1_mtlo.c | 2 ++
tests/tcg/mipsel/test_dsp_r1_muleq_s_w_phl.c | 2 ++
tests/tcg/mipsel/test_dsp_r1_muleq_s_w_phr.c | 2 ++
tests/tcg/mipsel/test_dsp_r1_muleu_s_ph_qbl.c | 2 ++
tests/tcg/mipsel/test_dsp_r1_muleu_s_ph_qbr.c | 2 ++
tests/tcg/mipsel/test_dsp_r1_mulq_rs_ph.c | 2 ++
tests/tcg/mipsel/test_dsp_r1_mult.c | 2 ++
tests/tcg/mipsel/test_dsp_r1_multu.c | 2 ++
tests/tcg/mipsel/test_dsp_r1_packrl_ph.c | 2 ++
tests/tcg/mipsel/test_dsp_r1_pick_ph.c | 2 ++
tests/tcg/mipsel/test_dsp_r1_pick_qb.c | 2 ++
tests/tcg/mipsel/test_dsp_r1_preceq_w_phl.c | 2 ++
tests/tcg/mipsel/test_dsp_r1_preceq_w_phr.c | 2 ++
tests/tcg/mipsel/test_dsp_r1_precequ_ph_qbl.c | 2 ++
tests/tcg/mipsel/test_dsp_r1_precequ_ph_qbla.c | 2 ++
tests/tcg/mipsel/test_dsp_r1_precequ_ph_qbr.c | 2 ++
tests/tcg/mipsel/test_dsp_r1_precequ_ph_qbra.c | 2 ++
tests/tcg/mipsel/test_dsp_r1_preceu_ph_qbl.c | 2 ++
tests/tcg/mipsel/test_dsp_r1_preceu_ph_qbla.c | 2 ++
tests/tcg/mipsel/test_dsp_r1_preceu_ph_qbr.c | 2 ++
tests/tcg/mipsel/test_dsp_r1_preceu_ph_qbra.c | 2 ++
tests/tcg/mipsel/test_dsp_r1_precrq_ph_w.c | 2 ++
tests/tcg/mipsel/test_dsp_r1_precrq_qb_ph.c | 2 ++
tests/tcg/mipsel/test_dsp_r1_precrq_rs_ph_w.c | 2 ++
tests/tcg/mipsel/test_dsp_r1_precrqu_s_qb_ph.c | 2 ++
tests/tcg/mipsel/test_dsp_r1_raddu_w_qb.c | 2 ++
tests/tcg/mipsel/test_dsp_r1_rddsp.c | 2 ++
tests/tcg/mipsel/test_dsp_r1_repl_ph.c | 2 ++
tests/tcg/mipsel/test_dsp_r1_repl_qb.c | 2 ++
tests/tcg/mipsel/test_dsp_r1_replv_ph.c | 2 ++
tests/tcg/mipsel/test_dsp_r1_replv_qb.c | 2 ++
tests/tcg/mipsel/test_dsp_r1_shilo.c | 2 ++
tests/tcg/mipsel/test_dsp_r1_shilov.c | 2 ++
tests/tcg/mipsel/test_dsp_r1_shll_ph.c | 2 ++
tests/tcg/mipsel/test_dsp_r1_shll_qb.c | 2 ++
tests/tcg/mipsel/test_dsp_r1_shll_s_ph.c | 2 ++
tests/tcg/mipsel/test_dsp_r1_shll_s_w.c | 2 ++
tests/tcg/mipsel/test_dsp_r1_shllv_ph.c | 2 ++
tests/tcg/mipsel/test_dsp_r1_shllv_qb.c | 2 ++
tests/tcg/mipsel/test_dsp_r1_shllv_s_ph.c | 2 ++
tests/tcg/mipsel/test_dsp_r1_shllv_s_w.c | 2 ++
tests/tcg/mipsel/test_dsp_r1_shra_ph.c | 2 ++
tests/tcg/mipsel/test_dsp_r1_shra_r_ph.c | 2 ++
tests/tcg/mipsel/test_dsp_r1_shra_r_w.c | 2 ++
tests/tcg/mipsel/test_dsp_r1_shrav_ph.c | 2 ++
tests/tcg/mipsel/test_dsp_r1_shrav_r_ph.c | 2 ++
tests/tcg/mipsel/test_dsp_r1_shrav_r_w.c | 2 ++
tests/tcg/mipsel/test_dsp_r1_shrl_qb.c | 2 ++
tests/tcg/mipsel/test_dsp_r1_shrlv_qb.c | 2 ++
tests/tcg/mipsel/test_dsp_r1_subq_ph.c | 2 ++
tests/tcg/mipsel/test_dsp_r1_subq_s_ph.c | 2 ++
tests/tcg/mipsel/test_dsp_r1_subq_s_w.c | 2 ++
tests/tcg/mipsel/test_dsp_r1_subu_qb.c | 2 ++
tests/tcg/mipsel/test_dsp_r1_subu_s_qb.c | 2 ++
tests/tcg/mipsel/test_dsp_r1_wrdsp.c | 2 ++
tests/tcg/mipsel/test_dsp_r2_absq_s_qb.c | 2 ++
tests/tcg/mipsel/test_dsp_r2_addqh_ph.c | 2 ++
tests/tcg/mipsel/test_dsp_r2_addqh_r_ph.c | 2 ++
tests/tcg/mipsel/test_dsp_r2_addqh_r_w.c | 2 ++
tests/tcg/mipsel/test_dsp_r2_addqh_w.c | 2 ++
tests/tcg/mipsel/test_dsp_r2_addu_ph.c | 2 ++
tests/tcg/mipsel/test_dsp_r2_addu_s_ph.c | 2 ++
tests/tcg/mipsel/test_dsp_r2_adduh_qb.c | 2 ++
tests/tcg/mipsel/test_dsp_r2_adduh_r_qb.c | 2 ++
tests/tcg/mipsel/test_dsp_r2_append.c | 2 ++
tests/tcg/mipsel/test_dsp_r2_balign.c | 2 ++
tests/tcg/mipsel/test_dsp_r2_cmpgdu_eq_qb.c | 2 ++
tests/tcg/mipsel/test_dsp_r2_cmpgdu_le_qb.c | 2 ++
tests/tcg/mipsel/test_dsp_r2_cmpgdu_lt_qb.c | 2 ++
tests/tcg/mipsel/test_dsp_r2_dpa_w_ph.c | 2 ++
tests/tcg/mipsel/test_dsp_r2_dpaqx_s_w_ph.c | 2 ++
tests/tcg/mipsel/test_dsp_r2_dpaqx_sa_w_ph.c | 2 ++
tests/tcg/mipsel/test_dsp_r2_dpax_w_ph.c | 2 ++
tests/tcg/mipsel/test_dsp_r2_dps_w_ph.c | 2 ++
tests/tcg/mipsel/test_dsp_r2_dpsqx_s_w_ph.c | 2 ++
tests/tcg/mipsel/test_dsp_r2_dpsqx_sa_w_ph.c | 2 ++
tests/tcg/mipsel/test_dsp_r2_dpsx_w_ph.c | 2 ++
tests/tcg/mipsel/test_dsp_r2_mul_ph.c | 2 ++
tests/tcg/mipsel/test_dsp_r2_mul_s_ph.c | 2 ++
tests/tcg/mipsel/test_dsp_r2_mulq_rs_w.c | 2 ++
tests/tcg/mipsel/test_dsp_r2_mulq_s_ph.c | 2 ++
tests/tcg/mipsel/test_dsp_r2_mulq_s_w.c | 2 ++
tests/tcg/mipsel/test_dsp_r2_mulsa_w_ph.c | 2 ++
tests/tcg/mipsel/test_dsp_r2_mulsaq_s_w_ph.c | 2 ++
tests/tcg/mipsel/test_dsp_r2_precr_qb_ph.c | 2 ++
tests/tcg/mipsel/test_dsp_r2_precr_sra_ph_w.c | 2 ++
tests/tcg/mipsel/test_dsp_r2_precr_sra_r_ph_w.c | 2 ++
tests/tcg/mipsel/test_dsp_r2_prepend.c | 2 ++
tests/tcg/mipsel/test_dsp_r2_shra_qb.c | 2 ++
tests/tcg/mipsel/test_dsp_r2_shra_r_qb.c | 2 ++
tests/tcg/mipsel/test_dsp_r2_shrav_qb.c | 2 ++
tests/tcg/mipsel/test_dsp_r2_shrav_r_qb.c | 2 ++
tests/tcg/mipsel/test_dsp_r2_shrl_ph.c | 2 ++
tests/tcg/mipsel/test_dsp_r2_shrlv_ph.c | 2 ++
tests/tcg/mipsel/test_dsp_r2_subqh_ph.c | 2 ++
tests/tcg/mipsel/test_dsp_r2_subqh_r_ph.c | 2 ++
tests/tcg/mipsel/test_dsp_r2_subqh_r_w.c | 2 ++
tests/tcg/mipsel/test_dsp_r2_subqh_w.c | 2 ++
tests/tcg/mipsel/test_dsp_r2_subu_ph.c | 2 ++
tests/tcg/mipsel/test_dsp_r2_subu_s_ph.c | 2 ++
tests/tcg/mipsel/test_dsp_r2_subuh_qb.c | 2 ++
tests/tcg/mipsel/test_dsp_r2_subuh_r_qb.c | 2 ++
159 files changed, 318 insertions(+)
diff --git a/tests/tcg/mipsel/test_dsp_r1_absq_s_ph.c b/tests/tcg/mipsel/test_dsp_r1_absq_s_ph.c
index aa8411202e20..6f85ae493bdd 100644
--- a/tests/tcg/mipsel/test_dsp_r1_absq_s_ph.c
+++ b/tests/tcg/mipsel/test_dsp_r1_absq_s_ph.c
@@ -7,6 +7,8 @@ int main()
int rd, rt;
int result;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rt = 0x10017EFD;
result = 0x10017EFD;
diff --git a/tests/tcg/mipsel/test_dsp_r1_absq_s_w.c b/tests/tcg/mipsel/test_dsp_r1_absq_s_w.c
index 3f52a48039cd..3e96dec3159d 100644
--- a/tests/tcg/mipsel/test_dsp_r1_absq_s_w.c
+++ b/tests/tcg/mipsel/test_dsp_r1_absq_s_w.c
@@ -6,6 +6,8 @@ int main()
int rd, rt;
int result;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rt = 0x80000000;
result = 0x7FFFFFFF;
__asm
diff --git a/tests/tcg/mipsel/test_dsp_r1_addq_ph.c b/tests/tcg/mipsel/test_dsp_r1_addq_ph.c
index 96a549637b41..0b8f7e893e89 100644
--- a/tests/tcg/mipsel/test_dsp_r1_addq_ph.c
+++ b/tests/tcg/mipsel/test_dsp_r1_addq_ph.c
@@ -7,6 +7,8 @@ int main()
int dsp;
int result;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rs = 0xFFFFFFFF;
rt = 0x10101010;
result = 0x100F100F;
diff --git a/tests/tcg/mipsel/test_dsp_r1_addq_s_ph.c b/tests/tcg/mipsel/test_dsp_r1_addq_s_ph.c
index 5f865f6cffd5..0846634d4926 100644
--- a/tests/tcg/mipsel/test_dsp_r1_addq_s_ph.c
+++ b/tests/tcg/mipsel/test_dsp_r1_addq_s_ph.c
@@ -7,6 +7,8 @@ int main()
int dsp;
int result;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rs = 0xFFFFFFFF;
rt = 0x10101010;
result = 0x100F100F;
diff --git a/tests/tcg/mipsel/test_dsp_r1_addq_s_w.c b/tests/tcg/mipsel/test_dsp_r1_addq_s_w.c
index 1e13acf68fb9..4bdc59a6c9a9 100644
--- a/tests/tcg/mipsel/test_dsp_r1_addq_s_w.c
+++ b/tests/tcg/mipsel/test_dsp_r1_addq_s_w.c
@@ -7,6 +7,8 @@ int main()
int rd, rs, rt;
int result;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rt = 0x10017EFD;
rs = 0x11111111;
result = 0x2112900e;
diff --git a/tests/tcg/mipsel/test_dsp_r1_addsc.c b/tests/tcg/mipsel/test_dsp_r1_addsc.c
index ace749f667c4..90361cd836fd 100644
--- a/tests/tcg/mipsel/test_dsp_r1_addsc.c
+++ b/tests/tcg/mipsel/test_dsp_r1_addsc.c
@@ -7,6 +7,8 @@ int main()
int dsp;
int result;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rs = 0x0000000F;
rt = 0x00000001;
result = 0x00000010;
diff --git a/tests/tcg/mipsel/test_dsp_r1_addu_qb.c b/tests/tcg/mipsel/test_dsp_r1_addu_qb.c
index 23ba2e90d1c9..c82d15c41a6a 100644
--- a/tests/tcg/mipsel/test_dsp_r1_addu_qb.c
+++ b/tests/tcg/mipsel/test_dsp_r1_addu_qb.c
@@ -7,6 +7,8 @@ int main()
int dsp;
int result;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rs = 0x00FF00FF;
rt = 0x00010001;
result = 0x00000000;
diff --git a/tests/tcg/mipsel/test_dsp_r1_addu_s_qb.c b/tests/tcg/mipsel/test_dsp_r1_addu_s_qb.c
index fe7fd3e6aa2d..91de186fad6b 100644
--- a/tests/tcg/mipsel/test_dsp_r1_addu_s_qb.c
+++ b/tests/tcg/mipsel/test_dsp_r1_addu_s_qb.c
@@ -7,6 +7,8 @@ int main()
int dsp;
int result;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rs = 0x10FF01FF;
rt = 0x10010001;
result = 0x20FF01FF;
diff --git a/tests/tcg/mipsel/test_dsp_r1_addwc.c b/tests/tcg/mipsel/test_dsp_r1_addwc.c
index 8a8d81fab4ca..77ac3381bde9 100644
--- a/tests/tcg/mipsel/test_dsp_r1_addwc.c
+++ b/tests/tcg/mipsel/test_dsp_r1_addwc.c
@@ -7,6 +7,8 @@ int main()
int dspi, dspo;
int result;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rs = 0x10FF01FF;
rt = 0x10010001;
dspi = 0x00002000;
diff --git a/tests/tcg/mipsel/test_dsp_r1_bitrev.c b/tests/tcg/mipsel/test_dsp_r1_bitrev.c
index 04d8a3844eb8..3ece5c9f2c82 100644
--- a/tests/tcg/mipsel/test_dsp_r1_bitrev.c
+++ b/tests/tcg/mipsel/test_dsp_r1_bitrev.c
@@ -6,6 +6,8 @@ int main()
int rd, rt;
int result;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rt = 0x12345678;
result = 0x00001E6A;
diff --git a/tests/tcg/mipsel/test_dsp_r1_bposge32.c b/tests/tcg/mipsel/test_dsp_r1_bposge32.c
index d25417ea77b2..6e9f5f28b2ca 100644
--- a/tests/tcg/mipsel/test_dsp_r1_bposge32.c
+++ b/tests/tcg/mipsel/test_dsp_r1_bposge32.c
@@ -6,6 +6,8 @@ int main()
int dsp, sum;
int result;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
dsp = 0x20;
sum = 0x01;
result = 0x02;
diff --git a/tests/tcg/mipsel/test_dsp_r1_cmp_eq_ph.c b/tests/tcg/mipsel/test_dsp_r1_cmp_eq_ph.c
index 957bd88ce01f..378bf17213a2 100644
--- a/tests/tcg/mipsel/test_dsp_r1_cmp_eq_ph.c
+++ b/tests/tcg/mipsel/test_dsp_r1_cmp_eq_ph.c
@@ -6,6 +6,8 @@ int main()
int rd, rs, rt;
int result;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rs = 0x11777066;
rt = 0x55AA33FF;
result = 0x00;
diff --git a/tests/tcg/mipsel/test_dsp_r1_cmp_le_ph.c b/tests/tcg/mipsel/test_dsp_r1_cmp_le_ph.c
index 356f156c5d1f..d42bc4a54df3 100644
--- a/tests/tcg/mipsel/test_dsp_r1_cmp_le_ph.c
+++ b/tests/tcg/mipsel/test_dsp_r1_cmp_le_ph.c
@@ -6,6 +6,8 @@ int main()
int rd, rs, rt;
int result;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rs = 0x11777066;
rt = 0x55AA33FF;
result = 0x02;
diff --git a/tests/tcg/mipsel/test_dsp_r1_cmp_lt_ph.c b/tests/tcg/mipsel/test_dsp_r1_cmp_lt_ph.c
index 3fb4827ad761..dd85601decbe 100644
--- a/tests/tcg/mipsel/test_dsp_r1_cmp_lt_ph.c
+++ b/tests/tcg/mipsel/test_dsp_r1_cmp_lt_ph.c
@@ -6,6 +6,8 @@ int main()
int rd, rs, rt;
int result;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rs = 0x11777066;
rt = 0x55AA33FF;
result = 0x02;
diff --git a/tests/tcg/mipsel/test_dsp_r1_cmpgu_eq_qb.c b/tests/tcg/mipsel/test_dsp_r1_cmpgu_eq_qb.c
index 2615c84c75c7..28c8ff4de27e 100644
--- a/tests/tcg/mipsel/test_dsp_r1_cmpgu_eq_qb.c
+++ b/tests/tcg/mipsel/test_dsp_r1_cmpgu_eq_qb.c
@@ -6,6 +6,8 @@ int main()
int rd, rs, rt;
int result;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rs = 0x11777066;
rt = 0x55AA70FF;
result = 0x02;
diff --git a/tests/tcg/mipsel/test_dsp_r1_cmpgu_le_qb.c b/tests/tcg/mipsel/test_dsp_r1_cmpgu_le_qb.c
index 65d0813c3b19..5bcd20782889 100644
--- a/tests/tcg/mipsel/test_dsp_r1_cmpgu_le_qb.c
+++ b/tests/tcg/mipsel/test_dsp_r1_cmpgu_le_qb.c
@@ -6,6 +6,8 @@ int main()
int rd, rs, rt;
int result;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rs = 0x11777066;
rt = 0x55AA70FF;
result = 0x0F;
diff --git a/tests/tcg/mipsel/test_dsp_r1_cmpgu_lt_qb.c b/tests/tcg/mipsel/test_dsp_r1_cmpgu_lt_qb.c
index 7dddad98532c..fa7ae80051b4 100644
--- a/tests/tcg/mipsel/test_dsp_r1_cmpgu_lt_qb.c
+++ b/tests/tcg/mipsel/test_dsp_r1_cmpgu_lt_qb.c
@@ -6,6 +6,8 @@ int main()
int rd, rs, rt;
int result;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rs = 0x11777066;
rt = 0x55AA70FF;
result = 0x0D;
diff --git a/tests/tcg/mipsel/test_dsp_r1_cmpu_eq_qb.c b/tests/tcg/mipsel/test_dsp_r1_cmpu_eq_qb.c
index 680f2a1999d8..c770a78ca7a0 100644
--- a/tests/tcg/mipsel/test_dsp_r1_cmpu_eq_qb.c
+++ b/tests/tcg/mipsel/test_dsp_r1_cmpu_eq_qb.c
@@ -7,6 +7,8 @@ int main()
int dsp;
int result;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rs = 0x11777066;
rt = 0x55AA70FF;
result = 0x02;
diff --git a/tests/tcg/mipsel/test_dsp_r1_cmpu_le_qb.c b/tests/tcg/mipsel/test_dsp_r1_cmpu_le_qb.c
index 43cfa509ca3c..e107731c494a 100644
--- a/tests/tcg/mipsel/test_dsp_r1_cmpu_le_qb.c
+++ b/tests/tcg/mipsel/test_dsp_r1_cmpu_le_qb.c
@@ -7,6 +7,8 @@ int main()
int dsp;
int result;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rs = 0x11777066;
rt = 0x55AA70FF;
result = 0x0F;
diff --git a/tests/tcg/mipsel/test_dsp_r1_cmpu_lt_qb.c b/tests/tcg/mipsel/test_dsp_r1_cmpu_lt_qb.c
index 074ca5b402de..a1ae33d371d2 100644
--- a/tests/tcg/mipsel/test_dsp_r1_cmpu_lt_qb.c
+++ b/tests/tcg/mipsel/test_dsp_r1_cmpu_lt_qb.c
@@ -7,6 +7,8 @@ int main()
int dsp;
int result;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rs = 0x11777066;
rt = 0x55AA70FF;
result = 0x0D;
diff --git a/tests/tcg/mipsel/test_dsp_r1_dpaq_s_w_ph.c b/tests/tcg/mipsel/test_dsp_r1_dpaq_s_w_ph.c
index a6425b6edc84..9031d7cc2852 100644
--- a/tests/tcg/mipsel/test_dsp_r1_dpaq_s_w_ph.c
+++ b/tests/tcg/mipsel/test_dsp_r1_dpaq_s_w_ph.c
@@ -7,6 +7,8 @@ int main()
int ach = 0, acl = 0;
int resulth, resultl, resultdsp;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rs = 0x800000FF;
rt = 0x80000002;
resulth = 0x00;
diff --git a/tests/tcg/mipsel/test_dsp_r1_dpaq_sa_l_w.c b/tests/tcg/mipsel/test_dsp_r1_dpaq_sa_l_w.c
index cbf900713f33..992513cf4798 100644
--- a/tests/tcg/mipsel/test_dsp_r1_dpaq_sa_l_w.c
+++ b/tests/tcg/mipsel/test_dsp_r1_dpaq_sa_l_w.c
@@ -7,6 +7,8 @@ int main()
int ach = 0, acl = 0;
int resulth, resultl, resultdsp;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rs = 0x80000000;
rt = 0x80000000;
resulth = 0x7FFFFFFF;
diff --git a/tests/tcg/mipsel/test_dsp_r1_dpau_h_qbl.c b/tests/tcg/mipsel/test_dsp_r1_dpau_h_qbl.c
index 6017b5e73ab2..5417db80495e 100644
--- a/tests/tcg/mipsel/test_dsp_r1_dpau_h_qbl.c
+++ b/tests/tcg/mipsel/test_dsp_r1_dpau_h_qbl.c
@@ -7,6 +7,8 @@ int main()
int ach = 5, acl = 3;
int resulth, resultl;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rs = 0x800000FF;
rt = 0x80000002;
resulth = 0x05;
diff --git a/tests/tcg/mipsel/test_dsp_r1_dpau_h_qbr.c b/tests/tcg/mipsel/test_dsp_r1_dpau_h_qbr.c
index e4abb2e2af03..d51372ab768e 100644
--- a/tests/tcg/mipsel/test_dsp_r1_dpau_h_qbr.c
+++ b/tests/tcg/mipsel/test_dsp_r1_dpau_h_qbr.c
@@ -7,6 +7,8 @@ int main()
int ach = 5, acl = 3;
int resulth, resultl;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rs = 0x800000FF;
rt = 0x80000002;
resulth = 0x05;
diff --git a/tests/tcg/mipsel/test_dsp_r1_dpsq_s_w_ph.c b/tests/tcg/mipsel/test_dsp_r1_dpsq_s_w_ph.c
index 74058fe7ecd0..d79b16c3e690 100644
--- a/tests/tcg/mipsel/test_dsp_r1_dpsq_s_w_ph.c
+++ b/tests/tcg/mipsel/test_dsp_r1_dpsq_s_w_ph.c
@@ -7,6 +7,8 @@ int main()
int ach = 5, acl = 5;
int resulth, resultl;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rs = 0xBC0123AD;
rt = 0x01643721;
resulth = 0x00000004;
diff --git a/tests/tcg/mipsel/test_dsp_r1_dpsq_sa_l_w.c b/tests/tcg/mipsel/test_dsp_r1_dpsq_sa_l_w.c
index eda3b14e2be2..fb819c7cde22 100644
--- a/tests/tcg/mipsel/test_dsp_r1_dpsq_sa_l_w.c
+++ b/tests/tcg/mipsel/test_dsp_r1_dpsq_sa_l_w.c
@@ -7,6 +7,8 @@ int main()
int ach = 5, acl = 5;
int resulth, resultl, resultdsp;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rs = 0xBC0123AD;
rt = 0x01643721;
resulth = 0x00BD3A22;
diff --git a/tests/tcg/mipsel/test_dsp_r1_dpsu_h_qbl.c b/tests/tcg/mipsel/test_dsp_r1_dpsu_h_qbl.c
index 94e2bf625499..34b81489078c 100644
--- a/tests/tcg/mipsel/test_dsp_r1_dpsu_h_qbl.c
+++ b/tests/tcg/mipsel/test_dsp_r1_dpsu_h_qbl.c
@@ -7,6 +7,8 @@ int main()
int ach = 5, acl = 5;
int resulth, resultl;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rs = 0xBC0123AD;
rt = 0x01643721;
resulth = 0x04;
diff --git a/tests/tcg/mipsel/test_dsp_r1_dpsu_h_qbr.c b/tests/tcg/mipsel/test_dsp_r1_dpsu_h_qbr.c
index a1e66356310d..06e6e0e6f9f3 100644
--- a/tests/tcg/mipsel/test_dsp_r1_dpsu_h_qbr.c
+++ b/tests/tcg/mipsel/test_dsp_r1_dpsu_h_qbr.c
@@ -7,6 +7,8 @@ int main()
int ach = 5, acl = 5;
int resulth, resultl;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rs = 0xBC0123AD;
rt = 0x01643721;
resulth = 0x04;
diff --git a/tests/tcg/mipsel/test_dsp_r1_extp.c b/tests/tcg/mipsel/test_dsp_r1_extp.c
index b18bdb34c872..3092067b36db 100644
--- a/tests/tcg/mipsel/test_dsp_r1_extp.c
+++ b/tests/tcg/mipsel/test_dsp_r1_extp.c
@@ -6,6 +6,8 @@ int main()
int rt, ach, acl, dsp;
int result;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
ach = 0x05;
acl = 0xB4CB;
dsp = 0x07;
diff --git a/tests/tcg/mipsel/test_dsp_r1_extpdp.c b/tests/tcg/mipsel/test_dsp_r1_extpdp.c
index 79ee16e8b87c..8bdb1fb6999b 100644
--- a/tests/tcg/mipsel/test_dsp_r1_extpdp.c
+++ b/tests/tcg/mipsel/test_dsp_r1_extpdp.c
@@ -6,6 +6,8 @@ int main()
int rt, ach, acl, dsp, pos, efi;
int result;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
ach = 0x05;
acl = 0xB4CB;
dsp = 0x07;
diff --git a/tests/tcg/mipsel/test_dsp_r1_extpdpv.c b/tests/tcg/mipsel/test_dsp_r1_extpdpv.c
index f5774eed3cae..e865052e3f24 100644
--- a/tests/tcg/mipsel/test_dsp_r1_extpdpv.c
+++ b/tests/tcg/mipsel/test_dsp_r1_extpdpv.c
@@ -6,6 +6,8 @@ int main()
int rt, rs, ach, acl, dsp, pos, efi;
int result;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
ach = 0x05;
acl = 0xB4CB;
dsp = 0x07;
diff --git a/tests/tcg/mipsel/test_dsp_r1_extpv.c b/tests/tcg/mipsel/test_dsp_r1_extpv.c
index 401b94afadfc..8fe8555a4f4d 100644
--- a/tests/tcg/mipsel/test_dsp_r1_extpv.c
+++ b/tests/tcg/mipsel/test_dsp_r1_extpv.c
@@ -6,6 +6,8 @@ int main()
int rt, ac, ach, acl, dsp;
int result;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
ach = 0x05;
acl = 0xB4CB;
dsp = 0x07;
diff --git a/tests/tcg/mipsel/test_dsp_r1_extr_r_w.c b/tests/tcg/mipsel/test_dsp_r1_extr_r_w.c
index 489c1931b475..a8dc1fb88799 100644
--- a/tests/tcg/mipsel/test_dsp_r1_extr_r_w.c
+++ b/tests/tcg/mipsel/test_dsp_r1_extr_r_w.c
@@ -6,6 +6,8 @@ int main()
int rt, ach, acl, dsp;
int result;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
ach = 0x05;
acl = 0xB4CB;
result = 0xA0001699;
diff --git a/tests/tcg/mipsel/test_dsp_r1_extr_rs_w.c b/tests/tcg/mipsel/test_dsp_r1_extr_rs_w.c
index f9d2ed646fa3..2295d0180417 100644
--- a/tests/tcg/mipsel/test_dsp_r1_extr_rs_w.c
+++ b/tests/tcg/mipsel/test_dsp_r1_extr_rs_w.c
@@ -6,6 +6,8 @@ int main()
int rt, ach, acl, dsp;
int result;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
ach = 0x05;
acl = 0xB4CB;
result = 0x7FFFFFFF;
diff --git a/tests/tcg/mipsel/test_dsp_r1_extr_s_h.c b/tests/tcg/mipsel/test_dsp_r1_extr_s_h.c
index 9bc2a63cc2d1..e0c3e75a22d7 100644
--- a/tests/tcg/mipsel/test_dsp_r1_extr_s_h.c
+++ b/tests/tcg/mipsel/test_dsp_r1_extr_s_h.c
@@ -6,6 +6,8 @@ int main()
int rt, ach, acl, dsp;
int result;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
ach = 0x05;
acl = 0xB4CB;
result = 0x00007FFF;
diff --git a/tests/tcg/mipsel/test_dsp_r1_extr_w.c b/tests/tcg/mipsel/test_dsp_r1_extr_w.c
index cf926146d54c..19ec7a37c4ae 100644
--- a/tests/tcg/mipsel/test_dsp_r1_extr_w.c
+++ b/tests/tcg/mipsel/test_dsp_r1_extr_w.c
@@ -6,6 +6,8 @@ int main()
int rt, ach, acl, dsp;
int result;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
ach = 0x05;
acl = 0xB4CB;
result = 0xA0001699;
diff --git a/tests/tcg/mipsel/test_dsp_r1_extrv_r_w.c b/tests/tcg/mipsel/test_dsp_r1_extrv_r_w.c
index 2403b3afe40f..8f4ccefdabff 100644
--- a/tests/tcg/mipsel/test_dsp_r1_extrv_r_w.c
+++ b/tests/tcg/mipsel/test_dsp_r1_extrv_r_w.c
@@ -6,6 +6,8 @@ int main()
int rt, rs, ach, acl, dsp;
int result;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
ach = 0x05;
acl = 0xB4CB;
dsp = 0x07;
diff --git a/tests/tcg/mipsel/test_dsp_r1_extrv_rs_w.c b/tests/tcg/mipsel/test_dsp_r1_extrv_rs_w.c
index 10c182a54b23..783dcd167175 100644
--- a/tests/tcg/mipsel/test_dsp_r1_extrv_rs_w.c
+++ b/tests/tcg/mipsel/test_dsp_r1_extrv_rs_w.c
@@ -6,6 +6,8 @@ int main()
int rt, rs, ach, acl, dsp = 0;
int result;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rs = 0x03;
ach = 0x05;
acl = 0xB4CB;
diff --git a/tests/tcg/mipsel/test_dsp_r1_extrv_s_h.c b/tests/tcg/mipsel/test_dsp_r1_extrv_s_h.c
index feac3e2e334a..6369a138b4fd 100644
--- a/tests/tcg/mipsel/test_dsp_r1_extrv_s_h.c
+++ b/tests/tcg/mipsel/test_dsp_r1_extrv_s_h.c
@@ -6,6 +6,8 @@ int main()
int rt, rs, ach, acl, dsp;
int result;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
ach = 0x05;
acl = 0xB4CB;
dsp = 0x07;
diff --git a/tests/tcg/mipsel/test_dsp_r1_extrv_w.c b/tests/tcg/mipsel/test_dsp_r1_extrv_w.c
index 9e8b238a04d4..f839dac03827 100644
--- a/tests/tcg/mipsel/test_dsp_r1_extrv_w.c
+++ b/tests/tcg/mipsel/test_dsp_r1_extrv_w.c
@@ -6,6 +6,8 @@ int main()
int rt, rs, ach, acl, dsp;
int result;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
ach = 0x05;
acl = 0xB4CB;
dsp = 0x07;
diff --git a/tests/tcg/mipsel/test_dsp_r1_insv.c b/tests/tcg/mipsel/test_dsp_r1_insv.c
index 9d674697ccaa..81843726aa21 100644
--- a/tests/tcg/mipsel/test_dsp_r1_insv.c
+++ b/tests/tcg/mipsel/test_dsp_r1_insv.c
@@ -6,6 +6,8 @@ int main()
int rt, rs, dsp;
int result;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
/* msb = 10, lsb = 5 */
dsp = 0x305;
rt = 0x12345678;
diff --git a/tests/tcg/mipsel/test_dsp_r1_lbux.c b/tests/tcg/mipsel/test_dsp_r1_lbux.c
index 2337abea2acb..39b21ab2c150 100644
--- a/tests/tcg/mipsel/test_dsp_r1_lbux.c
+++ b/tests/tcg/mipsel/test_dsp_r1_lbux.c
@@ -8,6 +8,8 @@ int main(void)
unsigned long addr, index;
int result;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
value = 0xBCDEF389;
p = &value;
addr = (unsigned long)p;
diff --git a/tests/tcg/mipsel/test_dsp_r1_lhx.c b/tests/tcg/mipsel/test_dsp_r1_lhx.c
index 10be3b385fee..822e56c0d093 100644
--- a/tests/tcg/mipsel/test_dsp_r1_lhx.c
+++ b/tests/tcg/mipsel/test_dsp_r1_lhx.c
@@ -8,6 +8,8 @@ int main(void)
unsigned long addr, index;
int result;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
value = 0xBCDEF389;
p = &value;
addr = (unsigned long)p;
diff --git a/tests/tcg/mipsel/test_dsp_r1_lwx.c b/tests/tcg/mipsel/test_dsp_r1_lwx.c
index e6543c9e7eae..149a8d254cff 100644
--- a/tests/tcg/mipsel/test_dsp_r1_lwx.c
+++ b/tests/tcg/mipsel/test_dsp_r1_lwx.c
@@ -8,6 +8,8 @@ int main(void)
unsigned long addr, index;
int result;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
value = 0xBCDEF389;
p = &value;
addr = (unsigned long)p;
diff --git a/tests/tcg/mipsel/test_dsp_r1_madd.c b/tests/tcg/mipsel/test_dsp_r1_madd.c
index af4bfcfe9df3..732e366b9afc 100644
--- a/tests/tcg/mipsel/test_dsp_r1_madd.c
+++ b/tests/tcg/mipsel/test_dsp_r1_madd.c
@@ -8,6 +8,8 @@ int main()
int acho, aclo;
int resulth, resultl;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
achi = 0x05;
acli = 0xB4CB;
rs = 0x01;
diff --git a/tests/tcg/mipsel/test_dsp_r1_maddu.c b/tests/tcg/mipsel/test_dsp_r1_maddu.c
index af4bfcfe9df3..732e366b9afc 100644
--- a/tests/tcg/mipsel/test_dsp_r1_maddu.c
+++ b/tests/tcg/mipsel/test_dsp_r1_maddu.c
@@ -8,6 +8,8 @@ int main()
int acho, aclo;
int resulth, resultl;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
achi = 0x05;
acli = 0xB4CB;
rs = 0x01;
diff --git a/tests/tcg/mipsel/test_dsp_r1_maq_s_w_phl.c b/tests/tcg/mipsel/test_dsp_r1_maq_s_w_phl.c
index 0f7c070155a8..1842889ba43f 100644
--- a/tests/tcg/mipsel/test_dsp_r1_maq_s_w_phl.c
+++ b/tests/tcg/mipsel/test_dsp_r1_maq_s_w_phl.c
@@ -10,6 +10,8 @@ int main()
int resulth, resultl;
int resdsp;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
achi = 0x00000005;
acli = 0x0000B4CB;
rs = 0xFF060000;
diff --git a/tests/tcg/mipsel/test_dsp_r1_maq_s_w_phr.c b/tests/tcg/mipsel/test_dsp_r1_maq_s_w_phr.c
index 942722a530c2..5255ca8f527b 100644
--- a/tests/tcg/mipsel/test_dsp_r1_maq_s_w_phr.c
+++ b/tests/tcg/mipsel/test_dsp_r1_maq_s_w_phr.c
@@ -10,6 +10,8 @@ int main()
int resulth, resultl;
int resdsp;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
achi = 0x00000005;
acli = 0x0000B4CB;
rs = 0x0000FF06;
diff --git a/tests/tcg/mipsel/test_dsp_r1_maq_sa_w_phl.c b/tests/tcg/mipsel/test_dsp_r1_maq_sa_w_phl.c
index d83dce6f3272..90b109749350 100644
--- a/tests/tcg/mipsel/test_dsp_r1_maq_sa_w_phl.c
+++ b/tests/tcg/mipsel/test_dsp_r1_maq_sa_w_phl.c
@@ -10,6 +10,8 @@ int main()
int resulth, resultl;
int resdsp;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
achi = 0x00000000;
acli = 0x0000B4CB;
rs = 0xFF060000;
diff --git a/tests/tcg/mipsel/test_dsp_r1_maq_sa_w_phr.c b/tests/tcg/mipsel/test_dsp_r1_maq_sa_w_phr.c
index d2331118abb8..cbc05492f51a 100644
--- a/tests/tcg/mipsel/test_dsp_r1_maq_sa_w_phr.c
+++ b/tests/tcg/mipsel/test_dsp_r1_maq_sa_w_phr.c
@@ -10,6 +10,8 @@ int main()
int resulth, resultl;
int resdsp;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
achi = 0x00000000;
acli = 0x0000B4CB;
rs = 0x0000FF06;
diff --git a/tests/tcg/mipsel/test_dsp_r1_mfhi.c b/tests/tcg/mipsel/test_dsp_r1_mfhi.c
index 43a80669d1ea..c4f2cc00efbb 100644
--- a/tests/tcg/mipsel/test_dsp_r1_mfhi.c
+++ b/tests/tcg/mipsel/test_dsp_r1_mfhi.c
@@ -6,6 +6,8 @@ int main()
int achi, acho;
int result;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
achi = 0x004433;
result = 0x004433;
diff --git a/tests/tcg/mipsel/test_dsp_r1_mflo.c b/tests/tcg/mipsel/test_dsp_r1_mflo.c
index caeafdb05ce4..fad79768c687 100644
--- a/tests/tcg/mipsel/test_dsp_r1_mflo.c
+++ b/tests/tcg/mipsel/test_dsp_r1_mflo.c
@@ -6,6 +6,8 @@ int main()
int acli, aclo;
int result;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
acli = 0x004433;
result = 0x004433;
diff --git a/tests/tcg/mipsel/test_dsp_r1_modsub.c b/tests/tcg/mipsel/test_dsp_r1_modsub.c
index c294eebb519d..96d9bca2595d 100644
--- a/tests/tcg/mipsel/test_dsp_r1_modsub.c
+++ b/tests/tcg/mipsel/test_dsp_r1_modsub.c
@@ -6,6 +6,8 @@ int main()
int rd, rs, rt;
int result;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rs = 0xFFFFFFFF;
rt = 0x000000FF;
result = 0xFFFFFF00;
diff --git a/tests/tcg/mipsel/test_dsp_r1_msub.c b/tests/tcg/mipsel/test_dsp_r1_msub.c
index 5779e6f47ac7..ddcc144da129 100644
--- a/tests/tcg/mipsel/test_dsp_r1_msub.c
+++ b/tests/tcg/mipsel/test_dsp_r1_msub.c
@@ -7,6 +7,8 @@ int main()
int acho, aclo;
int resulth, resultl;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rs = 0x00BBAACC;
rt = 0x0B1C3D2F;
achi = 0x00004433;
diff --git a/tests/tcg/mipsel/test_dsp_r1_msubu.c b/tests/tcg/mipsel/test_dsp_r1_msubu.c
index e0f9b5a77ae3..7955f4e174b2 100644
--- a/tests/tcg/mipsel/test_dsp_r1_msubu.c
+++ b/tests/tcg/mipsel/test_dsp_r1_msubu.c
@@ -7,6 +7,8 @@ int main()
int acho, aclo;
int resulth, resultl;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rs = 0x00BBAACC;
rt = 0x0B1C3D2F;
achi = 0x00004433;
diff --git a/tests/tcg/mipsel/test_dsp_r1_mthi.c b/tests/tcg/mipsel/test_dsp_r1_mthi.c
index 43a80669d1ea..c4f2cc00efbb 100644
--- a/tests/tcg/mipsel/test_dsp_r1_mthi.c
+++ b/tests/tcg/mipsel/test_dsp_r1_mthi.c
@@ -6,6 +6,8 @@ int main()
int achi, acho;
int result;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
achi = 0x004433;
result = 0x004433;
diff --git a/tests/tcg/mipsel/test_dsp_r1_mthlip.c b/tests/tcg/mipsel/test_dsp_r1_mthlip.c
index 85f94d8450ea..61ed5aeb25eb 100644
--- a/tests/tcg/mipsel/test_dsp_r1_mthlip.c
+++ b/tests/tcg/mipsel/test_dsp_r1_mthlip.c
@@ -6,6 +6,8 @@ int main()
int rs, ach, acl, dsp;
int result, resulth, resultl;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
dsp = 0x07;
ach = 0x05;
acl = 0xB4CB;
diff --git a/tests/tcg/mipsel/test_dsp_r1_mtlo.c b/tests/tcg/mipsel/test_dsp_r1_mtlo.c
index caeafdb05ce4..fad79768c687 100644
--- a/tests/tcg/mipsel/test_dsp_r1_mtlo.c
+++ b/tests/tcg/mipsel/test_dsp_r1_mtlo.c
@@ -6,6 +6,8 @@ int main()
int acli, aclo;
int result;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
acli = 0x004433;
result = 0x004433;
diff --git a/tests/tcg/mipsel/test_dsp_r1_muleq_s_w_phl.c b/tests/tcg/mipsel/test_dsp_r1_muleq_s_w_phl.c
index b3a5370fe59e..157275550aab 100644
--- a/tests/tcg/mipsel/test_dsp_r1_muleq_s_w_phl.c
+++ b/tests/tcg/mipsel/test_dsp_r1_muleq_s_w_phl.c
@@ -6,6 +6,8 @@ int main()
int rd, rs, rt, dsp;
int result, resultdsp;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rs = 0x80001234;
rt = 0x80001234;
result = 0x7FFFFFFF;
diff --git a/tests/tcg/mipsel/test_dsp_r1_muleq_s_w_phr.c b/tests/tcg/mipsel/test_dsp_r1_muleq_s_w_phr.c
index 8066d7d02a1e..887ea0e6574f 100644
--- a/tests/tcg/mipsel/test_dsp_r1_muleq_s_w_phr.c
+++ b/tests/tcg/mipsel/test_dsp_r1_muleq_s_w_phr.c
@@ -6,6 +6,8 @@ int main()
int rd, rs, rt, dsp;
int result, resultdsp;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rs = 0x8000;
rt = 0x8000;
result = 0x7FFFFFFF;
diff --git a/tests/tcg/mipsel/test_dsp_r1_muleu_s_ph_qbl.c b/tests/tcg/mipsel/test_dsp_r1_muleu_s_ph_qbl.c
index 66a382806a21..caf2e9c0e5cc 100644
--- a/tests/tcg/mipsel/test_dsp_r1_muleu_s_ph_qbl.c
+++ b/tests/tcg/mipsel/test_dsp_r1_muleu_s_ph_qbl.c
@@ -6,6 +6,8 @@ int main()
int rd, rs, rt, dsp;
int result, resultdsp;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rs = 0x80001234;
rt = 0x80004321;
result = 0xFFFF0000;
diff --git a/tests/tcg/mipsel/test_dsp_r1_muleu_s_ph_qbr.c b/tests/tcg/mipsel/test_dsp_r1_muleu_s_ph_qbr.c
index 4cc6c8f7cfe1..6e16fe6384bb 100644
--- a/tests/tcg/mipsel/test_dsp_r1_muleu_s_ph_qbr.c
+++ b/tests/tcg/mipsel/test_dsp_r1_muleu_s_ph_qbr.c
@@ -6,6 +6,8 @@ int main()
int rd, rs, rt, dsp;
int result, resultdsp;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rs = 0x8000;
rt = 0x80004321;
result = 0xFFFF0000;
diff --git a/tests/tcg/mipsel/test_dsp_r1_mulq_rs_ph.c b/tests/tcg/mipsel/test_dsp_r1_mulq_rs_ph.c
index 370c2a801832..444cd7678631 100644
--- a/tests/tcg/mipsel/test_dsp_r1_mulq_rs_ph.c
+++ b/tests/tcg/mipsel/test_dsp_r1_mulq_rs_ph.c
@@ -6,6 +6,8 @@ int main()
int rd, rs, rt, dsp;
int result, resultdsp;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rs = 0x80001234;
rt = 0x80004321;
result = 0x7FFF098C;
diff --git a/tests/tcg/mipsel/test_dsp_r1_mult.c b/tests/tcg/mipsel/test_dsp_r1_mult.c
index 15e6fde92c0e..d8e834f153b4 100644
--- a/tests/tcg/mipsel/test_dsp_r1_mult.c
+++ b/tests/tcg/mipsel/test_dsp_r1_mult.c
@@ -6,6 +6,8 @@ int main()
int rs, rt, ach, acl;
int result, resulth, resultl;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rs = 0x00FFBBAA;
rt = 0x4B231000;
resulth = 0x4b0f01;
diff --git a/tests/tcg/mipsel/test_dsp_r1_multu.c b/tests/tcg/mipsel/test_dsp_r1_multu.c
index 85d36c1b621a..f628172d778c 100644
--- a/tests/tcg/mipsel/test_dsp_r1_multu.c
+++ b/tests/tcg/mipsel/test_dsp_r1_multu.c
@@ -6,6 +6,8 @@ int main()
int rs, rt, ach, acl;
int result, resulth, resultl;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rs = 0x00FFBBAA;
rt = 0x4B231000;
resulth = 0x4b0f01;
diff --git a/tests/tcg/mipsel/test_dsp_r1_packrl_ph.c b/tests/tcg/mipsel/test_dsp_r1_packrl_ph.c
index 1f8e69992503..9bbdf1946a6f 100644
--- a/tests/tcg/mipsel/test_dsp_r1_packrl_ph.c
+++ b/tests/tcg/mipsel/test_dsp_r1_packrl_ph.c
@@ -6,6 +6,8 @@ int main()
int rd, rs, rt;
int result;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rs = 0x12345678;
rt = 0x87654321;
result = 0x56788765;
diff --git a/tests/tcg/mipsel/test_dsp_r1_pick_ph.c b/tests/tcg/mipsel/test_dsp_r1_pick_ph.c
index 929a002e7544..c53b894f320e 100644
--- a/tests/tcg/mipsel/test_dsp_r1_pick_ph.c
+++ b/tests/tcg/mipsel/test_dsp_r1_pick_ph.c
@@ -6,6 +6,8 @@ int main()
int rd, rs, rt, dsp;
int result;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rs = 0x12345678;
rt = 0x87654321;
dsp = 0x0A000000;
diff --git a/tests/tcg/mipsel/test_dsp_r1_pick_qb.c b/tests/tcg/mipsel/test_dsp_r1_pick_qb.c
index a79047524662..2d848b8fbaf9 100644
--- a/tests/tcg/mipsel/test_dsp_r1_pick_qb.c
+++ b/tests/tcg/mipsel/test_dsp_r1_pick_qb.c
@@ -6,6 +6,8 @@ int main()
int rd, rs, rt, dsp;
int result;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rs = 0x12345678;
rt = 0x87654321;
dsp = 0x0f000000;
diff --git a/tests/tcg/mipsel/test_dsp_r1_preceq_w_phl.c b/tests/tcg/mipsel/test_dsp_r1_preceq_w_phl.c
index bf70bf7d3aec..af302e1032a9 100644
--- a/tests/tcg/mipsel/test_dsp_r1_preceq_w_phl.c
+++ b/tests/tcg/mipsel/test_dsp_r1_preceq_w_phl.c
@@ -6,6 +6,8 @@ int main()
int rd, rt;
int result;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rt = 0x87654321;
result = 0x87650000;
diff --git a/tests/tcg/mipsel/test_dsp_r1_preceq_w_phr.c b/tests/tcg/mipsel/test_dsp_r1_preceq_w_phr.c
index 3f885ef584e6..67986518faa1 100644
--- a/tests/tcg/mipsel/test_dsp_r1_preceq_w_phr.c
+++ b/tests/tcg/mipsel/test_dsp_r1_preceq_w_phr.c
@@ -6,6 +6,8 @@ int main()
int rd, rt;
int result;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rt = 0x87654321;
result = 0x43210000;
diff --git a/tests/tcg/mipsel/test_dsp_r1_precequ_ph_qbl.c b/tests/tcg/mipsel/test_dsp_r1_precequ_ph_qbl.c
index 63b7a9568345..130bd8236685 100644
--- a/tests/tcg/mipsel/test_dsp_r1_precequ_ph_qbl.c
+++ b/tests/tcg/mipsel/test_dsp_r1_precequ_ph_qbl.c
@@ -6,6 +6,8 @@ int main()
int rd, rt;
int result;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rt = 0x87654321;
result = 0x43803280;
diff --git a/tests/tcg/mipsel/test_dsp_r1_precequ_ph_qbla.c b/tests/tcg/mipsel/test_dsp_r1_precequ_ph_qbla.c
index 31627f0bd606..47821692d892 100644
--- a/tests/tcg/mipsel/test_dsp_r1_precequ_ph_qbla.c
+++ b/tests/tcg/mipsel/test_dsp_r1_precequ_ph_qbla.c
@@ -6,6 +6,8 @@ int main()
int rd, rt;
int result;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rt = 0x87654321;
result = 0x43802180;
diff --git a/tests/tcg/mipsel/test_dsp_r1_precequ_ph_qbr.c b/tests/tcg/mipsel/test_dsp_r1_precequ_ph_qbr.c
index b6f72d3cbfde..1c592f74746b 100644
--- a/tests/tcg/mipsel/test_dsp_r1_precequ_ph_qbr.c
+++ b/tests/tcg/mipsel/test_dsp_r1_precequ_ph_qbr.c
@@ -6,6 +6,8 @@ int main()
int rd, rt;
int result;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rt = 0x87654321;
result = 0x21801080;
diff --git a/tests/tcg/mipsel/test_dsp_r1_precequ_ph_qbra.c b/tests/tcg/mipsel/test_dsp_r1_precequ_ph_qbra.c
index 4764fd031d8a..cc7c8ef6a126 100644
--- a/tests/tcg/mipsel/test_dsp_r1_precequ_ph_qbra.c
+++ b/tests/tcg/mipsel/test_dsp_r1_precequ_ph_qbra.c
@@ -6,6 +6,8 @@ int main()
int rd, rt;
int result;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rt = 0x87654321;
result = 0x32801080;
diff --git a/tests/tcg/mipsel/test_dsp_r1_preceu_ph_qbl.c b/tests/tcg/mipsel/test_dsp_r1_preceu_ph_qbl.c
index fa95c26cc48f..ca10372c9c7c 100644
--- a/tests/tcg/mipsel/test_dsp_r1_preceu_ph_qbl.c
+++ b/tests/tcg/mipsel/test_dsp_r1_preceu_ph_qbl.c
@@ -6,6 +6,8 @@ int main()
int rd, rt;
int result;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rt = 0x87654321;
result = 0x00870065;
diff --git a/tests/tcg/mipsel/test_dsp_r1_preceu_ph_qbla.c b/tests/tcg/mipsel/test_dsp_r1_preceu_ph_qbla.c
index 021f21a74440..843c70fd57aa 100644
--- a/tests/tcg/mipsel/test_dsp_r1_preceu_ph_qbla.c
+++ b/tests/tcg/mipsel/test_dsp_r1_preceu_ph_qbla.c
@@ -6,6 +6,8 @@ int main()
int rd, rt;
int result;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rt = 0x87654321;
result = 0x00870043;
diff --git a/tests/tcg/mipsel/test_dsp_r1_preceu_ph_qbr.c b/tests/tcg/mipsel/test_dsp_r1_preceu_ph_qbr.c
index 03df18c72ca5..ab3680b40733 100644
--- a/tests/tcg/mipsel/test_dsp_r1_preceu_ph_qbr.c
+++ b/tests/tcg/mipsel/test_dsp_r1_preceu_ph_qbr.c
@@ -6,6 +6,8 @@ int main()
int rd, rt;
int result;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rt = 0x87654321;
result = 0x00430021;
diff --git a/tests/tcg/mipsel/test_dsp_r1_preceu_ph_qbra.c b/tests/tcg/mipsel/test_dsp_r1_preceu_ph_qbra.c
index 634327618cce..f729e035dd9c 100644
--- a/tests/tcg/mipsel/test_dsp_r1_preceu_ph_qbra.c
+++ b/tests/tcg/mipsel/test_dsp_r1_preceu_ph_qbra.c
@@ -6,6 +6,8 @@ int main()
int rd, rt;
int result;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rt = 0x87654321;
result = 0x00650021;
diff --git a/tests/tcg/mipsel/test_dsp_r1_precrq_ph_w.c b/tests/tcg/mipsel/test_dsp_r1_precrq_ph_w.c
index 25d45f1a9aa8..f4cb4b498b64 100644
--- a/tests/tcg/mipsel/test_dsp_r1_precrq_ph_w.c
+++ b/tests/tcg/mipsel/test_dsp_r1_precrq_ph_w.c
@@ -6,6 +6,8 @@ int main()
int rd, rs, rt;
int result;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rs = 0x12345678;
rt = 0x87654321;
result = 0x12348765;
diff --git a/tests/tcg/mipsel/test_dsp_r1_precrq_qb_ph.c b/tests/tcg/mipsel/test_dsp_r1_precrq_qb_ph.c
index fe23acce8c47..50c2b7697aa6 100644
--- a/tests/tcg/mipsel/test_dsp_r1_precrq_qb_ph.c
+++ b/tests/tcg/mipsel/test_dsp_r1_precrq_qb_ph.c
@@ -6,6 +6,8 @@ int main()
int rd, rs, rt;
int result;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rs = 0x12345678;
rt = 0x87654321;
result = 0x12568743;
diff --git a/tests/tcg/mipsel/test_dsp_r1_precrq_rs_ph_w.c b/tests/tcg/mipsel/test_dsp_r1_precrq_rs_ph_w.c
index da6845bf2423..3dca43c0630a 100644
--- a/tests/tcg/mipsel/test_dsp_r1_precrq_rs_ph_w.c
+++ b/tests/tcg/mipsel/test_dsp_r1_precrq_rs_ph_w.c
@@ -7,6 +7,8 @@ int main()
int dsp;
int result;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rs = 0x12345678;
rt = 0x87654321;
result = 0x12348765;
diff --git a/tests/tcg/mipsel/test_dsp_r1_precrqu_s_qb_ph.c b/tests/tcg/mipsel/test_dsp_r1_precrqu_s_qb_ph.c
index 7481d5af3a5b..7fab8bb0f3e9 100644
--- a/tests/tcg/mipsel/test_dsp_r1_precrqu_s_qb_ph.c
+++ b/tests/tcg/mipsel/test_dsp_r1_precrqu_s_qb_ph.c
@@ -7,6 +7,8 @@ int main()
int dsp;
int result;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rs = 0x12345678;
rt = 0x87657FFF;
result = 0x24AC00FF;
diff --git a/tests/tcg/mipsel/test_dsp_r1_raddu_w_qb.c b/tests/tcg/mipsel/test_dsp_r1_raddu_w_qb.c
index 77a983c0d20f..d611a4b853d9 100644
--- a/tests/tcg/mipsel/test_dsp_r1_raddu_w_qb.c
+++ b/tests/tcg/mipsel/test_dsp_r1_raddu_w_qb.c
@@ -6,6 +6,8 @@ int main()
int rd, rs;
int result;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rs = 0x12345678;
result = 0x114;
diff --git a/tests/tcg/mipsel/test_dsp_r1_rddsp.c b/tests/tcg/mipsel/test_dsp_r1_rddsp.c
index 2f3028503324..a08ff4fe965b 100644
--- a/tests/tcg/mipsel/test_dsp_r1_rddsp.c
+++ b/tests/tcg/mipsel/test_dsp_r1_rddsp.c
@@ -7,6 +7,8 @@ int main()
int ccond_i, outflag_i, efi_i, c_i, scount_i, pos_i;
int ccond_o, outflag_o, efi_o, c_o, scount_o, pos_o;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
ccond_i = 0x0000000C; /* 4 */
outflag_i = 0x0000001B; /* 3 */
efi_i = 0x00000001; /* 5 */
diff --git a/tests/tcg/mipsel/test_dsp_r1_repl_ph.c b/tests/tcg/mipsel/test_dsp_r1_repl_ph.c
index 21074953bdde..1d91dae105a2 100644
--- a/tests/tcg/mipsel/test_dsp_r1_repl_ph.c
+++ b/tests/tcg/mipsel/test_dsp_r1_repl_ph.c
@@ -5,6 +5,8 @@ int main()
{
int rd, result;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
result = 0x01BF01BF;
__asm
("repl.ph %0, 0x1BF\n\t"
diff --git a/tests/tcg/mipsel/test_dsp_r1_repl_qb.c b/tests/tcg/mipsel/test_dsp_r1_repl_qb.c
index 6631393ea131..e704a3a85fff 100644
--- a/tests/tcg/mipsel/test_dsp_r1_repl_qb.c
+++ b/tests/tcg/mipsel/test_dsp_r1_repl_qb.c
@@ -5,6 +5,8 @@ int main()
{
int rd, result;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
result = 0xBFBFBFBF;
__asm
("repl.qb %0, 0xBF\n\t"
diff --git a/tests/tcg/mipsel/test_dsp_r1_replv_ph.c b/tests/tcg/mipsel/test_dsp_r1_replv_ph.c
index 07fb15f1f795..7285f215b69d 100644
--- a/tests/tcg/mipsel/test_dsp_r1_replv_ph.c
+++ b/tests/tcg/mipsel/test_dsp_r1_replv_ph.c
@@ -6,6 +6,8 @@ int main()
int rd, rt;
int result;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rt = 0x12345678;
result = 0x56785678;
__asm
diff --git a/tests/tcg/mipsel/test_dsp_r1_replv_qb.c b/tests/tcg/mipsel/test_dsp_r1_replv_qb.c
index dd1271fedff0..a65b9299f976 100644
--- a/tests/tcg/mipsel/test_dsp_r1_replv_qb.c
+++ b/tests/tcg/mipsel/test_dsp_r1_replv_qb.c
@@ -6,6 +6,8 @@ int main()
int rd, rt;
int result;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rt = 0x12345678;
result = 0x78787878;
__asm
diff --git a/tests/tcg/mipsel/test_dsp_r1_shilo.c b/tests/tcg/mipsel/test_dsp_r1_shilo.c
index ce8ebc69c2ac..1066600f3085 100644
--- a/tests/tcg/mipsel/test_dsp_r1_shilo.c
+++ b/tests/tcg/mipsel/test_dsp_r1_shilo.c
@@ -6,6 +6,8 @@ int main()
int ach, acl;
int resulth, resultl;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
ach = 0xBBAACCFF;
acl = 0x1C3B001D;
diff --git a/tests/tcg/mipsel/test_dsp_r1_shilov.c b/tests/tcg/mipsel/test_dsp_r1_shilov.c
index e1d6cea4b6de..aa7838fdb96e 100644
--- a/tests/tcg/mipsel/test_dsp_r1_shilov.c
+++ b/tests/tcg/mipsel/test_dsp_r1_shilov.c
@@ -6,6 +6,8 @@ int main()
int rs, ach, acl;
int resulth, resultl;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rs = 0x0F;
ach = 0xBBAACCFF;
acl = 0x1C3B001D;
diff --git a/tests/tcg/mipsel/test_dsp_r1_shll_ph.c b/tests/tcg/mipsel/test_dsp_r1_shll_ph.c
index 5fa58ccf6374..7090aa5766bd 100644
--- a/tests/tcg/mipsel/test_dsp_r1_shll_ph.c
+++ b/tests/tcg/mipsel/test_dsp_r1_shll_ph.c
@@ -6,6 +6,8 @@ int main()
int rd, rt, dsp;
int result, resultdsp;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rt = 0x12345678;
result = 0xA000C000;
resultdsp = 1;
diff --git a/tests/tcg/mipsel/test_dsp_r1_shll_qb.c b/tests/tcg/mipsel/test_dsp_r1_shll_qb.c
index 729716d62618..7234f7229dd0 100644
--- a/tests/tcg/mipsel/test_dsp_r1_shll_qb.c
+++ b/tests/tcg/mipsel/test_dsp_r1_shll_qb.c
@@ -6,6 +6,8 @@ int main()
int rd, rt, dsp;
int result, resultdsp;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rt = 0x87654321;
result = 0x87654321;
resultdsp = 0x00;
diff --git a/tests/tcg/mipsel/test_dsp_r1_shll_s_ph.c b/tests/tcg/mipsel/test_dsp_r1_shll_s_ph.c
index 910fea3b317e..1cfc6222fe13 100644
--- a/tests/tcg/mipsel/test_dsp_r1_shll_s_ph.c
+++ b/tests/tcg/mipsel/test_dsp_r1_shll_s_ph.c
@@ -6,6 +6,8 @@ int main()
int rd, rt, dsp;
int result, resultdsp;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rt = 0x12345678;
result = 0x7FFF7FFF;
resultdsp = 0x01;
diff --git a/tests/tcg/mipsel/test_dsp_r1_shll_s_w.c b/tests/tcg/mipsel/test_dsp_r1_shll_s_w.c
index 628c7521027b..9ba756ca4fe7 100644
--- a/tests/tcg/mipsel/test_dsp_r1_shll_s_w.c
+++ b/tests/tcg/mipsel/test_dsp_r1_shll_s_w.c
@@ -6,6 +6,8 @@ int main()
int rd, rt, dsp;
int result, resultdsp;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rt = 0x82345678;
result = 0x82345678;
resultdsp = 0x00;
diff --git a/tests/tcg/mipsel/test_dsp_r1_shllv_ph.c b/tests/tcg/mipsel/test_dsp_r1_shllv_ph.c
index f98a6322dc1d..834189585424 100644
--- a/tests/tcg/mipsel/test_dsp_r1_shllv_ph.c
+++ b/tests/tcg/mipsel/test_dsp_r1_shllv_ph.c
@@ -6,6 +6,8 @@ int main()
int rd, rs, rt, dsp;
int result, resultdsp;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rs = 0x0;
rt = 0x12345678;
result = 0x12345678;
diff --git a/tests/tcg/mipsel/test_dsp_r1_shllv_qb.c b/tests/tcg/mipsel/test_dsp_r1_shllv_qb.c
index 6d8ff4a259ba..2db00c662a88 100644
--- a/tests/tcg/mipsel/test_dsp_r1_shllv_qb.c
+++ b/tests/tcg/mipsel/test_dsp_r1_shllv_qb.c
@@ -6,6 +6,8 @@ int main()
int rd, rs, rt, dsp;
int result, resultdsp;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rs = 0x03;
rt = 0x87654321;
result = 0x38281808;
diff --git a/tests/tcg/mipsel/test_dsp_r1_shllv_s_ph.c b/tests/tcg/mipsel/test_dsp_r1_shllv_s_ph.c
index fc9bd32765b8..51a7f6a35516 100644
--- a/tests/tcg/mipsel/test_dsp_r1_shllv_s_ph.c
+++ b/tests/tcg/mipsel/test_dsp_r1_shllv_s_ph.c
@@ -6,6 +6,8 @@ int main()
int rd, rs, rt, dsp;
int result, resultdsp;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rs = 0x0;
rt = 0x12345678;
result = 0x12345678;
diff --git a/tests/tcg/mipsel/test_dsp_r1_shllv_s_w.c b/tests/tcg/mipsel/test_dsp_r1_shllv_s_w.c
index 350c25617adc..752c9a2615fb 100644
--- a/tests/tcg/mipsel/test_dsp_r1_shllv_s_w.c
+++ b/tests/tcg/mipsel/test_dsp_r1_shllv_s_w.c
@@ -6,6 +6,8 @@ int main()
int rd, rs, rt, dsp;
int result, resultdsp;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rs = 0x0B;
rt = 0x12345678;
result = 0x7FFFFFFF;
diff --git a/tests/tcg/mipsel/test_dsp_r1_shra_ph.c b/tests/tcg/mipsel/test_dsp_r1_shra_ph.c
index 5b2d840a6bc5..625a2289051a 100644
--- a/tests/tcg/mipsel/test_dsp_r1_shra_ph.c
+++ b/tests/tcg/mipsel/test_dsp_r1_shra_ph.c
@@ -6,6 +6,8 @@ int main()
int rd, rt;
int result;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rt = 0x87654321;
result = 0xF0EC0864;
diff --git a/tests/tcg/mipsel/test_dsp_r1_shra_r_ph.c b/tests/tcg/mipsel/test_dsp_r1_shra_r_ph.c
index adc4ae68bdc3..10608405f232 100644
--- a/tests/tcg/mipsel/test_dsp_r1_shra_r_ph.c
+++ b/tests/tcg/mipsel/test_dsp_r1_shra_r_ph.c
@@ -6,6 +6,8 @@ int main()
int rd, rt;
int result;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rt = 0x87654321;
result = 0xF0ED0864;
diff --git a/tests/tcg/mipsel/test_dsp_r1_shra_r_w.c b/tests/tcg/mipsel/test_dsp_r1_shra_r_w.c
index ec0cf2c72ccb..cd71c81e1e95 100644
--- a/tests/tcg/mipsel/test_dsp_r1_shra_r_w.c
+++ b/tests/tcg/mipsel/test_dsp_r1_shra_r_w.c
@@ -6,6 +6,8 @@ int main()
int rd, rt;
int result;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rt = 0x87654321;
result = 0xF0ECA864;
diff --git a/tests/tcg/mipsel/test_dsp_r1_shrav_ph.c b/tests/tcg/mipsel/test_dsp_r1_shrav_ph.c
index 6e42aaf8e1a7..a0750eb5a9bc 100644
--- a/tests/tcg/mipsel/test_dsp_r1_shrav_ph.c
+++ b/tests/tcg/mipsel/test_dsp_r1_shrav_ph.c
@@ -6,6 +6,8 @@ int main()
int rd, rs, rt;
int result;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rs = 0x03;
rt = 0x87654321;
result = 0xF0EC0864;
diff --git a/tests/tcg/mipsel/test_dsp_r1_shrav_r_ph.c b/tests/tcg/mipsel/test_dsp_r1_shrav_r_ph.c
index f03b978d0544..b944765a494c 100644
--- a/tests/tcg/mipsel/test_dsp_r1_shrav_r_ph.c
+++ b/tests/tcg/mipsel/test_dsp_r1_shrav_r_ph.c
@@ -6,6 +6,8 @@ int main()
int rd, rs, rt;
int result;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rs = 0x03;
rt = 0x87654321;
result = 0xF0ED0864;
diff --git a/tests/tcg/mipsel/test_dsp_r1_shrav_r_w.c b/tests/tcg/mipsel/test_dsp_r1_shrav_r_w.c
index 2ab03bb5daae..002466d1c15d 100644
--- a/tests/tcg/mipsel/test_dsp_r1_shrav_r_w.c
+++ b/tests/tcg/mipsel/test_dsp_r1_shrav_r_w.c
@@ -6,6 +6,8 @@ int main()
int rd, rs, rt;
int result;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rs = 0x03;
rt = 0x87654321;
result = 0xF0ECA864;
diff --git a/tests/tcg/mipsel/test_dsp_r1_shrl_qb.c b/tests/tcg/mipsel/test_dsp_r1_shrl_qb.c
index a7e4e6a5e4f5..d00d69f82413 100644
--- a/tests/tcg/mipsel/test_dsp_r1_shrl_qb.c
+++ b/tests/tcg/mipsel/test_dsp_r1_shrl_qb.c
@@ -6,6 +6,8 @@ int main()
int rd, rt;
int result;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rt = 0x12345678;
result = 0x00010203;
diff --git a/tests/tcg/mipsel/test_dsp_r1_shrlv_qb.c b/tests/tcg/mipsel/test_dsp_r1_shrlv_qb.c
index db77f6d0e117..1f8f8852c205 100644
--- a/tests/tcg/mipsel/test_dsp_r1_shrlv_qb.c
+++ b/tests/tcg/mipsel/test_dsp_r1_shrlv_qb.c
@@ -6,6 +6,8 @@ int main()
int rd, rs, rt;
int result;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rs = 0x05;
rt = 0x12345678;
result = 0x00010203;
diff --git a/tests/tcg/mipsel/test_dsp_r1_subq_ph.c b/tests/tcg/mipsel/test_dsp_r1_subq_ph.c
index fdd7b38b647e..8c9a3abdfe92 100644
--- a/tests/tcg/mipsel/test_dsp_r1_subq_ph.c
+++ b/tests/tcg/mipsel/test_dsp_r1_subq_ph.c
@@ -6,6 +6,8 @@ int main()
int rd, rs, rt, dsp;
int result, resultdsp;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rs = 0x77777777;
rt = 0x67654321;
result = 0x10123456;
diff --git a/tests/tcg/mipsel/test_dsp_r1_subq_s_ph.c b/tests/tcg/mipsel/test_dsp_r1_subq_s_ph.c
index 64c89ebd5114..7436af4ce95b 100644
--- a/tests/tcg/mipsel/test_dsp_r1_subq_s_ph.c
+++ b/tests/tcg/mipsel/test_dsp_r1_subq_s_ph.c
@@ -6,6 +6,8 @@ int main()
int rd, rs, rt, dsp;
int result, resultdsp;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rs = 0x12345678;
rt = 0x87654321;
result = 0x7FFF1357;
diff --git a/tests/tcg/mipsel/test_dsp_r1_subq_s_w.c b/tests/tcg/mipsel/test_dsp_r1_subq_s_w.c
index 9d456a90f417..bd74f731d75e 100644
--- a/tests/tcg/mipsel/test_dsp_r1_subq_s_w.c
+++ b/tests/tcg/mipsel/test_dsp_r1_subq_s_w.c
@@ -6,6 +6,8 @@ int main()
int rd, rs, rt, dsp;
int result, resultdsp;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rs = 0x12345678;
rt = 0x87654321;
result = 0x7FFFFFFF;
diff --git a/tests/tcg/mipsel/test_dsp_r1_subu_qb.c b/tests/tcg/mipsel/test_dsp_r1_subu_qb.c
index 420909615526..4161424a8d37 100644
--- a/tests/tcg/mipsel/test_dsp_r1_subu_qb.c
+++ b/tests/tcg/mipsel/test_dsp_r1_subu_qb.c
@@ -6,6 +6,8 @@ int main()
int rd, rs, rt, dsp;
int result, resultdsp;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rs = 0x12345678;
rt = 0x87654321;
result = 0x8BCF1357;
diff --git a/tests/tcg/mipsel/test_dsp_r1_subu_s_qb.c b/tests/tcg/mipsel/test_dsp_r1_subu_s_qb.c
index 3d650533d171..4ac17d051b05 100644
--- a/tests/tcg/mipsel/test_dsp_r1_subu_s_qb.c
+++ b/tests/tcg/mipsel/test_dsp_r1_subu_s_qb.c
@@ -6,6 +6,8 @@ int main()
int rd, rs, rt, dsp;
int result, resultdsp;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rs = 0x12345678;
rt = 0x87654321;
result = 0x00001357;
diff --git a/tests/tcg/mipsel/test_dsp_r1_wrdsp.c b/tests/tcg/mipsel/test_dsp_r1_wrdsp.c
index dc54943a99e8..bd6e163d343e 100644
--- a/tests/tcg/mipsel/test_dsp_r1_wrdsp.c
+++ b/tests/tcg/mipsel/test_dsp_r1_wrdsp.c
@@ -7,6 +7,8 @@ int main()
int ccond_i, outflag_i, efi_i, c_i, scount_i, pos_i;
int ccond_o, outflag_o, efi_o, c_o, scount_o, pos_o;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
ccond_i = 0x000000BC; /* 4 */
outflag_i = 0x0000001B; /* 3 */
efi_i = 0x00000001; /* 5 */
diff --git a/tests/tcg/mipsel/test_dsp_r2_absq_s_qb.c b/tests/tcg/mipsel/test_dsp_r2_absq_s_qb.c
index af4683f30475..5269a7eb4692 100644
--- a/tests/tcg/mipsel/test_dsp_r2_absq_s_qb.c
+++ b/tests/tcg/mipsel/test_dsp_r2_absq_s_qb.c
@@ -6,6 +6,8 @@ int main()
int input, result, dsp;
int hope;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
input = 0x701BA35E;
hope = 0x701B5D5E;
diff --git a/tests/tcg/mipsel/test_dsp_r2_addqh_ph.c b/tests/tcg/mipsel/test_dsp_r2_addqh_ph.c
index 921f0eaf33c7..797386d9d9ba 100644
--- a/tests/tcg/mipsel/test_dsp_r2_addqh_ph.c
+++ b/tests/tcg/mipsel/test_dsp_r2_addqh_ph.c
@@ -6,6 +6,8 @@ int main()
int rd, rs, rt;
int result;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rs = 0x706A13FE;
rt = 0x13065174;
result = 0x41B832B9;
diff --git a/tests/tcg/mipsel/test_dsp_r2_addqh_r_ph.c b/tests/tcg/mipsel/test_dsp_r2_addqh_r_ph.c
index 213ba3725006..8bcb48f1d18d 100644
--- a/tests/tcg/mipsel/test_dsp_r2_addqh_r_ph.c
+++ b/tests/tcg/mipsel/test_dsp_r2_addqh_r_ph.c
@@ -6,6 +6,8 @@ int main()
int rd, rs, rt;
int result;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rs = 0x706A13FE;
rt = 0x13065174;
result = 0x41B832B9;
diff --git a/tests/tcg/mipsel/test_dsp_r2_addqh_r_w.c b/tests/tcg/mipsel/test_dsp_r2_addqh_r_w.c
index 75a75c50f32d..046ccbf8bd24 100644
--- a/tests/tcg/mipsel/test_dsp_r2_addqh_r_w.c
+++ b/tests/tcg/mipsel/test_dsp_r2_addqh_r_w.c
@@ -6,6 +6,8 @@ int main()
int rd, rs, rt;
int result;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rs = 0x00000010;
rt = 0x00000001;
result = 0x00000009;
diff --git a/tests/tcg/mipsel/test_dsp_r2_addqh_w.c b/tests/tcg/mipsel/test_dsp_r2_addqh_w.c
index de6926ebbb72..224e20e43691 100644
--- a/tests/tcg/mipsel/test_dsp_r2_addqh_w.c
+++ b/tests/tcg/mipsel/test_dsp_r2_addqh_w.c
@@ -6,6 +6,8 @@ int main()
int rd, rs, rt;
int result;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rs = 0x00000010;
rt = 0x00000001;
result = 0x00000008;
diff --git a/tests/tcg/mipsel/test_dsp_r2_addu_ph.c b/tests/tcg/mipsel/test_dsp_r2_addu_ph.c
index 1d7a25a2a773..9511a29ae14f 100644
--- a/tests/tcg/mipsel/test_dsp_r2_addu_ph.c
+++ b/tests/tcg/mipsel/test_dsp_r2_addu_ph.c
@@ -7,6 +7,8 @@ int main()
int dsp;
int result;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rs = 0x00FF00FF;
rt = 0x00010001;
result = 0x01000100;
diff --git a/tests/tcg/mipsel/test_dsp_r2_addu_s_ph.c b/tests/tcg/mipsel/test_dsp_r2_addu_s_ph.c
index 979651bfc9ac..0b7c09bbd63d 100644
--- a/tests/tcg/mipsel/test_dsp_r2_addu_s_ph.c
+++ b/tests/tcg/mipsel/test_dsp_r2_addu_s_ph.c
@@ -7,6 +7,8 @@ int main()
int dsp;
int result;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rs = 0x00FE00FE;
rt = 0x00020001;
result = 0x010000FF;
diff --git a/tests/tcg/mipsel/test_dsp_r2_adduh_qb.c b/tests/tcg/mipsel/test_dsp_r2_adduh_qb.c
index a1f5d631b52e..6f82890be468 100644
--- a/tests/tcg/mipsel/test_dsp_r2_adduh_qb.c
+++ b/tests/tcg/mipsel/test_dsp_r2_adduh_qb.c
@@ -6,6 +6,8 @@ int main()
int rd, rs, rt;
int result;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rs = 0xFF0055AA;
rt = 0x0113421B;
result = 0x80094B62;
diff --git a/tests/tcg/mipsel/test_dsp_r2_adduh_r_qb.c b/tests/tcg/mipsel/test_dsp_r2_adduh_r_qb.c
index 81e98c190d2b..5ed7c1825c3b 100644
--- a/tests/tcg/mipsel/test_dsp_r2_adduh_r_qb.c
+++ b/tests/tcg/mipsel/test_dsp_r2_adduh_r_qb.c
@@ -6,6 +6,8 @@ int main()
int rd, rs, rt;
int result;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rs = 0xFF0055AA;
rt = 0x01112211;
result = 0x80093C5E;
diff --git a/tests/tcg/mipsel/test_dsp_r2_append.c b/tests/tcg/mipsel/test_dsp_r2_append.c
index 9a91e1650dbd..b9437c6b1d2b 100644
--- a/tests/tcg/mipsel/test_dsp_r2_append.c
+++ b/tests/tcg/mipsel/test_dsp_r2_append.c
@@ -6,6 +6,8 @@ int main()
int rs, rt;
int result;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rs = 0xFF0055AA;
rt = 0x0113421B;
result = 0x02268436;
diff --git a/tests/tcg/mipsel/test_dsp_r2_balign.c b/tests/tcg/mipsel/test_dsp_r2_balign.c
index 537cf0451cc8..4c68722f2779 100644
--- a/tests/tcg/mipsel/test_dsp_r2_balign.c
+++ b/tests/tcg/mipsel/test_dsp_r2_balign.c
@@ -6,6 +6,8 @@ int main()
int rs, rt;
int result;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rs = 0xFF0055AA;
rt = 0x0113421B;
result = 0x13421BFF;
diff --git a/tests/tcg/mipsel/test_dsp_r2_cmpgdu_eq_qb.c b/tests/tcg/mipsel/test_dsp_r2_cmpgdu_eq_qb.c
index 2d6340d6fb12..6314772051bd 100644
--- a/tests/tcg/mipsel/test_dsp_r2_cmpgdu_eq_qb.c
+++ b/tests/tcg/mipsel/test_dsp_r2_cmpgdu_eq_qb.c
@@ -7,6 +7,8 @@ int main()
int dsp;
int result;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rs = 0x11777066;
rt = 0x55AA70FF;
result = 0x02;
diff --git a/tests/tcg/mipsel/test_dsp_r2_cmpgdu_le_qb.c b/tests/tcg/mipsel/test_dsp_r2_cmpgdu_le_qb.c
index a0ecdca2ac2e..ec612e204dad 100644
--- a/tests/tcg/mipsel/test_dsp_r2_cmpgdu_le_qb.c
+++ b/tests/tcg/mipsel/test_dsp_r2_cmpgdu_le_qb.c
@@ -7,6 +7,8 @@ int main()
int dsp;
int result;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rs = 0x11777066;
rt = 0x55AA70FF;
result = 0x0F;
diff --git a/tests/tcg/mipsel/test_dsp_r2_cmpgdu_lt_qb.c b/tests/tcg/mipsel/test_dsp_r2_cmpgdu_lt_qb.c
index dba99e392c29..cbdcdc78dc8e 100644
--- a/tests/tcg/mipsel/test_dsp_r2_cmpgdu_lt_qb.c
+++ b/tests/tcg/mipsel/test_dsp_r2_cmpgdu_lt_qb.c
@@ -7,6 +7,8 @@ int main()
int dsp;
int result;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rs = 0x11777066;
rt = 0x55AA70FF;
result = 0x0D;
diff --git a/tests/tcg/mipsel/test_dsp_r2_dpa_w_ph.c b/tests/tcg/mipsel/test_dsp_r2_dpa_w_ph.c
index fae49f10eb95..3b58d4c66863 100644
--- a/tests/tcg/mipsel/test_dsp_r2_dpa_w_ph.c
+++ b/tests/tcg/mipsel/test_dsp_r2_dpa_w_ph.c
@@ -7,6 +7,8 @@ int main()
int ach = 5, acl = 5;
int resulth, resultl;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rs = 0x00FF00FF;
rt = 0x00010002;
resulth = 0x05;
diff --git a/tests/tcg/mipsel/test_dsp_r2_dpaqx_s_w_ph.c b/tests/tcg/mipsel/test_dsp_r2_dpaqx_s_w_ph.c
index ce8783024685..a7926b423f48 100644
--- a/tests/tcg/mipsel/test_dsp_r2_dpaqx_s_w_ph.c
+++ b/tests/tcg/mipsel/test_dsp_r2_dpaqx_s_w_ph.c
@@ -7,6 +7,8 @@ int main()
int ach = 5, acl = 5;
int resulth, resultl, resultdsp;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rs = 0x800000FF;
rt = 0x00018000;
resulth = 0x05;
diff --git a/tests/tcg/mipsel/test_dsp_r2_dpaqx_sa_w_ph.c b/tests/tcg/mipsel/test_dsp_r2_dpaqx_sa_w_ph.c
index d551d64ae293..e7a4e5ff255d 100644
--- a/tests/tcg/mipsel/test_dsp_r2_dpaqx_sa_w_ph.c
+++ b/tests/tcg/mipsel/test_dsp_r2_dpaqx_sa_w_ph.c
@@ -7,6 +7,8 @@ int main()
int ach, acl;
int resulth, resultl, resultdsp;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
ach = 0x00000005;
acl = 0x00000005;
rs = 0x00FF00FF;
diff --git a/tests/tcg/mipsel/test_dsp_r2_dpax_w_ph.c b/tests/tcg/mipsel/test_dsp_r2_dpax_w_ph.c
index 514797cfd1b4..f925c97ae12d 100644
--- a/tests/tcg/mipsel/test_dsp_r2_dpax_w_ph.c
+++ b/tests/tcg/mipsel/test_dsp_r2_dpax_w_ph.c
@@ -7,6 +7,8 @@ int main()
int ach = 5, acl = 5;
int resulth, resultl;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rs = 0x00FF00FF;
rt = 0x00010002;
resulth = 0x05;
diff --git a/tests/tcg/mipsel/test_dsp_r2_dps_w_ph.c b/tests/tcg/mipsel/test_dsp_r2_dps_w_ph.c
index f51f9b9d13d7..56393dd21b53 100644
--- a/tests/tcg/mipsel/test_dsp_r2_dps_w_ph.c
+++ b/tests/tcg/mipsel/test_dsp_r2_dps_w_ph.c
@@ -7,6 +7,8 @@ int main()
int ach = 5, acl = 5;
int resulth, resultl;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rs = 0x00FF00FF;
rt = 0x00010002;
resulth = 0x04;
diff --git a/tests/tcg/mipsel/test_dsp_r2_dpsqx_s_w_ph.c b/tests/tcg/mipsel/test_dsp_r2_dpsqx_s_w_ph.c
index e40543fd8292..ce711058d3a6 100644
--- a/tests/tcg/mipsel/test_dsp_r2_dpsqx_s_w_ph.c
+++ b/tests/tcg/mipsel/test_dsp_r2_dpsqx_s_w_ph.c
@@ -7,6 +7,8 @@ int main()
int ach = 5, acl = 5;
int resulth, resultl, resultdsp;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rs = 0xBC0123AD;
rt = 0x01643721;
resulth = 0x00000005;
diff --git a/tests/tcg/mipsel/test_dsp_r2_dpsqx_sa_w_ph.c b/tests/tcg/mipsel/test_dsp_r2_dpsqx_sa_w_ph.c
index 7da278eacc0e..6177894090ed 100644
--- a/tests/tcg/mipsel/test_dsp_r2_dpsqx_sa_w_ph.c
+++ b/tests/tcg/mipsel/test_dsp_r2_dpsqx_sa_w_ph.c
@@ -7,6 +7,8 @@ int main()
int ach = 5, acl = 5;
int resulth, resultl, resultdsp;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rs = 0xBC0123AD;
rt = 0x01643721;
resulth = 0x00;
diff --git a/tests/tcg/mipsel/test_dsp_r2_dpsx_w_ph.c b/tests/tcg/mipsel/test_dsp_r2_dpsx_w_ph.c
index bb49a4031d34..ac508e25c9f3 100644
--- a/tests/tcg/mipsel/test_dsp_r2_dpsx_w_ph.c
+++ b/tests/tcg/mipsel/test_dsp_r2_dpsx_w_ph.c
@@ -7,6 +7,8 @@ int main()
int ach = 5, acl = 5;
int resulth, resultl;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rs = 0xBC0123AD;
rt = 0x01643721;
resulth = 0x05;
diff --git a/tests/tcg/mipsel/test_dsp_r2_mul_ph.c b/tests/tcg/mipsel/test_dsp_r2_mul_ph.c
index c7e9d60d12e2..d8c3b6a1be7b 100644
--- a/tests/tcg/mipsel/test_dsp_r2_mul_ph.c
+++ b/tests/tcg/mipsel/test_dsp_r2_mul_ph.c
@@ -6,6 +6,8 @@ int main()
int rd, rs, rt, dsp;
int result, resultdsp;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rs = 0x03FB1234;
rt = 0x0BCC4321;
result = 0xF504F4B4;
diff --git a/tests/tcg/mipsel/test_dsp_r2_mul_s_ph.c b/tests/tcg/mipsel/test_dsp_r2_mul_s_ph.c
index 33da110de869..6feac41dd6e5 100644
--- a/tests/tcg/mipsel/test_dsp_r2_mul_s_ph.c
+++ b/tests/tcg/mipsel/test_dsp_r2_mul_s_ph.c
@@ -6,6 +6,8 @@ int main()
int rd, rs, rt, dsp;
int result, resultdsp;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rs = 0x03FB1234;
rt = 0x0BCC4321;
result = 0x7fff7FFF;
diff --git a/tests/tcg/mipsel/test_dsp_r2_mulq_rs_w.c b/tests/tcg/mipsel/test_dsp_r2_mulq_rs_w.c
index 7ba633bc17f7..5754484735dd 100644
--- a/tests/tcg/mipsel/test_dsp_r2_mulq_rs_w.c
+++ b/tests/tcg/mipsel/test_dsp_r2_mulq_rs_w.c
@@ -6,6 +6,8 @@ int main()
int rd, rs, rt, dsp;
int result, resultdsp;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rs = 0x80001234;
rt = 0x80004321;
result = 0x7FFFAAAB;
diff --git a/tests/tcg/mipsel/test_dsp_r2_mulq_s_ph.c b/tests/tcg/mipsel/test_dsp_r2_mulq_s_ph.c
index 00e015542e69..132f50d0a899 100644
--- a/tests/tcg/mipsel/test_dsp_r2_mulq_s_ph.c
+++ b/tests/tcg/mipsel/test_dsp_r2_mulq_s_ph.c
@@ -6,6 +6,8 @@ int main()
int rd, rs, rt, dsp;
int result, resultdsp;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rs = 0x80000000;
rt = 0x0ffc0000;
result = 0xF0040000;
diff --git a/tests/tcg/mipsel/test_dsp_r2_mulq_s_w.c b/tests/tcg/mipsel/test_dsp_r2_mulq_s_w.c
index 9c2be06cc08a..ffc802fb0e66 100644
--- a/tests/tcg/mipsel/test_dsp_r2_mulq_s_w.c
+++ b/tests/tcg/mipsel/test_dsp_r2_mulq_s_w.c
@@ -6,6 +6,8 @@ int main()
int rd, rs, rt, dsp;
int result, resultdsp;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rs = 0x80001234;
rt = 0x80004321;
result = 0x7FFFAAAB;
diff --git a/tests/tcg/mipsel/test_dsp_r2_mulsa_w_ph.c b/tests/tcg/mipsel/test_dsp_r2_mulsa_w_ph.c
index a6940939ca50..d55031f82d58 100644
--- a/tests/tcg/mipsel/test_dsp_r2_mulsa_w_ph.c
+++ b/tests/tcg/mipsel/test_dsp_r2_mulsa_w_ph.c
@@ -6,6 +6,8 @@ int main()
int rs, rt, ach, acl;
int resulth, resultl;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
ach = 0x05;
acl = 0x00BBDDCC;
rs = 0x80001234;
diff --git a/tests/tcg/mipsel/test_dsp_r2_mulsaq_s_w_ph.c b/tests/tcg/mipsel/test_dsp_r2_mulsaq_s_w_ph.c
index 06c91a43e7ea..3ec7b4c50b5b 100644
--- a/tests/tcg/mipsel/test_dsp_r2_mulsaq_s_w_ph.c
+++ b/tests/tcg/mipsel/test_dsp_r2_mulsaq_s_w_ph.c
@@ -6,6 +6,8 @@ int main()
int rs, rt, ach, acl;
int resulth, resultl;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
ach = 0x05;
acl = 0x00BBDDCC;
rs = 0x80001234;
diff --git a/tests/tcg/mipsel/test_dsp_r2_precr_qb_ph.c b/tests/tcg/mipsel/test_dsp_r2_precr_qb_ph.c
index 3a2b3fde0573..ee7eb8f99b80 100644
--- a/tests/tcg/mipsel/test_dsp_r2_precr_qb_ph.c
+++ b/tests/tcg/mipsel/test_dsp_r2_precr_qb_ph.c
@@ -6,6 +6,8 @@ int main()
int rd, rs, rt;
int result;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rs = 0x12345678;
rt = 0x87654321;
result = 0x34786521;
diff --git a/tests/tcg/mipsel/test_dsp_r2_precr_sra_ph_w.c b/tests/tcg/mipsel/test_dsp_r2_precr_sra_ph_w.c
index 5c9baab03d00..48bbf3ce49ac 100644
--- a/tests/tcg/mipsel/test_dsp_r2_precr_sra_ph_w.c
+++ b/tests/tcg/mipsel/test_dsp_r2_precr_sra_ph_w.c
@@ -6,6 +6,8 @@ int main()
int rs, rt;
int result;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rs = 0x12345678;
rt = 0x87654321;
result = 0x43215678;
diff --git a/tests/tcg/mipsel/test_dsp_r2_precr_sra_r_ph_w.c b/tests/tcg/mipsel/test_dsp_r2_precr_sra_r_ph_w.c
index 6474a108c057..396449764ae3 100644
--- a/tests/tcg/mipsel/test_dsp_r2_precr_sra_r_ph_w.c
+++ b/tests/tcg/mipsel/test_dsp_r2_precr_sra_r_ph_w.c
@@ -6,6 +6,8 @@ int main()
int rs, rt;
int result;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rs = 0x12345678;
rt = 0x87654321;
result = 0x43215678;
diff --git a/tests/tcg/mipsel/test_dsp_r2_prepend.c b/tests/tcg/mipsel/test_dsp_r2_prepend.c
index f6bcd47b2da9..736a4e2dd499 100644
--- a/tests/tcg/mipsel/test_dsp_r2_prepend.c
+++ b/tests/tcg/mipsel/test_dsp_r2_prepend.c
@@ -6,6 +6,8 @@ int main()
int rs, rt;
int result;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rs = 0x12345678;
rt = 0x87654321;
result = 0x87654321;
diff --git a/tests/tcg/mipsel/test_dsp_r2_shra_qb.c b/tests/tcg/mipsel/test_dsp_r2_shra_qb.c
index 48193de87ad0..530b79d39068 100644
--- a/tests/tcg/mipsel/test_dsp_r2_shra_qb.c
+++ b/tests/tcg/mipsel/test_dsp_r2_shra_qb.c
@@ -6,6 +6,8 @@ int main()
int rd, rt;
int result;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rt = 0x12345678;
result = 0x02060A0F;
diff --git a/tests/tcg/mipsel/test_dsp_r2_shra_r_qb.c b/tests/tcg/mipsel/test_dsp_r2_shra_r_qb.c
index 29afa0e4b07b..d38f4cb70825 100644
--- a/tests/tcg/mipsel/test_dsp_r2_shra_r_qb.c
+++ b/tests/tcg/mipsel/test_dsp_r2_shra_r_qb.c
@@ -6,6 +6,8 @@ int main()
int rd, rt;
int result;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rt = 0x12345678;
result = 0x02070B0F;
diff --git a/tests/tcg/mipsel/test_dsp_r2_shrav_qb.c b/tests/tcg/mipsel/test_dsp_r2_shrav_qb.c
index b21e1b7ca64a..2627285ac08d 100644
--- a/tests/tcg/mipsel/test_dsp_r2_shrav_qb.c
+++ b/tests/tcg/mipsel/test_dsp_r2_shrav_qb.c
@@ -6,6 +6,8 @@ int main()
int rd, rs, rt;
int result;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rs = 0x03;
rt = 0x12345678;
result = 0x02060A0F;
diff --git a/tests/tcg/mipsel/test_dsp_r2_shrav_r_qb.c b/tests/tcg/mipsel/test_dsp_r2_shrav_r_qb.c
index 9ea8aa0cbb90..7527e4ef4fb5 100644
--- a/tests/tcg/mipsel/test_dsp_r2_shrav_r_qb.c
+++ b/tests/tcg/mipsel/test_dsp_r2_shrav_r_qb.c
@@ -6,6 +6,8 @@ int main()
int rd, rs, rt;
int result;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rs = 0x03;
rt = 0x12345678;
result = 0x02070B0F;
diff --git a/tests/tcg/mipsel/test_dsp_r2_shrl_ph.c b/tests/tcg/mipsel/test_dsp_r2_shrl_ph.c
index 724b9a7a4691..8ce0a4ef26a1 100644
--- a/tests/tcg/mipsel/test_dsp_r2_shrl_ph.c
+++ b/tests/tcg/mipsel/test_dsp_r2_shrl_ph.c
@@ -6,6 +6,8 @@ int main()
int rd, rt;
int result;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rt = 0x12345678;
result = 0x009102B3;
diff --git a/tests/tcg/mipsel/test_dsp_r2_shrlv_ph.c b/tests/tcg/mipsel/test_dsp_r2_shrlv_ph.c
index ac79aa69acf0..7bff8170422a 100644
--- a/tests/tcg/mipsel/test_dsp_r2_shrlv_ph.c
+++ b/tests/tcg/mipsel/test_dsp_r2_shrlv_ph.c
@@ -6,6 +6,8 @@ int main()
int rd, rs, rt;
int result;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rs = 0x05;
rt = 0x12345678;
result = 0x009102B3;
diff --git a/tests/tcg/mipsel/test_dsp_r2_subqh_ph.c b/tests/tcg/mipsel/test_dsp_r2_subqh_ph.c
index dbc096734ceb..cadd988dea43 100644
--- a/tests/tcg/mipsel/test_dsp_r2_subqh_ph.c
+++ b/tests/tcg/mipsel/test_dsp_r2_subqh_ph.c
@@ -6,6 +6,8 @@ int main()
int rd, rs, rt;
int result;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rs = 0x12345678;
rt = 0x87654321;
result = 0x456709AB;
diff --git a/tests/tcg/mipsel/test_dsp_r2_subqh_r_ph.c b/tests/tcg/mipsel/test_dsp_r2_subqh_r_ph.c
index 24ef0f1aeb91..53a2e677c6bf 100644
--- a/tests/tcg/mipsel/test_dsp_r2_subqh_r_ph.c
+++ b/tests/tcg/mipsel/test_dsp_r2_subqh_r_ph.c
@@ -6,6 +6,8 @@ int main()
int rd, rs, rt;
int result;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rs = 0x12345678;
rt = 0x87654321;
result = 0x456809AC;
diff --git a/tests/tcg/mipsel/test_dsp_r2_subqh_r_w.c b/tests/tcg/mipsel/test_dsp_r2_subqh_r_w.c
index d460f8630fae..fc97a1984cef 100644
--- a/tests/tcg/mipsel/test_dsp_r2_subqh_r_w.c
+++ b/tests/tcg/mipsel/test_dsp_r2_subqh_r_w.c
@@ -6,6 +6,8 @@ int main()
int rd, rs, rt;
int result;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rs = 0x12345678;
rt = 0x87654321;
result = 0x456789AC;
diff --git a/tests/tcg/mipsel/test_dsp_r2_subqh_w.c b/tests/tcg/mipsel/test_dsp_r2_subqh_w.c
index 42be3deb80a3..6c8db811b935 100644
--- a/tests/tcg/mipsel/test_dsp_r2_subqh_w.c
+++ b/tests/tcg/mipsel/test_dsp_r2_subqh_w.c
@@ -6,6 +6,8 @@ int main()
int rd, rs, rt;
int result;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rs = 0x12345678;
rt = 0x87654321;
result = 0x456789AB;
diff --git a/tests/tcg/mipsel/test_dsp_r2_subu_ph.c b/tests/tcg/mipsel/test_dsp_r2_subu_ph.c
index 0d39a017c79d..209d88c2c7b2 100644
--- a/tests/tcg/mipsel/test_dsp_r2_subu_ph.c
+++ b/tests/tcg/mipsel/test_dsp_r2_subu_ph.c
@@ -6,6 +6,8 @@ int main()
int rd, rs, rt, dsp;
int result, resultdsp;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rs = 0x87654321;
rt = 0x11111111;
result = 0x76543210;
diff --git a/tests/tcg/mipsel/test_dsp_r2_subu_s_ph.c b/tests/tcg/mipsel/test_dsp_r2_subu_s_ph.c
index 8e4da4f3e544..0ca208fe4bca 100644
--- a/tests/tcg/mipsel/test_dsp_r2_subu_s_ph.c
+++ b/tests/tcg/mipsel/test_dsp_r2_subu_s_ph.c
@@ -6,6 +6,8 @@ int main()
int rd, rs, rt, dsp;
int result, resultdsp;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rs = 0x87654321;
rt = 0x12345678;
result = 0x75310000;
diff --git a/tests/tcg/mipsel/test_dsp_r2_subuh_qb.c b/tests/tcg/mipsel/test_dsp_r2_subuh_qb.c
index 92cfc764b8c9..0dce73bbea39 100644
--- a/tests/tcg/mipsel/test_dsp_r2_subuh_qb.c
+++ b/tests/tcg/mipsel/test_dsp_r2_subuh_qb.c
@@ -6,6 +6,8 @@ int main()
int rd, rs, rt;
int result;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rs = 0x12345678;
rt = 0x87654321;
result = 0xC5E7092B;
diff --git a/tests/tcg/mipsel/test_dsp_r2_subuh_r_qb.c b/tests/tcg/mipsel/test_dsp_r2_subuh_r_qb.c
index dac81d47db60..dc83aa5907aa 100644
--- a/tests/tcg/mipsel/test_dsp_r2_subuh_r_qb.c
+++ b/tests/tcg/mipsel/test_dsp_r2_subuh_r_qb.c
@@ -6,6 +6,8 @@ int main()
int rd, rs, rt;
int result;
+ __asm("wrdsp $zero, 0x3f\n\t");
+
rs = 0x12345678;
rt = 0x87654321;
result = 0xC6E80A2C;
--
2.55.0
next prev parent reply other threads:[~2026-10-28 19:22 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-28 19:21 [PATCH 0/4] tests/tcg: Massage MIPS tests for easier maintenance Philippe Mathieu-Daudé
2026-10-28 19:21 ` Philippe Mathieu-Daudé [this message]
2026-10-28 19:21 ` [PATCH 2/4] tests/tcg/mips: Group DSP tests Philippe Mathieu-Daudé
2026-10-28 19:21 ` [PATCH 3/4] tests/tcg/mips: Group Release 6 tests Philippe Mathieu-Daudé
2026-10-28 19:21 ` [PATCH 4/4] tests/tcg/mips: Group MSA tests Philippe Mathieu-Daudé
2026-10-28 20:07 ` [PATCH 0/4] tests/tcg: Massage MIPS tests for easier maintenance Pierrick Bouvier
2026-10-29 7:04 ` Philippe Mathieu-Daudé
2026-10-29 7:47 ` Pierrick Bouvier
2026-10-29 8:16 ` Philippe Mathieu-Daudé
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=20261028192124.30941-2-philmd@oss.qualcomm.com \
--to=philmd@oss.qualcomm.com \
--cc=arikalo@gmail.com \
--cc=aurelien@aurel32.net \
--cc=jiaxun.yang@flygoat.com \
--cc=pierrick.bouvier@oss.qualcomm.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.