mirror of
https://github.com/yuzu-emu/unicorn.git
synced 2024-12-23 17:35:33 +00:00
mips: Tweak location of ';' in macros
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 '}'. Backports commit 94f5c480e9b5ce95394026b3f025816470e23eaf from qemu
This commit is contained in:
parent
cf80a410a9
commit
20da22732f
|
@ -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,16 +1137,16 @@ 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 \
|
||||
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
|
||||
|
|
Loading…
Reference in a new issue