On 11/30/2017 10:41 AM, Eric Blake wrote: > It is more typical to provide the ';' by the caller of a macro > than to embed it in the macro itself; this is because syntax > highlight engines can get confused if a macro is called without > a semicolon before the closing '}'. > > Signed-off-by: Eric Blake <ebl...@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <f4...@amsat.org> > --- > target/mips/msa_helper.c | 34 ++++++++++++++++++---------------- > 1 file changed, 18 insertions(+), 16 deletions(-) > > diff --git a/target/mips/msa_helper.c b/target/mips/msa_helper.c > index f167a42655..8fb7a369ca 100644 > --- a/target/mips/msa_helper.c > +++ b/target/mips/msa_helper.c > @@ -682,13 +682,13 @@ static inline int64_t msa_mod_u_df(uint32_t df, int64_t > arg1, int64_t arg2) > do { \ > e = SIGNED_EVEN(a, df); \ > o = SIGNED_ODD(a, df); \ > - } while (0); > + } while (0) > > #define UNSIGNED_EXTRACT(e, o, a, df) \ > do { \ > e = UNSIGNED_EVEN(a, df); \ > o = UNSIGNED_ODD(a, df); \ > - } while (0); > + } while (0) > > static inline int64_t msa_dotp_s_df(uint32_t df, int64_t arg1, int64_t arg2) > { > @@ -1120,9 +1120,11 @@ void helper_msa_splat_df(CPUMIPSState *env, uint32_t > df, uint32_t wd, > #define MSA_LOOP_COND_D MSA_LOOP_COND(DF_DOUBLE) > > #define MSA_LOOP(DF) \ > + do { \ > for (i = 0; i < (MSA_LOOP_COND_ ## DF) ; i++) { \ > - MSA_DO_ ## DF \ > - } > + MSA_DO_ ## DF; \ > + } \ > + } while (0) > > #define MSA_FN_DF(FUNC) \ > void helper_msa_##FUNC(CPUMIPSState *env, uint32_t df, uint32_t wd, \ > @@ -1135,17 +1137,17 @@ void helper_msa_##FUNC(CPUMIPSState *env, uint32_t > df, uint32_t wd, \ > uint32_t i; \ > switch (df) { \ > case DF_BYTE: \ > - MSA_LOOP_B \ > + MSA_LOOP_B; \ > break; \ > case DF_HALF: \ > - MSA_LOOP_H \ > + MSA_LOOP_H; \ > break; \ > case DF_WORD: \ > - MSA_LOOP_W \ > + MSA_LOOP_W; \ > break; \ > case DF_DOUBLE: \ > - MSA_LOOP_D \ > - break; \ > + MSA_LOOP_D; \ > + break; \ > default: \ > assert(0); \ > } \ > @@ -1168,7 +1170,7 @@ void helper_msa_##FUNC(CPUMIPSState *env, uint32_t df, > uint32_t wd, \ > do { \ > R##DF(pwx, i) = pwt->DF[2*i]; \ > L##DF(pwx, i) = pws->DF[2*i]; \ > - } while (0); > + } while (0) > MSA_FN_DF(pckev_df) > #undef MSA_DO > > @@ -1176,7 +1178,7 @@ MSA_FN_DF(pckev_df) > do { \ > R##DF(pwx, i) = pwt->DF[2*i+1]; \ > L##DF(pwx, i) = pws->DF[2*i+1]; \ > - } while (0); > + } while (0) > MSA_FN_DF(pckod_df) > #undef MSA_DO > > @@ -1184,7 +1186,7 @@ MSA_FN_DF(pckod_df) > do { \ > pwx->DF[2*i] = L##DF(pwt, i); \ > pwx->DF[2*i+1] = L##DF(pws, i); \ > - } while (0); > + } while (0) > MSA_FN_DF(ilvl_df) > #undef MSA_DO > > @@ -1192,7 +1194,7 @@ MSA_FN_DF(ilvl_df) > do { \ > pwx->DF[2*i] = R##DF(pwt, i); \ > pwx->DF[2*i+1] = R##DF(pws, i); \ > - } while (0); > + } while (0) > MSA_FN_DF(ilvr_df) > #undef MSA_DO > > @@ -1200,7 +1202,7 @@ MSA_FN_DF(ilvr_df) > do { \ > pwx->DF[2*i] = pwt->DF[2*i]; \ > pwx->DF[2*i+1] = pws->DF[2*i]; \ > - } while (0); > + } while (0) > MSA_FN_DF(ilvev_df) > #undef MSA_DO > > @@ -1208,7 +1210,7 @@ MSA_FN_DF(ilvev_df) > do { \ > pwx->DF[2*i] = pwt->DF[2*i+1]; \ > pwx->DF[2*i+1] = pws->DF[2*i+1]; \ > - } while (0); > + } while (0) > MSA_FN_DF(ilvod_df) > #undef MSA_DO > #undef MSA_LOOP_COND > @@ -1222,7 +1224,7 @@ MSA_FN_DF(ilvod_df) > uint32_t k = (pwd->DF[i] & 0x3f) % (2 * n); \ > pwx->DF[i] = \ > (pwd->DF[i] & 0xc0) ? 0 : k < n ? pwt->DF[k] : pws->DF[k - n]; \ > - } while (0); > + } while (0) > MSA_FN_DF(vshf_df) > #undef MSA_DO > #undef MSA_LOOP_COND >