mirror of
https://github.com/qemu/qemu.git
synced 2024-11-24 11:23:43 +08:00
MIPS queue for June 21st, 2019
-----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQEcBAABAgAGBQJdDKeRAAoJENSXKoln91pl7OAH/30utWuYrfhakCN2AoYWo4ek LrodEAQ01rdUBPC87v6no8MFm3ZqdcefOqZcm6OjBUhV5PCzIvb1LiayYNmcNTH6 eGZ5OYCLmR1IU32AeVQVqGDTt5yZMo6csdDVfNXIYmBdibJoqQ7np0wRik5ALQQE +5dsEpzQ4GdTJp/2BggaYb67Mf0fnPCWstcw/iMuTrxBvyyyNFj88XTKq1SJVxAd glFLw8iTVfFnsad9xINj/nkUfGKVGG5LTEjv/J0v6RmjWVD1TG5FPH1q4m6tX+Ey pEY/C4QKl1quJnpQaAdMkfxb8yzKNtCV92f2Oti05/tYoW6BNTDt3GLtsz21j+Y= =uL8C -----END PGP SIGNATURE----- Merge remote-tracking branch 'remotes/amarkovic/tags/mips-queue-jun-21-2019' into staging MIPS queue for June 21st, 2019 # gpg: Signature made Fri 21 Jun 2019 10:46:57 BST # gpg: using RSA key D4972A8967F75A65 # gpg: Good signature from "Aleksandar Markovic <amarkovic@wavecomp.com>" [unknown] # gpg: WARNING: This key is not certified with a trusted signature! # gpg: There is no indication that the signature belongs to the owner. # Primary key fingerprint: 8526 FBF1 5DA3 811F 4A01 DD75 D497 2A89 67F7 5A65 * remotes/amarkovic/tags/mips-queue-jun-21-2019: target/mips: Fix emulation of ILVR.<B|H|W> on big endian host target/mips: Fix emulation of ILVL.<B|H|W> on big endian host target/mips: Fix emulation of ILVOD.<B|H|W> on big endian host target/mips: Fix emulation of ILVEV.<B|H|W> on big endian host tests/tcg: target/mips: Amend tests for MSA pack instructions tests/tcg: target/mips: Include isa/ase and group name in test output target/mips: Fix if-else-switch-case arms checkpatch errors in translate.c target/mips: Fix some space checkpatch errors in translate.c MAINTAINERS: Consolidate MIPS disassembler-related items MAINTAINERS: Update file items for MIPS Malta board Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
commit
474f3938d7
@ -212,9 +212,7 @@ R: Aleksandar Rikalo <arikalo@wavecomp.com>
|
||||
S: Maintained
|
||||
F: target/mips/
|
||||
F: default-configs/*mips*
|
||||
F: disas/mips.c
|
||||
F: disas/nanomips.cpp
|
||||
F: disas/nanomips.h
|
||||
F: disas/*mips*
|
||||
F: hw/intc/mips_gic.c
|
||||
F: hw/mips/
|
||||
F: hw/misc/mips_*
|
||||
@ -930,6 +928,7 @@ M: Aurelien Jarno <aurelien@aurel32.net>
|
||||
R: Aleksandar Rikalo <arikalo@wavecomp.com>
|
||||
S: Maintained
|
||||
F: hw/mips/mips_malta.c
|
||||
F: hw/mips/gt64xxx_pci.c
|
||||
F: tests/acceptance/linux_ssh_mips_malta.py
|
||||
|
||||
Mipssim
|
||||
@ -2325,7 +2324,6 @@ M: Aurelien Jarno <aurelien@aurel32.net>
|
||||
R: Aleksandar Rikalo <arikalo@wavecomp.com>
|
||||
S: Maintained
|
||||
F: tcg/mips/
|
||||
F: disas/mips.c
|
||||
|
||||
PPC TCG target
|
||||
M: Richard Henderson <rth@twiddle.net>
|
||||
|
@ -1737,6 +1737,24 @@ void helper_msa_ilvev_df(CPUMIPSState *env, uint32_t df, uint32_t wd,
|
||||
|
||||
switch (df) {
|
||||
case DF_BYTE:
|
||||
#if defined(TARGET_WORDS_BIGENDIAN)
|
||||
pwd->b[8] = pws->b[9];
|
||||
pwd->b[9] = pwt->b[9];
|
||||
pwd->b[10] = pws->b[11];
|
||||
pwd->b[11] = pwt->b[11];
|
||||
pwd->b[12] = pws->b[13];
|
||||
pwd->b[13] = pwt->b[13];
|
||||
pwd->b[14] = pws->b[15];
|
||||
pwd->b[15] = pwt->b[15];
|
||||
pwd->b[0] = pws->b[1];
|
||||
pwd->b[1] = pwt->b[1];
|
||||
pwd->b[2] = pws->b[3];
|
||||
pwd->b[3] = pwt->b[3];
|
||||
pwd->b[4] = pws->b[5];
|
||||
pwd->b[5] = pwt->b[5];
|
||||
pwd->b[6] = pws->b[7];
|
||||
pwd->b[7] = pwt->b[7];
|
||||
#else
|
||||
pwd->b[15] = pws->b[14];
|
||||
pwd->b[14] = pwt->b[14];
|
||||
pwd->b[13] = pws->b[12];
|
||||
@ -1753,8 +1771,19 @@ void helper_msa_ilvev_df(CPUMIPSState *env, uint32_t df, uint32_t wd,
|
||||
pwd->b[2] = pwt->b[2];
|
||||
pwd->b[1] = pws->b[0];
|
||||
pwd->b[0] = pwt->b[0];
|
||||
#endif
|
||||
break;
|
||||
case DF_HALF:
|
||||
#if defined(TARGET_WORDS_BIGENDIAN)
|
||||
pwd->h[4] = pws->h[5];
|
||||
pwd->h[5] = pwt->h[5];
|
||||
pwd->h[6] = pws->h[7];
|
||||
pwd->h[7] = pwt->h[7];
|
||||
pwd->h[0] = pws->h[1];
|
||||
pwd->h[1] = pwt->h[1];
|
||||
pwd->h[2] = pws->h[3];
|
||||
pwd->h[3] = pwt->h[3];
|
||||
#else
|
||||
pwd->h[7] = pws->h[6];
|
||||
pwd->h[6] = pwt->h[6];
|
||||
pwd->h[5] = pws->h[4];
|
||||
@ -1763,12 +1792,20 @@ void helper_msa_ilvev_df(CPUMIPSState *env, uint32_t df, uint32_t wd,
|
||||
pwd->h[2] = pwt->h[2];
|
||||
pwd->h[1] = pws->h[0];
|
||||
pwd->h[0] = pwt->h[0];
|
||||
#endif
|
||||
break;
|
||||
case DF_WORD:
|
||||
#if defined(TARGET_WORDS_BIGENDIAN)
|
||||
pwd->w[2] = pws->w[3];
|
||||
pwd->w[3] = pwt->w[3];
|
||||
pwd->w[0] = pws->w[1];
|
||||
pwd->w[1] = pwt->w[1];
|
||||
#else
|
||||
pwd->w[3] = pws->w[2];
|
||||
pwd->w[2] = pwt->w[2];
|
||||
pwd->w[1] = pws->w[0];
|
||||
pwd->w[0] = pwt->w[0];
|
||||
#endif
|
||||
break;
|
||||
case DF_DOUBLE:
|
||||
pwd->d[1] = pws->d[0];
|
||||
@ -1788,6 +1825,24 @@ void helper_msa_ilvod_df(CPUMIPSState *env, uint32_t df, uint32_t wd,
|
||||
|
||||
switch (df) {
|
||||
case DF_BYTE:
|
||||
#if defined(TARGET_WORDS_BIGENDIAN)
|
||||
pwd->b[7] = pwt->b[6];
|
||||
pwd->b[6] = pws->b[6];
|
||||
pwd->b[5] = pwt->b[4];
|
||||
pwd->b[4] = pws->b[4];
|
||||
pwd->b[3] = pwt->b[2];
|
||||
pwd->b[2] = pws->b[2];
|
||||
pwd->b[1] = pwt->b[0];
|
||||
pwd->b[0] = pws->b[0];
|
||||
pwd->b[15] = pwt->b[14];
|
||||
pwd->b[14] = pws->b[14];
|
||||
pwd->b[13] = pwt->b[12];
|
||||
pwd->b[12] = pws->b[12];
|
||||
pwd->b[11] = pwt->b[10];
|
||||
pwd->b[10] = pws->b[10];
|
||||
pwd->b[9] = pwt->b[8];
|
||||
pwd->b[8] = pws->b[8];
|
||||
#else
|
||||
pwd->b[0] = pwt->b[1];
|
||||
pwd->b[1] = pws->b[1];
|
||||
pwd->b[2] = pwt->b[3];
|
||||
@ -1804,8 +1859,19 @@ void helper_msa_ilvod_df(CPUMIPSState *env, uint32_t df, uint32_t wd,
|
||||
pwd->b[13] = pws->b[13];
|
||||
pwd->b[14] = pwt->b[15];
|
||||
pwd->b[15] = pws->b[15];
|
||||
#endif
|
||||
break;
|
||||
case DF_HALF:
|
||||
#if defined(TARGET_WORDS_BIGENDIAN)
|
||||
pwd->h[3] = pwt->h[2];
|
||||
pwd->h[2] = pws->h[2];
|
||||
pwd->h[1] = pwt->h[0];
|
||||
pwd->h[0] = pws->h[0];
|
||||
pwd->h[7] = pwt->h[6];
|
||||
pwd->h[6] = pws->h[6];
|
||||
pwd->h[5] = pwt->h[4];
|
||||
pwd->h[4] = pws->h[4];
|
||||
#else
|
||||
pwd->h[0] = pwt->h[1];
|
||||
pwd->h[1] = pws->h[1];
|
||||
pwd->h[2] = pwt->h[3];
|
||||
@ -1814,12 +1880,20 @@ void helper_msa_ilvod_df(CPUMIPSState *env, uint32_t df, uint32_t wd,
|
||||
pwd->h[5] = pws->h[5];
|
||||
pwd->h[6] = pwt->h[7];
|
||||
pwd->h[7] = pws->h[7];
|
||||
#endif
|
||||
break;
|
||||
case DF_WORD:
|
||||
#if defined(TARGET_WORDS_BIGENDIAN)
|
||||
pwd->w[1] = pwt->w[0];
|
||||
pwd->w[0] = pws->w[0];
|
||||
pwd->w[3] = pwt->w[2];
|
||||
pwd->w[2] = pws->w[2];
|
||||
#else
|
||||
pwd->w[0] = pwt->w[1];
|
||||
pwd->w[1] = pws->w[1];
|
||||
pwd->w[2] = pwt->w[3];
|
||||
pwd->w[3] = pws->w[3];
|
||||
#endif
|
||||
break;
|
||||
case DF_DOUBLE:
|
||||
pwd->d[0] = pwt->d[1];
|
||||
@ -1839,6 +1913,24 @@ void helper_msa_ilvl_df(CPUMIPSState *env, uint32_t df, uint32_t wd,
|
||||
|
||||
switch (df) {
|
||||
case DF_BYTE:
|
||||
#if defined(TARGET_WORDS_BIGENDIAN)
|
||||
pwd->b[7] = pwt->b[15];
|
||||
pwd->b[6] = pws->b[15];
|
||||
pwd->b[5] = pwt->b[14];
|
||||
pwd->b[4] = pws->b[14];
|
||||
pwd->b[3] = pwt->b[13];
|
||||
pwd->b[2] = pws->b[13];
|
||||
pwd->b[1] = pwt->b[12];
|
||||
pwd->b[0] = pws->b[12];
|
||||
pwd->b[15] = pwt->b[11];
|
||||
pwd->b[14] = pws->b[11];
|
||||
pwd->b[13] = pwt->b[10];
|
||||
pwd->b[12] = pws->b[10];
|
||||
pwd->b[11] = pwt->b[9];
|
||||
pwd->b[10] = pws->b[9];
|
||||
pwd->b[9] = pwt->b[8];
|
||||
pwd->b[8] = pws->b[8];
|
||||
#else
|
||||
pwd->b[0] = pwt->b[8];
|
||||
pwd->b[1] = pws->b[8];
|
||||
pwd->b[2] = pwt->b[9];
|
||||
@ -1855,8 +1947,19 @@ void helper_msa_ilvl_df(CPUMIPSState *env, uint32_t df, uint32_t wd,
|
||||
pwd->b[13] = pws->b[14];
|
||||
pwd->b[14] = pwt->b[15];
|
||||
pwd->b[15] = pws->b[15];
|
||||
#endif
|
||||
break;
|
||||
case DF_HALF:
|
||||
#if defined(TARGET_WORDS_BIGENDIAN)
|
||||
pwd->h[3] = pwt->h[7];
|
||||
pwd->h[2] = pws->h[7];
|
||||
pwd->h[1] = pwt->h[6];
|
||||
pwd->h[0] = pws->h[6];
|
||||
pwd->h[7] = pwt->h[5];
|
||||
pwd->h[6] = pws->h[5];
|
||||
pwd->h[5] = pwt->h[4];
|
||||
pwd->h[4] = pws->h[4];
|
||||
#else
|
||||
pwd->h[0] = pwt->h[4];
|
||||
pwd->h[1] = pws->h[4];
|
||||
pwd->h[2] = pwt->h[5];
|
||||
@ -1865,12 +1968,20 @@ void helper_msa_ilvl_df(CPUMIPSState *env, uint32_t df, uint32_t wd,
|
||||
pwd->h[5] = pws->h[6];
|
||||
pwd->h[6] = pwt->h[7];
|
||||
pwd->h[7] = pws->h[7];
|
||||
#endif
|
||||
break;
|
||||
case DF_WORD:
|
||||
#if defined(TARGET_WORDS_BIGENDIAN)
|
||||
pwd->w[1] = pwt->w[3];
|
||||
pwd->w[0] = pws->w[3];
|
||||
pwd->w[3] = pwt->w[2];
|
||||
pwd->w[2] = pws->w[2];
|
||||
#else
|
||||
pwd->w[0] = pwt->w[2];
|
||||
pwd->w[1] = pws->w[2];
|
||||
pwd->w[2] = pwt->w[3];
|
||||
pwd->w[3] = pws->w[3];
|
||||
#endif
|
||||
break;
|
||||
case DF_DOUBLE:
|
||||
pwd->d[0] = pwt->d[1];
|
||||
@ -1890,6 +2001,24 @@ void helper_msa_ilvr_df(CPUMIPSState *env, uint32_t df, uint32_t wd,
|
||||
|
||||
switch (df) {
|
||||
case DF_BYTE:
|
||||
#if defined(TARGET_WORDS_BIGENDIAN)
|
||||
pwd->b[8] = pws->b[0];
|
||||
pwd->b[9] = pwt->b[0];
|
||||
pwd->b[10] = pws->b[1];
|
||||
pwd->b[11] = pwt->b[1];
|
||||
pwd->b[12] = pws->b[2];
|
||||
pwd->b[13] = pwt->b[2];
|
||||
pwd->b[14] = pws->b[3];
|
||||
pwd->b[15] = pwt->b[3];
|
||||
pwd->b[0] = pws->b[4];
|
||||
pwd->b[1] = pwt->b[4];
|
||||
pwd->b[2] = pws->b[5];
|
||||
pwd->b[3] = pwt->b[5];
|
||||
pwd->b[4] = pws->b[6];
|
||||
pwd->b[5] = pwt->b[6];
|
||||
pwd->b[6] = pws->b[7];
|
||||
pwd->b[7] = pwt->b[7];
|
||||
#else
|
||||
pwd->b[15] = pws->b[7];
|
||||
pwd->b[14] = pwt->b[7];
|
||||
pwd->b[13] = pws->b[6];
|
||||
@ -1906,8 +2035,19 @@ void helper_msa_ilvr_df(CPUMIPSState *env, uint32_t df, uint32_t wd,
|
||||
pwd->b[2] = pwt->b[1];
|
||||
pwd->b[1] = pws->b[0];
|
||||
pwd->b[0] = pwt->b[0];
|
||||
#endif
|
||||
break;
|
||||
case DF_HALF:
|
||||
#if defined(TARGET_WORDS_BIGENDIAN)
|
||||
pwd->h[4] = pws->h[0];
|
||||
pwd->h[5] = pwt->h[0];
|
||||
pwd->h[6] = pws->h[1];
|
||||
pwd->h[7] = pwt->h[1];
|
||||
pwd->h[0] = pws->h[2];
|
||||
pwd->h[1] = pwt->h[2];
|
||||
pwd->h[2] = pws->h[3];
|
||||
pwd->h[3] = pwt->h[3];
|
||||
#else
|
||||
pwd->h[7] = pws->h[3];
|
||||
pwd->h[6] = pwt->h[3];
|
||||
pwd->h[5] = pws->h[2];
|
||||
@ -1916,12 +2056,20 @@ void helper_msa_ilvr_df(CPUMIPSState *env, uint32_t df, uint32_t wd,
|
||||
pwd->h[2] = pwt->h[1];
|
||||
pwd->h[1] = pws->h[0];
|
||||
pwd->h[0] = pwt->h[0];
|
||||
#endif
|
||||
break;
|
||||
case DF_WORD:
|
||||
#if defined(TARGET_WORDS_BIGENDIAN)
|
||||
pwd->w[2] = pws->w[0];
|
||||
pwd->w[3] = pwt->w[0];
|
||||
pwd->w[0] = pws->w[1];
|
||||
pwd->w[1] = pwt->w[1];
|
||||
#else
|
||||
pwd->w[3] = pws->w[1];
|
||||
pwd->w[2] = pwt->w[1];
|
||||
pwd->w[1] = pws->w[0];
|
||||
pwd->w[0] = pwt->w[0];
|
||||
#endif
|
||||
break;
|
||||
case DF_DOUBLE:
|
||||
pwd->d[1] = pws->d[0];
|
||||
|
@ -2617,28 +2617,30 @@ static const char * const mxuregnames[] = {
|
||||
} while (0)
|
||||
|
||||
/* General purpose registers moves. */
|
||||
static inline void gen_load_gpr (TCGv t, int reg)
|
||||
static inline void gen_load_gpr(TCGv t, int reg)
|
||||
{
|
||||
if (reg == 0)
|
||||
if (reg == 0) {
|
||||
tcg_gen_movi_tl(t, 0);
|
||||
else
|
||||
} else {
|
||||
tcg_gen_mov_tl(t, cpu_gpr[reg]);
|
||||
}
|
||||
}
|
||||
|
||||
static inline void gen_store_gpr (TCGv t, int reg)
|
||||
static inline void gen_store_gpr(TCGv t, int reg)
|
||||
{
|
||||
if (reg != 0)
|
||||
if (reg != 0) {
|
||||
tcg_gen_mov_tl(cpu_gpr[reg], t);
|
||||
}
|
||||
}
|
||||
|
||||
/* Moves to/from shadow registers. */
|
||||
static inline void gen_load_srsgpr (int from, int to)
|
||||
static inline void gen_load_srsgpr(int from, int to)
|
||||
{
|
||||
TCGv t0 = tcg_temp_new();
|
||||
|
||||
if (from == 0)
|
||||
if (from == 0) {
|
||||
tcg_gen_movi_tl(t0, 0);
|
||||
else {
|
||||
} else {
|
||||
TCGv_i32 t2 = tcg_temp_new_i32();
|
||||
TCGv_ptr addr = tcg_temp_new_ptr();
|
||||
|
||||
@ -2839,16 +2841,18 @@ static void gen_store_fpr64(DisasContext *ctx, TCGv_i64 t, int reg)
|
||||
}
|
||||
}
|
||||
|
||||
static inline int get_fp_bit (int cc)
|
||||
static inline int get_fp_bit(int cc)
|
||||
{
|
||||
if (cc)
|
||||
if (cc) {
|
||||
return 24 + cc;
|
||||
else
|
||||
} else {
|
||||
return 23;
|
||||
}
|
||||
}
|
||||
|
||||
/* Addresses computation */
|
||||
static inline void gen_op_addr_add (DisasContext *ctx, TCGv ret, TCGv arg0, TCGv arg1)
|
||||
static inline void gen_op_addr_add(DisasContext *ctx, TCGv ret, TCGv arg0,
|
||||
TCGv arg1)
|
||||
{
|
||||
tcg_gen_add_tl(ret, arg0, arg1);
|
||||
|
||||
@ -2907,14 +2911,16 @@ static inline void gen_move_high32(TCGv ret, TCGv_i64 arg)
|
||||
|
||||
static inline void check_cp0_enabled(DisasContext *ctx)
|
||||
{
|
||||
if (unlikely(!(ctx->hflags & MIPS_HFLAG_CP0)))
|
||||
if (unlikely(!(ctx->hflags & MIPS_HFLAG_CP0))) {
|
||||
generate_exception_err(ctx, EXCP_CpU, 0);
|
||||
}
|
||||
}
|
||||
|
||||
static inline void check_cp1_enabled(DisasContext *ctx)
|
||||
{
|
||||
if (unlikely(!(ctx->hflags & MIPS_HFLAG_FPU)))
|
||||
if (unlikely(!(ctx->hflags & MIPS_HFLAG_FPU))) {
|
||||
generate_exception_err(ctx, EXCP_CpU, 1);
|
||||
}
|
||||
}
|
||||
|
||||
/* Verify that the processor is running with COP1X instructions enabled.
|
||||
@ -2923,8 +2929,9 @@ static inline void check_cp1_enabled(DisasContext *ctx)
|
||||
|
||||
static inline void check_cop1x(DisasContext *ctx)
|
||||
{
|
||||
if (unlikely(!(ctx->hflags & MIPS_HFLAG_COP1X)))
|
||||
if (unlikely(!(ctx->hflags & MIPS_HFLAG_COP1X))) {
|
||||
generate_exception_end(ctx, EXCP_RI);
|
||||
}
|
||||
}
|
||||
|
||||
/* Verify that the processor is running with 64-bit floating-point
|
||||
@ -2932,8 +2939,9 @@ static inline void check_cop1x(DisasContext *ctx)
|
||||
|
||||
static inline void check_cp1_64bitmode(DisasContext *ctx)
|
||||
{
|
||||
if (unlikely(~ctx->hflags & (MIPS_HFLAG_F64 | MIPS_HFLAG_COP1X)))
|
||||
if (unlikely(~ctx->hflags & (MIPS_HFLAG_F64 | MIPS_HFLAG_COP1X))) {
|
||||
generate_exception_end(ctx, EXCP_RI);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
@ -2949,8 +2957,9 @@ static inline void check_cp1_64bitmode(DisasContext *ctx)
|
||||
*/
|
||||
static inline void check_cp1_registers(DisasContext *ctx, int regs)
|
||||
{
|
||||
if (unlikely(!(ctx->hflags & MIPS_HFLAG_F64) && (regs & 1)))
|
||||
if (unlikely(!(ctx->hflags & MIPS_HFLAG_F64) && (regs & 1))) {
|
||||
generate_exception_end(ctx, EXCP_RI);
|
||||
}
|
||||
}
|
||||
|
||||
/* Verify that the processor is running with DSP instructions enabled.
|
||||
@ -3039,8 +3048,9 @@ static inline void check_ps(DisasContext *ctx)
|
||||
instructions are not enabled. */
|
||||
static inline void check_mips_64(DisasContext *ctx)
|
||||
{
|
||||
if (unlikely(!(ctx->hflags & MIPS_HFLAG_64)))
|
||||
if (unlikely(!(ctx->hflags & MIPS_HFLAG_64))) {
|
||||
generate_exception_end(ctx, EXCP_RI);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
@ -3125,13 +3135,12 @@ static inline void check_nms(DisasContext *ctx)
|
||||
*/
|
||||
static inline void check_nms_dl_il_sl_tl_l2c(DisasContext *ctx)
|
||||
{
|
||||
if (unlikely(ctx->CP0_Config5 & (1 << CP0C5_NMS)) &&
|
||||
!(ctx->CP0_Config1 & (1 << CP0C1_DL)) &&
|
||||
!(ctx->CP0_Config1 & (1 << CP0C1_IL)) &&
|
||||
!(ctx->CP0_Config2 & (1 << CP0C2_SL)) &&
|
||||
!(ctx->CP0_Config2 & (1 << CP0C2_TL)) &&
|
||||
!(ctx->CP0_Config5 & (1 << CP0C5_L2C)))
|
||||
{
|
||||
if (unlikely((ctx->CP0_Config5 & (1 << CP0C5_NMS)) &&
|
||||
!(ctx->CP0_Config1 & (1 << CP0C1_DL)) &&
|
||||
!(ctx->CP0_Config1 & (1 << CP0C1_IL)) &&
|
||||
!(ctx->CP0_Config2 & (1 << CP0C2_SL)) &&
|
||||
!(ctx->CP0_Config2 & (1 << CP0C2_TL)) &&
|
||||
!(ctx->CP0_Config5 & (1 << CP0C5_L2C)))) {
|
||||
generate_exception_end(ctx, EXCP_RI);
|
||||
}
|
||||
}
|
||||
@ -3179,23 +3188,56 @@ static inline void gen_cmp ## type ## _ ## fmt(DisasContext *ctx, int n, \
|
||||
gen_ldcmp_fpr##bits (ctx, fp0, fs); \
|
||||
gen_ldcmp_fpr##bits (ctx, fp1, ft); \
|
||||
switch (n) { \
|
||||
case 0: gen_helper_0e2i(cmp ## type ## _ ## fmt ## _f, fp0, fp1, cc); break;\
|
||||
case 1: gen_helper_0e2i(cmp ## type ## _ ## fmt ## _un, fp0, fp1, cc); break;\
|
||||
case 2: gen_helper_0e2i(cmp ## type ## _ ## fmt ## _eq, fp0, fp1, cc); break;\
|
||||
case 3: gen_helper_0e2i(cmp ## type ## _ ## fmt ## _ueq, fp0, fp1, cc); break;\
|
||||
case 4: gen_helper_0e2i(cmp ## type ## _ ## fmt ## _olt, fp0, fp1, cc); break;\
|
||||
case 5: gen_helper_0e2i(cmp ## type ## _ ## fmt ## _ult, fp0, fp1, cc); break;\
|
||||
case 6: gen_helper_0e2i(cmp ## type ## _ ## fmt ## _ole, fp0, fp1, cc); break;\
|
||||
case 7: gen_helper_0e2i(cmp ## type ## _ ## fmt ## _ule, fp0, fp1, cc); break;\
|
||||
case 8: gen_helper_0e2i(cmp ## type ## _ ## fmt ## _sf, fp0, fp1, cc); break;\
|
||||
case 9: gen_helper_0e2i(cmp ## type ## _ ## fmt ## _ngle, fp0, fp1, cc); break;\
|
||||
case 10: gen_helper_0e2i(cmp ## type ## _ ## fmt ## _seq, fp0, fp1, cc); break;\
|
||||
case 11: gen_helper_0e2i(cmp ## type ## _ ## fmt ## _ngl, fp0, fp1, cc); break;\
|
||||
case 12: gen_helper_0e2i(cmp ## type ## _ ## fmt ## _lt, fp0, fp1, cc); break;\
|
||||
case 13: gen_helper_0e2i(cmp ## type ## _ ## fmt ## _nge, fp0, fp1, cc); break;\
|
||||
case 14: gen_helper_0e2i(cmp ## type ## _ ## fmt ## _le, fp0, fp1, cc); break;\
|
||||
case 15: gen_helper_0e2i(cmp ## type ## _ ## fmt ## _ngt, fp0, fp1, cc); break;\
|
||||
default: abort(); \
|
||||
case 0: \
|
||||
gen_helper_0e2i(cmp ## type ## _ ## fmt ## _f, fp0, fp1, cc); \
|
||||
break; \
|
||||
case 1: \
|
||||
gen_helper_0e2i(cmp ## type ## _ ## fmt ## _un, fp0, fp1, cc); \
|
||||
break; \
|
||||
case 2: \
|
||||
gen_helper_0e2i(cmp ## type ## _ ## fmt ## _eq, fp0, fp1, cc); \
|
||||
break; \
|
||||
case 3: \
|
||||
gen_helper_0e2i(cmp ## type ## _ ## fmt ## _ueq, fp0, fp1, cc); \
|
||||
break; \
|
||||
case 4: \
|
||||
gen_helper_0e2i(cmp ## type ## _ ## fmt ## _olt, fp0, fp1, cc); \
|
||||
break; \
|
||||
case 5: \
|
||||
gen_helper_0e2i(cmp ## type ## _ ## fmt ## _ult, fp0, fp1, cc); \
|
||||
break; \
|
||||
case 6: \
|
||||
gen_helper_0e2i(cmp ## type ## _ ## fmt ## _ole, fp0, fp1, cc); \
|
||||
break; \
|
||||
case 7: \
|
||||
gen_helper_0e2i(cmp ## type ## _ ## fmt ## _ule, fp0, fp1, cc); \
|
||||
break; \
|
||||
case 8: \
|
||||
gen_helper_0e2i(cmp ## type ## _ ## fmt ## _sf, fp0, fp1, cc); \
|
||||
break; \
|
||||
case 9: \
|
||||
gen_helper_0e2i(cmp ## type ## _ ## fmt ## _ngle, fp0, fp1, cc); \
|
||||
break; \
|
||||
case 10: \
|
||||
gen_helper_0e2i(cmp ## type ## _ ## fmt ## _seq, fp0, fp1, cc); \
|
||||
break; \
|
||||
case 11: \
|
||||
gen_helper_0e2i(cmp ## type ## _ ## fmt ## _ngl, fp0, fp1, cc); \
|
||||
break; \
|
||||
case 12: \
|
||||
gen_helper_0e2i(cmp ## type ## _ ## fmt ## _lt, fp0, fp1, cc); \
|
||||
break; \
|
||||
case 13: \
|
||||
gen_helper_0e2i(cmp ## type ## _ ## fmt ## _nge, fp0, fp1, cc); \
|
||||
break; \
|
||||
case 14: \
|
||||
gen_helper_0e2i(cmp ## type ## _ ## fmt ## _le, fp0, fp1, cc); \
|
||||
break; \
|
||||
case 15: \
|
||||
gen_helper_0e2i(cmp ## type ## _ ## fmt ## _ngt, fp0, fp1, cc); \
|
||||
break; \
|
||||
default: \
|
||||
abort(); \
|
||||
} \
|
||||
tcg_temp_free_i##bits (fp0); \
|
||||
tcg_temp_free_i##bits (fp1); \
|
||||
@ -3328,8 +3370,8 @@ OP_LD_ATOMIC(lld,ld64);
|
||||
#endif
|
||||
#undef OP_LD_ATOMIC
|
||||
|
||||
static void gen_base_offset_addr (DisasContext *ctx, TCGv addr,
|
||||
int base, int offset)
|
||||
static void gen_base_offset_addr(DisasContext *ctx, TCGv addr,
|
||||
int base, int offset)
|
||||
{
|
||||
if (base == 0) {
|
||||
tcg_gen_movi_tl(addr, offset);
|
||||
@ -3341,7 +3383,7 @@ static void gen_base_offset_addr (DisasContext *ctx, TCGv addr,
|
||||
}
|
||||
}
|
||||
|
||||
static target_ulong pc_relative_pc (DisasContext *ctx)
|
||||
static target_ulong pc_relative_pc(DisasContext *ctx)
|
||||
{
|
||||
target_ulong pc = ctx->base.pc_next;
|
||||
|
||||
@ -3578,8 +3620,8 @@ static void gen_llwp(DisasContext *ctx, uint32_t base, int16_t offset,
|
||||
}
|
||||
|
||||
/* Store */
|
||||
static void gen_st (DisasContext *ctx, uint32_t opc, int rt,
|
||||
int base, int offset)
|
||||
static void gen_st(DisasContext *ctx, uint32_t opc, int rt,
|
||||
int base, int offset)
|
||||
{
|
||||
TCGv t0 = tcg_temp_new();
|
||||
TCGv t1 = tcg_temp_new();
|
||||
@ -3717,8 +3759,8 @@ static void gen_scwp(DisasContext *ctx, uint32_t base, int16_t offset,
|
||||
}
|
||||
|
||||
/* Load and store */
|
||||
static void gen_flt_ldst (DisasContext *ctx, uint32_t opc, int ft,
|
||||
TCGv t0)
|
||||
static void gen_flt_ldst(DisasContext *ctx, uint32_t opc, int ft,
|
||||
TCGv t0)
|
||||
{
|
||||
/* Don't do NOP if destination is zero: we must perform the actual
|
||||
memory access. */
|
||||
@ -3881,22 +3923,25 @@ static void gen_logic_imm(DisasContext *ctx, uint32_t opc,
|
||||
uimm = (uint16_t)imm;
|
||||
switch (opc) {
|
||||
case OPC_ANDI:
|
||||
if (likely(rs != 0))
|
||||
if (likely(rs != 0)) {
|
||||
tcg_gen_andi_tl(cpu_gpr[rt], cpu_gpr[rs], uimm);
|
||||
else
|
||||
} else {
|
||||
tcg_gen_movi_tl(cpu_gpr[rt], 0);
|
||||
}
|
||||
break;
|
||||
case OPC_ORI:
|
||||
if (rs != 0)
|
||||
if (rs != 0) {
|
||||
tcg_gen_ori_tl(cpu_gpr[rt], cpu_gpr[rs], uimm);
|
||||
else
|
||||
} else {
|
||||
tcg_gen_movi_tl(cpu_gpr[rt], uimm);
|
||||
}
|
||||
break;
|
||||
case OPC_XORI:
|
||||
if (likely(rs != 0))
|
||||
if (likely(rs != 0)) {
|
||||
tcg_gen_xori_tl(cpu_gpr[rt], cpu_gpr[rs], uimm);
|
||||
else
|
||||
} else {
|
||||
tcg_gen_movi_tl(cpu_gpr[rt], uimm);
|
||||
}
|
||||
break;
|
||||
case OPC_LUI:
|
||||
if (rs != 0 && (ctx->insn_flags & ISA_MIPS32R6)) {
|
||||
@ -5132,8 +5177,8 @@ static void gen_mul_txx9(DisasContext *ctx, uint32_t opc,
|
||||
tcg_temp_free(t1);
|
||||
}
|
||||
|
||||
static void gen_mul_vr54xx (DisasContext *ctx, uint32_t opc,
|
||||
int rd, int rs, int rt)
|
||||
static void gen_mul_vr54xx(DisasContext *ctx, uint32_t opc,
|
||||
int rd, int rs, int rt)
|
||||
{
|
||||
TCGv t0 = tcg_temp_new();
|
||||
TCGv t1 = tcg_temp_new();
|
||||
@ -5196,8 +5241,8 @@ static void gen_mul_vr54xx (DisasContext *ctx, uint32_t opc,
|
||||
tcg_temp_free(t1);
|
||||
}
|
||||
|
||||
static void gen_cl (DisasContext *ctx, uint32_t opc,
|
||||
int rd, int rs)
|
||||
static void gen_cl(DisasContext *ctx, uint32_t opc,
|
||||
int rd, int rs)
|
||||
{
|
||||
TCGv t0;
|
||||
|
||||
@ -6059,8 +6104,9 @@ static void gen_compute_branch (DisasContext *ctx, uint32_t opc,
|
||||
}
|
||||
|
||||
out:
|
||||
if (insn_bytes == 2)
|
||||
if (insn_bytes == 2) {
|
||||
ctx->hflags |= MIPS_HFLAG_B16;
|
||||
}
|
||||
tcg_temp_free(t0);
|
||||
tcg_temp_free(t1);
|
||||
}
|
||||
@ -6188,8 +6234,8 @@ static void gen_compute_branch_nm(DisasContext *ctx, uint32_t opc,
|
||||
|
||||
|
||||
/* special3 bitfield operations */
|
||||
static void gen_bitops (DisasContext *ctx, uint32_t opc, int rt,
|
||||
int rs, int lsb, int msb)
|
||||
static void gen_bitops(DisasContext *ctx, uint32_t opc, int rt,
|
||||
int rs, int lsb, int msb)
|
||||
{
|
||||
TCGv t0 = tcg_temp_new();
|
||||
TCGv t1 = tcg_temp_new();
|
||||
@ -6259,7 +6305,7 @@ fail:
|
||||
tcg_temp_free(t1);
|
||||
}
|
||||
|
||||
static void gen_bshfl (DisasContext *ctx, uint32_t op2, int rt, int rd)
|
||||
static void gen_bshfl(DisasContext *ctx, uint32_t op2, int rt, int rd)
|
||||
{
|
||||
TCGv t0;
|
||||
|
||||
@ -6502,7 +6548,7 @@ static inline void gen_mfhc0_load64(TCGv arg, target_ulong off, int shift)
|
||||
tcg_temp_free_i64(t0);
|
||||
}
|
||||
|
||||
static inline void gen_mfc0_load32 (TCGv arg, target_ulong off)
|
||||
static inline void gen_mfc0_load32(TCGv arg, target_ulong off)
|
||||
{
|
||||
TCGv_i32 t0 = tcg_temp_new_i32();
|
||||
|
||||
@ -6511,13 +6557,13 @@ static inline void gen_mfc0_load32 (TCGv arg, target_ulong off)
|
||||
tcg_temp_free_i32(t0);
|
||||
}
|
||||
|
||||
static inline void gen_mfc0_load64 (TCGv arg, target_ulong off)
|
||||
static inline void gen_mfc0_load64(TCGv arg, target_ulong off)
|
||||
{
|
||||
tcg_gen_ld_tl(arg, cpu_env, off);
|
||||
tcg_gen_ext32s_tl(arg, arg);
|
||||
}
|
||||
|
||||
static inline void gen_mtc0_store32 (TCGv arg, target_ulong off)
|
||||
static inline void gen_mtc0_store32(TCGv arg, target_ulong off)
|
||||
{
|
||||
TCGv_i32 t0 = tcg_temp_new_i32();
|
||||
|
||||
@ -6707,8 +6753,9 @@ static void gen_mfc0(DisasContext *ctx, TCGv arg, int reg, int sel)
|
||||
{
|
||||
const char *register_name = "invalid";
|
||||
|
||||
if (sel != 0)
|
||||
if (sel != 0) {
|
||||
check_insn(ctx, ISA_MIPS32);
|
||||
}
|
||||
|
||||
switch (reg) {
|
||||
case CP0_REGISTER_00:
|
||||
@ -7463,8 +7510,9 @@ static void gen_mtc0(DisasContext *ctx, TCGv arg, int reg, int sel)
|
||||
{
|
||||
const char *register_name = "invalid";
|
||||
|
||||
if (sel != 0)
|
||||
if (sel != 0) {
|
||||
check_insn(ctx, ISA_MIPS32);
|
||||
}
|
||||
|
||||
if (tb_cflags(ctx->base.tb) & CF_USE_ICOUNT) {
|
||||
gen_io_start();
|
||||
@ -8209,8 +8257,9 @@ static void gen_dmfc0(DisasContext *ctx, TCGv arg, int reg, int sel)
|
||||
{
|
||||
const char *register_name = "invalid";
|
||||
|
||||
if (sel != 0)
|
||||
if (sel != 0) {
|
||||
check_insn(ctx, ISA_MIPS64);
|
||||
}
|
||||
|
||||
switch (reg) {
|
||||
case CP0_REGISTER_00:
|
||||
@ -8919,8 +8968,9 @@ static void gen_dmtc0(DisasContext *ctx, TCGv arg, int reg, int sel)
|
||||
{
|
||||
const char *register_name = "invalid";
|
||||
|
||||
if (sel != 0)
|
||||
if (sel != 0) {
|
||||
check_insn(ctx, ISA_MIPS64);
|
||||
}
|
||||
|
||||
if (tb_cflags(ctx->base.tb) & CF_USE_ICOUNT) {
|
||||
gen_io_start();
|
||||
@ -9657,12 +9707,12 @@ static void gen_mftr(CPUMIPSState *env, DisasContext *ctx, int rt, int rd,
|
||||
|
||||
if ((env->CP0_VPEConf0 & (1 << CP0VPEC0_MVP)) == 0 &&
|
||||
((env->tcs[other_tc].CP0_TCBind & (0xf << CP0TCBd_CurVPE)) !=
|
||||
(env->active_tc.CP0_TCBind & (0xf << CP0TCBd_CurVPE))))
|
||||
(env->active_tc.CP0_TCBind & (0xf << CP0TCBd_CurVPE)))) {
|
||||
tcg_gen_movi_tl(t0, -1);
|
||||
else if ((env->CP0_VPEControl & (0xff << CP0VPECo_TargTC)) >
|
||||
(env->mvp->CP0_MVPConf0 & (0xff << CP0MVPC0_PTC)))
|
||||
} else if ((env->CP0_VPEControl & (0xff << CP0VPECo_TargTC)) >
|
||||
(env->mvp->CP0_MVPConf0 & (0xff << CP0MVPC0_PTC))) {
|
||||
tcg_gen_movi_tl(t0, -1);
|
||||
else if (u == 0) {
|
||||
} else if (u == 0) {
|
||||
switch (rt) {
|
||||
case 1:
|
||||
switch (sel) {
|
||||
@ -9882,12 +9932,12 @@ static void gen_mttr(CPUMIPSState *env, DisasContext *ctx, int rd, int rt,
|
||||
gen_load_gpr(t0, rt);
|
||||
if ((env->CP0_VPEConf0 & (1 << CP0VPEC0_MVP)) == 0 &&
|
||||
((env->tcs[other_tc].CP0_TCBind & (0xf << CP0TCBd_CurVPE)) !=
|
||||
(env->active_tc.CP0_TCBind & (0xf << CP0TCBd_CurVPE))))
|
||||
(env->active_tc.CP0_TCBind & (0xf << CP0TCBd_CurVPE)))) {
|
||||
/* NOP */ ;
|
||||
else if ((env->CP0_VPEControl & (0xff << CP0VPECo_TargTC)) >
|
||||
(env->mvp->CP0_MVPConf0 & (0xff << CP0MVPC0_PTC)))
|
||||
} else if ((env->CP0_VPEControl & (0xff << CP0VPECo_TargTC)) >
|
||||
(env->mvp->CP0_MVPConf0 & (0xff << CP0MVPC0_PTC))) {
|
||||
/* NOP */ ;
|
||||
else if (u == 0) {
|
||||
} else if (u == 0) {
|
||||
switch (rd) {
|
||||
case 1:
|
||||
switch (sel) {
|
||||
@ -10077,7 +10127,8 @@ die:
|
||||
generate_exception_end(ctx, EXCP_RI);
|
||||
}
|
||||
|
||||
static void gen_cp0 (CPUMIPSState *env, DisasContext *ctx, uint32_t opc, int rt, int rd)
|
||||
static void gen_cp0(CPUMIPSState *env, DisasContext *ctx, uint32_t opc,
|
||||
int rt, int rd)
|
||||
{
|
||||
const char *opn = "ldst";
|
||||
|
||||
@ -10160,8 +10211,9 @@ static void gen_cp0 (CPUMIPSState *env, DisasContext *ctx, uint32_t opc, int rt,
|
||||
break;
|
||||
case OPC_TLBWI:
|
||||
opn = "tlbwi";
|
||||
if (!env->tlb->helper_tlbwi)
|
||||
if (!env->tlb->helper_tlbwi) {
|
||||
goto die;
|
||||
}
|
||||
gen_helper_tlbwi(cpu_env);
|
||||
break;
|
||||
case OPC_TLBINV:
|
||||
@ -10184,20 +10236,23 @@ static void gen_cp0 (CPUMIPSState *env, DisasContext *ctx, uint32_t opc, int rt,
|
||||
break;
|
||||
case OPC_TLBWR:
|
||||
opn = "tlbwr";
|
||||
if (!env->tlb->helper_tlbwr)
|
||||
if (!env->tlb->helper_tlbwr) {
|
||||
goto die;
|
||||
}
|
||||
gen_helper_tlbwr(cpu_env);
|
||||
break;
|
||||
case OPC_TLBP:
|
||||
opn = "tlbp";
|
||||
if (!env->tlb->helper_tlbp)
|
||||
if (!env->tlb->helper_tlbp) {
|
||||
goto die;
|
||||
}
|
||||
gen_helper_tlbp(cpu_env);
|
||||
break;
|
||||
case OPC_TLBR:
|
||||
opn = "tlbr";
|
||||
if (!env->tlb->helper_tlbr)
|
||||
if (!env->tlb->helper_tlbr) {
|
||||
goto die;
|
||||
}
|
||||
gen_helper_tlbr(cpu_env);
|
||||
break;
|
||||
case OPC_ERET: /* OPC_ERETNC */
|
||||
@ -10271,8 +10326,9 @@ static void gen_compute_branch1(DisasContext *ctx, uint32_t op,
|
||||
goto out;
|
||||
}
|
||||
|
||||
if (cc != 0)
|
||||
if (cc != 0) {
|
||||
check_insn(ctx, ISA_MIPS4 | ISA_MIPS32);
|
||||
}
|
||||
|
||||
btarget = ctx->base.pc_next + 4 + offset;
|
||||
|
||||
@ -10465,22 +10521,22 @@ enum fopcode {
|
||||
OPC_CVT_W_S = FOP(36, FMT_S),
|
||||
OPC_CVT_L_S = FOP(37, FMT_S),
|
||||
OPC_CVT_PS_S = FOP(38, FMT_S),
|
||||
OPC_CMP_F_S = FOP (48, FMT_S),
|
||||
OPC_CMP_UN_S = FOP (49, FMT_S),
|
||||
OPC_CMP_EQ_S = FOP (50, FMT_S),
|
||||
OPC_CMP_UEQ_S = FOP (51, FMT_S),
|
||||
OPC_CMP_OLT_S = FOP (52, FMT_S),
|
||||
OPC_CMP_ULT_S = FOP (53, FMT_S),
|
||||
OPC_CMP_OLE_S = FOP (54, FMT_S),
|
||||
OPC_CMP_ULE_S = FOP (55, FMT_S),
|
||||
OPC_CMP_SF_S = FOP (56, FMT_S),
|
||||
OPC_CMP_NGLE_S = FOP (57, FMT_S),
|
||||
OPC_CMP_SEQ_S = FOP (58, FMT_S),
|
||||
OPC_CMP_NGL_S = FOP (59, FMT_S),
|
||||
OPC_CMP_LT_S = FOP (60, FMT_S),
|
||||
OPC_CMP_NGE_S = FOP (61, FMT_S),
|
||||
OPC_CMP_LE_S = FOP (62, FMT_S),
|
||||
OPC_CMP_NGT_S = FOP (63, FMT_S),
|
||||
OPC_CMP_F_S = FOP(48, FMT_S),
|
||||
OPC_CMP_UN_S = FOP(49, FMT_S),
|
||||
OPC_CMP_EQ_S = FOP(50, FMT_S),
|
||||
OPC_CMP_UEQ_S = FOP(51, FMT_S),
|
||||
OPC_CMP_OLT_S = FOP(52, FMT_S),
|
||||
OPC_CMP_ULT_S = FOP(53, FMT_S),
|
||||
OPC_CMP_OLE_S = FOP(54, FMT_S),
|
||||
OPC_CMP_ULE_S = FOP(55, FMT_S),
|
||||
OPC_CMP_SF_S = FOP(56, FMT_S),
|
||||
OPC_CMP_NGLE_S = FOP(57, FMT_S),
|
||||
OPC_CMP_SEQ_S = FOP(58, FMT_S),
|
||||
OPC_CMP_NGL_S = FOP(59, FMT_S),
|
||||
OPC_CMP_LT_S = FOP(60, FMT_S),
|
||||
OPC_CMP_NGE_S = FOP(61, FMT_S),
|
||||
OPC_CMP_LE_S = FOP(62, FMT_S),
|
||||
OPC_CMP_NGT_S = FOP(63, FMT_S),
|
||||
|
||||
OPC_ADD_D = FOP(0, FMT_D),
|
||||
OPC_SUB_D = FOP(1, FMT_D),
|
||||
@ -10521,22 +10577,22 @@ enum fopcode {
|
||||
OPC_CVT_S_D = FOP(32, FMT_D),
|
||||
OPC_CVT_W_D = FOP(36, FMT_D),
|
||||
OPC_CVT_L_D = FOP(37, FMT_D),
|
||||
OPC_CMP_F_D = FOP (48, FMT_D),
|
||||
OPC_CMP_UN_D = FOP (49, FMT_D),
|
||||
OPC_CMP_EQ_D = FOP (50, FMT_D),
|
||||
OPC_CMP_UEQ_D = FOP (51, FMT_D),
|
||||
OPC_CMP_OLT_D = FOP (52, FMT_D),
|
||||
OPC_CMP_ULT_D = FOP (53, FMT_D),
|
||||
OPC_CMP_OLE_D = FOP (54, FMT_D),
|
||||
OPC_CMP_ULE_D = FOP (55, FMT_D),
|
||||
OPC_CMP_SF_D = FOP (56, FMT_D),
|
||||
OPC_CMP_NGLE_D = FOP (57, FMT_D),
|
||||
OPC_CMP_SEQ_D = FOP (58, FMT_D),
|
||||
OPC_CMP_NGL_D = FOP (59, FMT_D),
|
||||
OPC_CMP_LT_D = FOP (60, FMT_D),
|
||||
OPC_CMP_NGE_D = FOP (61, FMT_D),
|
||||
OPC_CMP_LE_D = FOP (62, FMT_D),
|
||||
OPC_CMP_NGT_D = FOP (63, FMT_D),
|
||||
OPC_CMP_F_D = FOP(48, FMT_D),
|
||||
OPC_CMP_UN_D = FOP(49, FMT_D),
|
||||
OPC_CMP_EQ_D = FOP(50, FMT_D),
|
||||
OPC_CMP_UEQ_D = FOP(51, FMT_D),
|
||||
OPC_CMP_OLT_D = FOP(52, FMT_D),
|
||||
OPC_CMP_ULT_D = FOP(53, FMT_D),
|
||||
OPC_CMP_OLE_D = FOP(54, FMT_D),
|
||||
OPC_CMP_ULE_D = FOP(55, FMT_D),
|
||||
OPC_CMP_SF_D = FOP(56, FMT_D),
|
||||
OPC_CMP_NGLE_D = FOP(57, FMT_D),
|
||||
OPC_CMP_SEQ_D = FOP(58, FMT_D),
|
||||
OPC_CMP_NGL_D = FOP(59, FMT_D),
|
||||
OPC_CMP_LT_D = FOP(60, FMT_D),
|
||||
OPC_CMP_NGE_D = FOP(61, FMT_D),
|
||||
OPC_CMP_LE_D = FOP(62, FMT_D),
|
||||
OPC_CMP_NGT_D = FOP(63, FMT_D),
|
||||
|
||||
OPC_CVT_S_W = FOP(32, FMT_W),
|
||||
OPC_CVT_D_W = FOP(33, FMT_W),
|
||||
@ -10568,22 +10624,22 @@ enum fopcode {
|
||||
OPC_PLU_PS = FOP(45, FMT_PS),
|
||||
OPC_PUL_PS = FOP(46, FMT_PS),
|
||||
OPC_PUU_PS = FOP(47, FMT_PS),
|
||||
OPC_CMP_F_PS = FOP (48, FMT_PS),
|
||||
OPC_CMP_UN_PS = FOP (49, FMT_PS),
|
||||
OPC_CMP_EQ_PS = FOP (50, FMT_PS),
|
||||
OPC_CMP_UEQ_PS = FOP (51, FMT_PS),
|
||||
OPC_CMP_OLT_PS = FOP (52, FMT_PS),
|
||||
OPC_CMP_ULT_PS = FOP (53, FMT_PS),
|
||||
OPC_CMP_OLE_PS = FOP (54, FMT_PS),
|
||||
OPC_CMP_ULE_PS = FOP (55, FMT_PS),
|
||||
OPC_CMP_SF_PS = FOP (56, FMT_PS),
|
||||
OPC_CMP_NGLE_PS = FOP (57, FMT_PS),
|
||||
OPC_CMP_SEQ_PS = FOP (58, FMT_PS),
|
||||
OPC_CMP_NGL_PS = FOP (59, FMT_PS),
|
||||
OPC_CMP_LT_PS = FOP (60, FMT_PS),
|
||||
OPC_CMP_NGE_PS = FOP (61, FMT_PS),
|
||||
OPC_CMP_LE_PS = FOP (62, FMT_PS),
|
||||
OPC_CMP_NGT_PS = FOP (63, FMT_PS),
|
||||
OPC_CMP_F_PS = FOP(48, FMT_PS),
|
||||
OPC_CMP_UN_PS = FOP(49, FMT_PS),
|
||||
OPC_CMP_EQ_PS = FOP(50, FMT_PS),
|
||||
OPC_CMP_UEQ_PS = FOP(51, FMT_PS),
|
||||
OPC_CMP_OLT_PS = FOP(52, FMT_PS),
|
||||
OPC_CMP_ULT_PS = FOP(53, FMT_PS),
|
||||
OPC_CMP_OLE_PS = FOP(54, FMT_PS),
|
||||
OPC_CMP_ULE_PS = FOP(55, FMT_PS),
|
||||
OPC_CMP_SF_PS = FOP(56, FMT_PS),
|
||||
OPC_CMP_NGLE_PS = FOP(57, FMT_PS),
|
||||
OPC_CMP_SEQ_PS = FOP(58, FMT_PS),
|
||||
OPC_CMP_NGL_PS = FOP(59, FMT_PS),
|
||||
OPC_CMP_LT_PS = FOP(60, FMT_PS),
|
||||
OPC_CMP_NGE_PS = FOP(61, FMT_PS),
|
||||
OPC_CMP_LE_PS = FOP(62, FMT_PS),
|
||||
OPC_CMP_NGT_PS = FOP(63, FMT_PS),
|
||||
};
|
||||
|
||||
enum r6_f_cmp_op {
|
||||
@ -10633,7 +10689,8 @@ enum r6_f_cmp_op {
|
||||
R6_OPC_CMP_SUNE_D = FOP(26, FMT_L),
|
||||
R6_OPC_CMP_SNE_D = FOP(27, FMT_L),
|
||||
};
|
||||
static void gen_cp1 (DisasContext *ctx, uint32_t opc, int rt, int fs)
|
||||
|
||||
static void gen_cp1(DisasContext *ctx, uint32_t opc, int rt, int fs)
|
||||
{
|
||||
TCGv t0 = tcg_temp_new();
|
||||
|
||||
@ -10714,7 +10771,7 @@ static void gen_cp1 (DisasContext *ctx, uint32_t opc, int rt, int fs)
|
||||
tcg_temp_free(t0);
|
||||
}
|
||||
|
||||
static void gen_movci (DisasContext *ctx, int rd, int rs, int cc, int tf)
|
||||
static void gen_movci(DisasContext *ctx, int rd, int rs, int cc, int tf)
|
||||
{
|
||||
TCGLabel *l1;
|
||||
TCGCond cond;
|
||||
@ -10725,10 +10782,11 @@ static void gen_movci (DisasContext *ctx, int rd, int rs, int cc, int tf)
|
||||
return;
|
||||
}
|
||||
|
||||
if (tf)
|
||||
if (tf) {
|
||||
cond = TCG_COND_EQ;
|
||||
else
|
||||
} else {
|
||||
cond = TCG_COND_NE;
|
||||
}
|
||||
|
||||
l1 = gen_new_label();
|
||||
t0 = tcg_temp_new_i32();
|
||||
@ -10750,10 +10808,11 @@ static inline void gen_movcf_s(DisasContext *ctx, int fs, int fd, int cc,
|
||||
TCGv_i32 t0 = tcg_temp_new_i32();
|
||||
TCGLabel *l1 = gen_new_label();
|
||||
|
||||
if (tf)
|
||||
if (tf) {
|
||||
cond = TCG_COND_EQ;
|
||||
else
|
||||
} else {
|
||||
cond = TCG_COND_NE;
|
||||
}
|
||||
|
||||
tcg_gen_andi_i32(t0, fpu_fcr31, 1 << get_fp_bit(cc));
|
||||
tcg_gen_brcondi_i32(cond, t0, 0, l1);
|
||||
@ -10763,17 +10822,19 @@ static inline void gen_movcf_s(DisasContext *ctx, int fs, int fd, int cc,
|
||||
tcg_temp_free_i32(t0);
|
||||
}
|
||||
|
||||
static inline void gen_movcf_d (DisasContext *ctx, int fs, int fd, int cc, int tf)
|
||||
static inline void gen_movcf_d(DisasContext *ctx, int fs, int fd, int cc,
|
||||
int tf)
|
||||
{
|
||||
int cond;
|
||||
TCGv_i32 t0 = tcg_temp_new_i32();
|
||||
TCGv_i64 fp0;
|
||||
TCGLabel *l1 = gen_new_label();
|
||||
|
||||
if (tf)
|
||||
if (tf) {
|
||||
cond = TCG_COND_EQ;
|
||||
else
|
||||
} else {
|
||||
cond = TCG_COND_NE;
|
||||
}
|
||||
|
||||
tcg_gen_andi_i32(t0, fpu_fcr31, 1 << get_fp_bit(cc));
|
||||
tcg_gen_brcondi_i32(cond, t0, 0, l1);
|
||||
@ -10793,10 +10854,11 @@ static inline void gen_movcf_ps(DisasContext *ctx, int fs, int fd,
|
||||
TCGLabel *l1 = gen_new_label();
|
||||
TCGLabel *l2 = gen_new_label();
|
||||
|
||||
if (tf)
|
||||
if (tf) {
|
||||
cond = TCG_COND_EQ;
|
||||
else
|
||||
} else {
|
||||
cond = TCG_COND_NE;
|
||||
}
|
||||
|
||||
tcg_gen_andi_i32(t0, fpu_fcr31, 1 << get_fp_bit(cc));
|
||||
tcg_gen_brcondi_i32(cond, t0, 0, l1);
|
||||
@ -10886,8 +10948,8 @@ static void gen_sel_d(DisasContext *ctx, enum fopcode op1, int fd, int ft,
|
||||
tcg_temp_free_i64(t1);
|
||||
}
|
||||
|
||||
static void gen_farith (DisasContext *ctx, enum fopcode op1,
|
||||
int ft, int fs, int fd, int cc)
|
||||
static void gen_farith(DisasContext *ctx, enum fopcode op1,
|
||||
int ft, int fs, int fd, int cc)
|
||||
{
|
||||
uint32_t func = ctx->opcode & 0x3f;
|
||||
switch (op1) {
|
||||
@ -12092,8 +12154,9 @@ static void gen_farith (DisasContext *ctx, enum fopcode op1,
|
||||
TCGLabel *l1 = gen_new_label();
|
||||
TCGv_i64 fp0;
|
||||
|
||||
if (ft != 0)
|
||||
if (ft != 0) {
|
||||
tcg_gen_brcondi_tl(TCG_COND_NE, cpu_gpr[ft], 0, l1);
|
||||
}
|
||||
fp0 = tcg_temp_new_i64();
|
||||
gen_load_fpr64(ctx, fp0, fs);
|
||||
gen_store_fpr64(ctx, fp0, fd);
|
||||
@ -12314,8 +12377,8 @@ static void gen_farith (DisasContext *ctx, enum fopcode op1,
|
||||
}
|
||||
|
||||
/* Coprocessor 3 (FPU) */
|
||||
static void gen_flt3_ldst (DisasContext *ctx, uint32_t opc,
|
||||
int fd, int fs, int base, int index)
|
||||
static void gen_flt3_ldst(DisasContext *ctx, uint32_t opc,
|
||||
int fd, int fs, int base, int index)
|
||||
{
|
||||
TCGv t0 = tcg_temp_new();
|
||||
|
||||
@ -12394,8 +12457,8 @@ static void gen_flt3_ldst (DisasContext *ctx, uint32_t opc,
|
||||
tcg_temp_free(t0);
|
||||
}
|
||||
|
||||
static void gen_flt3_arith (DisasContext *ctx, uint32_t opc,
|
||||
int fd, int fr, int fs, int ft)
|
||||
static void gen_flt3_arith(DisasContext *ctx, uint32_t opc,
|
||||
int fd, int fr, int fs, int ft)
|
||||
{
|
||||
switch (opc) {
|
||||
case OPC_ALNV_PS:
|
||||
@ -13157,17 +13220,17 @@ enum {
|
||||
RR_RY_CNVT_SEW = 0x6,
|
||||
};
|
||||
|
||||
static int xlat (int r)
|
||||
static int xlat(int r)
|
||||
{
|
||||
static int map[] = { 16, 17, 2, 3, 4, 5, 6, 7 };
|
||||
|
||||
return map[r];
|
||||
}
|
||||
|
||||
static void gen_mips16_save (DisasContext *ctx,
|
||||
int xsregs, int aregs,
|
||||
int do_ra, int do_s0, int do_s1,
|
||||
int framesize)
|
||||
static void gen_mips16_save(DisasContext *ctx,
|
||||
int xsregs, int aregs,
|
||||
int do_ra, int do_s0, int do_s1,
|
||||
int framesize)
|
||||
{
|
||||
TCGv t0 = tcg_temp_new();
|
||||
TCGv t1 = tcg_temp_new();
|
||||
@ -13322,10 +13385,10 @@ static void gen_mips16_save (DisasContext *ctx,
|
||||
tcg_temp_free(t2);
|
||||
}
|
||||
|
||||
static void gen_mips16_restore (DisasContext *ctx,
|
||||
int xsregs, int aregs,
|
||||
int do_ra, int do_s0, int do_s1,
|
||||
int framesize)
|
||||
static void gen_mips16_restore(DisasContext *ctx,
|
||||
int xsregs, int aregs,
|
||||
int do_ra, int do_s0, int do_s1,
|
||||
int framesize)
|
||||
{
|
||||
int astatic;
|
||||
TCGv t0 = tcg_temp_new();
|
||||
@ -13428,8 +13491,8 @@ static void gen_mips16_restore (DisasContext *ctx,
|
||||
tcg_temp_free(t2);
|
||||
}
|
||||
|
||||
static void gen_addiupc (DisasContext *ctx, int rx, int imm,
|
||||
int is_64_bit, int extended)
|
||||
static void gen_addiupc(DisasContext *ctx, int rx, int imm,
|
||||
int is_64_bit, int extended)
|
||||
{
|
||||
TCGv t0;
|
||||
|
||||
@ -13459,9 +13522,9 @@ static void gen_cache_operation(DisasContext *ctx, uint32_t op, int base,
|
||||
}
|
||||
|
||||
#if defined(TARGET_MIPS64)
|
||||
static void decode_i64_mips16 (DisasContext *ctx,
|
||||
int ry, int funct, int16_t offset,
|
||||
int extended)
|
||||
static void decode_i64_mips16(DisasContext *ctx,
|
||||
int ry, int funct, int16_t offset,
|
||||
int extended)
|
||||
{
|
||||
switch (funct) {
|
||||
case I64_LDSP:
|
||||
@ -13520,7 +13583,7 @@ static void decode_i64_mips16 (DisasContext *ctx,
|
||||
}
|
||||
#endif
|
||||
|
||||
static int decode_extended_mips16_opc (CPUMIPSState *env, DisasContext *ctx)
|
||||
static int decode_extended_mips16_opc(CPUMIPSState *env, DisasContext *ctx)
|
||||
{
|
||||
int extend = cpu_lduw_code(env, ctx->base.pc_next + 2);
|
||||
int op, rx, ry, funct, sa;
|
||||
@ -13734,7 +13797,7 @@ static inline void gen_helper_do_semihosting(void *env)
|
||||
}
|
||||
#endif
|
||||
|
||||
static int decode_mips16_opc (CPUMIPSState *env, DisasContext *ctx)
|
||||
static int decode_mips16_opc(CPUMIPSState *env, DisasContext *ctx)
|
||||
{
|
||||
int rx, ry;
|
||||
int sa;
|
||||
@ -13957,7 +14020,7 @@ static int decode_mips16_opc (CPUMIPSState *env, DisasContext *ctx)
|
||||
case M16_OPC_LWPC:
|
||||
gen_ld(ctx, OPC_LWPC, rx, 0, ((uint8_t)ctx->opcode) << 2);
|
||||
break;
|
||||
#if defined (TARGET_MIPS64)
|
||||
#if defined(TARGET_MIPS64)
|
||||
case M16_OPC_LWU:
|
||||
check_insn(ctx, ISA_MIPS3);
|
||||
check_mips_64(ctx);
|
||||
@ -14061,7 +14124,7 @@ static int decode_mips16_opc (CPUMIPSState *env, DisasContext *ctx)
|
||||
case RR_SRAV:
|
||||
gen_shift(ctx, OPC_SRAV, ry, rx, ry);
|
||||
break;
|
||||
#if defined (TARGET_MIPS64)
|
||||
#if defined(TARGET_MIPS64)
|
||||
case RR_DSRL:
|
||||
check_insn(ctx, ISA_MIPS3);
|
||||
check_mips_64(ctx);
|
||||
@ -14124,7 +14187,7 @@ static int decode_mips16_opc (CPUMIPSState *env, DisasContext *ctx)
|
||||
case RR_MFLO:
|
||||
gen_HILO(ctx, OPC_MFLO, 0, rx);
|
||||
break;
|
||||
#if defined (TARGET_MIPS64)
|
||||
#if defined(TARGET_MIPS64)
|
||||
case RR_DSRA:
|
||||
check_insn(ctx, ISA_MIPS3);
|
||||
check_mips_64(ctx);
|
||||
@ -14158,7 +14221,7 @@ static int decode_mips16_opc (CPUMIPSState *env, DisasContext *ctx)
|
||||
case RR_DIVU:
|
||||
gen_muldiv(ctx, OPC_DIVU, 0, rx, ry);
|
||||
break;
|
||||
#if defined (TARGET_MIPS64)
|
||||
#if defined(TARGET_MIPS64)
|
||||
case RR_DMULT:
|
||||
check_insn(ctx, ISA_MIPS3);
|
||||
check_mips_64(ctx);
|
||||
@ -14802,7 +14865,7 @@ enum {
|
||||
ADDIUR1SP = 0x1
|
||||
};
|
||||
|
||||
static int mmreg (int r)
|
||||
static int mmreg(int r)
|
||||
{
|
||||
static const int map[] = { 16, 17, 2, 3, 4, 5, 6, 7 };
|
||||
|
||||
@ -14810,7 +14873,7 @@ static int mmreg (int r)
|
||||
}
|
||||
|
||||
/* Used for 16-bit store instructions. */
|
||||
static int mmreg2 (int r)
|
||||
static int mmreg2(int r)
|
||||
{
|
||||
static const int map[] = { 0, 17, 2, 3, 4, 5, 6, 7 };
|
||||
|
||||
@ -14885,8 +14948,8 @@ static void gen_andi16(DisasContext *ctx)
|
||||
gen_logic_imm(ctx, OPC_ANDI, rd, rs, decoded_imm[encoded]);
|
||||
}
|
||||
|
||||
static void gen_ldst_multiple (DisasContext *ctx, uint32_t opc, int reglist,
|
||||
int base, int16_t offset)
|
||||
static void gen_ldst_multiple(DisasContext *ctx, uint32_t opc, int reglist,
|
||||
int base, int16_t offset)
|
||||
{
|
||||
TCGv t0, t1;
|
||||
TCGv_i32 t2;
|
||||
@ -15159,7 +15222,7 @@ static void gen_pool16c_r6_insn(DisasContext *ctx)
|
||||
}
|
||||
}
|
||||
|
||||
static void gen_ldxs (DisasContext *ctx, int base, int index, int rd)
|
||||
static void gen_ldxs(DisasContext *ctx, int base, int index, int rd)
|
||||
{
|
||||
TCGv t0 = tcg_temp_new();
|
||||
TCGv t1 = tcg_temp_new();
|
||||
@ -15179,8 +15242,8 @@ static void gen_ldxs (DisasContext *ctx, int base, int index, int rd)
|
||||
tcg_temp_free(t1);
|
||||
}
|
||||
|
||||
static void gen_ldst_pair (DisasContext *ctx, uint32_t opc, int rd,
|
||||
int base, int16_t offset)
|
||||
static void gen_ldst_pair(DisasContext *ctx, uint32_t opc, int rd,
|
||||
int base, int16_t offset)
|
||||
{
|
||||
TCGv t0, t1;
|
||||
|
||||
@ -15205,14 +15268,14 @@ static void gen_ldst_pair (DisasContext *ctx, uint32_t opc, int rd,
|
||||
tcg_gen_movi_tl(t1, 4);
|
||||
gen_op_addr_add(ctx, t0, t0, t1);
|
||||
tcg_gen_qemu_ld_tl(t1, t0, ctx->mem_idx, MO_TESL);
|
||||
gen_store_gpr(t1, rd+1);
|
||||
gen_store_gpr(t1, rd + 1);
|
||||
break;
|
||||
case SWP:
|
||||
gen_load_gpr(t1, rd);
|
||||
tcg_gen_qemu_st_tl(t1, t0, ctx->mem_idx, MO_TEUL);
|
||||
tcg_gen_movi_tl(t1, 4);
|
||||
gen_op_addr_add(ctx, t0, t0, t1);
|
||||
gen_load_gpr(t1, rd+1);
|
||||
gen_load_gpr(t1, rd + 1);
|
||||
tcg_gen_qemu_st_tl(t1, t0, ctx->mem_idx, MO_TEUL);
|
||||
break;
|
||||
#ifdef TARGET_MIPS64
|
||||
@ -15226,14 +15289,14 @@ static void gen_ldst_pair (DisasContext *ctx, uint32_t opc, int rd,
|
||||
tcg_gen_movi_tl(t1, 8);
|
||||
gen_op_addr_add(ctx, t0, t0, t1);
|
||||
tcg_gen_qemu_ld_tl(t1, t0, ctx->mem_idx, MO_TEQ);
|
||||
gen_store_gpr(t1, rd+1);
|
||||
gen_store_gpr(t1, rd + 1);
|
||||
break;
|
||||
case SDP:
|
||||
gen_load_gpr(t1, rd);
|
||||
tcg_gen_qemu_st_tl(t1, t0, ctx->mem_idx, MO_TEQ);
|
||||
tcg_gen_movi_tl(t1, 8);
|
||||
gen_op_addr_add(ctx, t0, t0, t1);
|
||||
gen_load_gpr(t1, rd+1);
|
||||
gen_load_gpr(t1, rd + 1);
|
||||
tcg_gen_qemu_st_tl(t1, t0, ctx->mem_idx, MO_TEQ);
|
||||
break;
|
||||
#endif
|
||||
@ -15270,7 +15333,7 @@ static void gen_sync(int stype)
|
||||
tcg_gen_mb(tcg_mo);
|
||||
}
|
||||
|
||||
static void gen_pool32axf (CPUMIPSState *env, DisasContext *ctx, int rt, int rs)
|
||||
static void gen_pool32axf(CPUMIPSState *env, DisasContext *ctx, int rt, int rs)
|
||||
{
|
||||
int extension = (ctx->opcode >> 6) & 0x3f;
|
||||
int minor = (ctx->opcode >> 12) & 0xf;
|
||||
@ -17234,7 +17297,7 @@ static void decode_micromips32_opc(CPUMIPSState *env, DisasContext *ctx)
|
||||
}
|
||||
}
|
||||
|
||||
static int decode_micromips_opc (CPUMIPSState *env, DisasContext *ctx)
|
||||
static int decode_micromips_opc(CPUMIPSState *env, DisasContext *ctx)
|
||||
{
|
||||
uint32_t op;
|
||||
|
||||
@ -27881,11 +27944,11 @@ static void gen_check_zero_element(TCGv tresult, uint8_t df, uint8_t wt)
|
||||
eval_big = 0x8000000000000000ULL;
|
||||
break;
|
||||
}
|
||||
tcg_gen_subi_i64(t0, msa_wr_d[wt<<1], eval_zero_or_big);
|
||||
tcg_gen_andc_i64(t0, t0, msa_wr_d[wt<<1]);
|
||||
tcg_gen_subi_i64(t0, msa_wr_d[wt << 1], eval_zero_or_big);
|
||||
tcg_gen_andc_i64(t0, t0, msa_wr_d[wt << 1]);
|
||||
tcg_gen_andi_i64(t0, t0, eval_big);
|
||||
tcg_gen_subi_i64(t1, msa_wr_d[(wt<<1)+1], eval_zero_or_big);
|
||||
tcg_gen_andc_i64(t1, t1, msa_wr_d[(wt<<1)+1]);
|
||||
tcg_gen_subi_i64(t1, msa_wr_d[(wt << 1) + 1], eval_zero_or_big);
|
||||
tcg_gen_andc_i64(t1, t1, msa_wr_d[(wt << 1) + 1]);
|
||||
tcg_gen_andi_i64(t1, t1, eval_big);
|
||||
tcg_gen_or_i64(t0, t0, t1);
|
||||
/* if all bits are zero then all elements are not zero */
|
||||
@ -27913,7 +27976,7 @@ static void gen_msa_branch(CPUMIPSState *env, DisasContext *ctx, uint32_t op1)
|
||||
case OPC_BNZ_V:
|
||||
{
|
||||
TCGv_i64 t0 = tcg_temp_new_i64();
|
||||
tcg_gen_or_i64(t0, msa_wr_d[wt<<1], msa_wr_d[(wt<<1)+1]);
|
||||
tcg_gen_or_i64(t0, msa_wr_d[wt << 1], msa_wr_d[(wt << 1) + 1]);
|
||||
tcg_gen_setcondi_i64((op1 == OPC_BZ_V) ?
|
||||
TCG_COND_EQ : TCG_COND_NE, t0, t0, 0);
|
||||
tcg_gen_trunc_i64_tl(bcond, t0);
|
||||
@ -29987,12 +30050,14 @@ void mips_cpu_dump_state(CPUState *cs, FILE *f, int flags)
|
||||
env->active_tc.PC, env->active_tc.HI[0], env->active_tc.LO[0],
|
||||
env->hflags, env->btarget, env->bcond);
|
||||
for (i = 0; i < 32; i++) {
|
||||
if ((i & 3) == 0)
|
||||
if ((i & 3) == 0) {
|
||||
qemu_fprintf(f, "GPR%02d:", i);
|
||||
}
|
||||
qemu_fprintf(f, " %s " TARGET_FMT_lx,
|
||||
regnames[i], env->active_tc.gpr[i]);
|
||||
if ((i & 3) == 3)
|
||||
if ((i & 3) == 3) {
|
||||
qemu_fprintf(f, "\n");
|
||||
}
|
||||
}
|
||||
|
||||
qemu_fprintf(f, "CP0 Status 0x%08x Cause 0x%08x EPC 0x" TARGET_FMT_lx "\n",
|
||||
|
@ -30,11 +30,13 @@
|
||||
#define PRINT_RESULTS 0
|
||||
|
||||
|
||||
static inline int32_t check_results(const char *instruction_name,
|
||||
const uint32_t test_count,
|
||||
const double elapsed_time,
|
||||
const uint64_t *b128_result,
|
||||
const uint64_t *b128_expect)
|
||||
static inline int32_t check_results_128(const char *isa_ase_name,
|
||||
const char *group_name,
|
||||
const char *instruction_name,
|
||||
const uint32_t test_count,
|
||||
const double elapsed_time,
|
||||
const uint64_t *b128_result,
|
||||
const uint64_t *b128_expect)
|
||||
{
|
||||
#if PRINT_RESULTS
|
||||
uint32_t ii;
|
||||
@ -56,7 +58,8 @@ static inline int32_t check_results(const char *instruction_name,
|
||||
uint32_t pass_count = 0;
|
||||
uint32_t fail_count = 0;
|
||||
|
||||
printf("%s: ", instruction_name);
|
||||
printf("| %-10s \t| %-20s\t| %-16s \t|",
|
||||
isa_ase_name, group_name, instruction_name);
|
||||
for (i = 0; i < test_count; i++) {
|
||||
if ((b128_result[2 * i] == b128_expect[2 * i]) &&
|
||||
(b128_result[2 * i + 1] == b128_expect[2 * i + 1])) {
|
||||
@ -66,7 +69,7 @@ static inline int32_t check_results(const char *instruction_name,
|
||||
}
|
||||
}
|
||||
|
||||
printf("\tPASS: %3d \tFAIL: %3d \telapsed time: %5.2f ms\n",
|
||||
printf(" PASS: %3d \t| FAIL: %3d \t| elapsed time: %5.2f ms \t|\n",
|
||||
pass_count, fail_count, elapsed_time);
|
||||
|
||||
if (fail_count > 0) {
|
||||
|
@ -30,7 +30,9 @@
|
||||
#define PRINT_RESULTS 0
|
||||
|
||||
|
||||
static inline int32_t check_results_64(const char *instruction_name,
|
||||
static inline int32_t check_results_64(const char *isa_ase_name,
|
||||
const char *group_name,
|
||||
const char *instruction_name,
|
||||
const uint32_t test_count,
|
||||
const double elapsed_time,
|
||||
const uint64_t *b64_result,
|
||||
@ -55,7 +57,8 @@ static inline int32_t check_results_64(const char *instruction_name,
|
||||
uint32_t pass_count = 0;
|
||||
uint32_t fail_count = 0;
|
||||
|
||||
printf("%s: ", instruction_name);
|
||||
printf("| %-10s \t| %-20s\t| %-16s \t|",
|
||||
isa_ase_name, group_name, instruction_name);
|
||||
for (i = 0; i < test_count; i++) {
|
||||
if (b64_result[i] == b64_expect[i]) {
|
||||
pass_count++;
|
||||
@ -64,7 +67,7 @@ static inline int32_t check_results_64(const char *instruction_name,
|
||||
}
|
||||
}
|
||||
|
||||
printf("PASS: %3d FAIL: %3d elapsed time: %5.2f ms\n",
|
||||
printf(" PASS: %3d \t| FAIL: %3d \t| elapsed time: %5.2f ms \t|\n",
|
||||
pass_count, fail_count, elapsed_time);
|
||||
|
||||
if (fail_count > 0) {
|
||||
|
@ -555,19 +555,43 @@ DO_MSA__WD__WS_WT(XOR_V, xor.v)
|
||||
*/
|
||||
|
||||
DO_MSA__WD__WS_WT(PCKEV_B, pckev.b)
|
||||
DO_MSA__WD__WD_WT(PCKEV_B__DDT, pckev.b)
|
||||
DO_MSA__WD__WS_WD(PCKEV_B__DSD, pckev.b)
|
||||
DO_MSA__WD__WS_WT(PCKEV_H, pckev.h)
|
||||
DO_MSA__WD__WD_WT(PCKEV_H__DDT, pckev.h)
|
||||
DO_MSA__WD__WS_WD(PCKEV_H__DSD, pckev.h)
|
||||
DO_MSA__WD__WS_WT(PCKEV_W, pckev.w)
|
||||
DO_MSA__WD__WD_WT(PCKEV_W__DDT, pckev.w)
|
||||
DO_MSA__WD__WS_WD(PCKEV_W__DSD, pckev.w)
|
||||
DO_MSA__WD__WS_WT(PCKEV_D, pckev.d)
|
||||
DO_MSA__WD__WD_WT(PCKEV_D__DDT, pckev.d)
|
||||
DO_MSA__WD__WS_WD(PCKEV_D__DSD, pckev.d)
|
||||
|
||||
DO_MSA__WD__WS_WT(PCKOD_B, pckod.b)
|
||||
DO_MSA__WD__WD_WT(PCKOD_B__DDT, pckod.b)
|
||||
DO_MSA__WD__WS_WD(PCKOD_B__DSD, pckod.b)
|
||||
DO_MSA__WD__WS_WT(PCKOD_H, pckod.h)
|
||||
DO_MSA__WD__WD_WT(PCKOD_H__DDT, pckod.h)
|
||||
DO_MSA__WD__WS_WD(PCKOD_H__DSD, pckod.h)
|
||||
DO_MSA__WD__WS_WT(PCKOD_W, pckod.w)
|
||||
DO_MSA__WD__WD_WT(PCKOD_W__DDT, pckod.w)
|
||||
DO_MSA__WD__WS_WD(PCKOD_W__DSD, pckod.w)
|
||||
DO_MSA__WD__WS_WT(PCKOD_D, pckod.d)
|
||||
DO_MSA__WD__WD_WT(PCKOD_D__DDT, pckod.d)
|
||||
DO_MSA__WD__WS_WD(PCKOD_D__DSD, pckod.d)
|
||||
|
||||
DO_MSA__WD__WS_WT(VSHF_B, vshf.b)
|
||||
DO_MSA__WD__WD_WT(VSHF_B__DDT, vshf.b)
|
||||
DO_MSA__WD__WS_WD(VSHF_B__DSD, vshf.b)
|
||||
DO_MSA__WD__WS_WT(VSHF_H, vshf.h)
|
||||
DO_MSA__WD__WD_WT(VSHF_H__DDT, vshf.h)
|
||||
DO_MSA__WD__WS_WD(VSHF_H__DSD, vshf.h)
|
||||
DO_MSA__WD__WS_WT(VSHF_W, vshf.w)
|
||||
DO_MSA__WD__WD_WT(VSHF_W__DDT, vshf.w)
|
||||
DO_MSA__WD__WS_WD(VSHF_W__DSD, vshf.w)
|
||||
DO_MSA__WD__WS_WT(VSHF_D, vshf.d)
|
||||
DO_MSA__WD__WD_WT(VSHF_D__DDT, vshf.d)
|
||||
DO_MSA__WD__WS_WD(VSHF_D__DSD, vshf.d)
|
||||
|
||||
|
||||
/*
|
||||
|
@ -31,7 +31,9 @@
|
||||
|
||||
int32_t main(void)
|
||||
{
|
||||
char *instruction_name = "NLOC.B";
|
||||
char *isa_ase_name = "MSA";
|
||||
char *group_name = "Bit Count";
|
||||
char *instruction_name = "NLOC.B";
|
||||
int32_t ret;
|
||||
uint32_t i;
|
||||
struct timeval start, end;
|
||||
@ -139,8 +141,9 @@ int32_t main(void)
|
||||
elapsed_time = (end.tv_sec - start.tv_sec) * 1000.0;
|
||||
elapsed_time += (end.tv_usec - start.tv_usec) / 1000.0;
|
||||
|
||||
ret = check_results(instruction_name, TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
ret = check_results_128(isa_ase_name, group_name, instruction_name,
|
||||
TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -31,7 +31,9 @@
|
||||
|
||||
int32_t main(void)
|
||||
{
|
||||
char *instruction_name = "NLOC.D";
|
||||
char *isa_ase_name = "MSA";
|
||||
char *group_name = "Bit Count";
|
||||
char *instruction_name = "NLOC.D";
|
||||
int32_t ret;
|
||||
uint32_t i;
|
||||
struct timeval start, end;
|
||||
@ -139,8 +141,9 @@ int32_t main(void)
|
||||
elapsed_time = (end.tv_sec - start.tv_sec) * 1000.0;
|
||||
elapsed_time += (end.tv_usec - start.tv_usec) / 1000.0;
|
||||
|
||||
ret = check_results(instruction_name, TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
ret = check_results_128(isa_ase_name, group_name, instruction_name,
|
||||
TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -31,7 +31,9 @@
|
||||
|
||||
int32_t main(void)
|
||||
{
|
||||
char *instruction_name = "NLOC.H";
|
||||
char *isa_ase_name = "MSA";
|
||||
char *group_name = "Bit Count";
|
||||
char *instruction_name = "NLOC.H";
|
||||
int32_t ret;
|
||||
uint32_t i;
|
||||
struct timeval start, end;
|
||||
@ -139,8 +141,9 @@ int32_t main(void)
|
||||
elapsed_time = (end.tv_sec - start.tv_sec) * 1000.0;
|
||||
elapsed_time += (end.tv_usec - start.tv_usec) / 1000.0;
|
||||
|
||||
ret = check_results(instruction_name, TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
ret = check_results_128(isa_ase_name, group_name, instruction_name,
|
||||
TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -31,7 +31,9 @@
|
||||
|
||||
int32_t main(void)
|
||||
{
|
||||
char *instruction_name = "NLOC.W";
|
||||
char *isa_ase_name = "MSA";
|
||||
char *group_name = "Bit Count";
|
||||
char *instruction_name = "NLOC.W";
|
||||
int32_t ret;
|
||||
uint32_t i;
|
||||
struct timeval start, end;
|
||||
@ -139,8 +141,9 @@ int32_t main(void)
|
||||
elapsed_time = (end.tv_sec - start.tv_sec) * 1000.0;
|
||||
elapsed_time += (end.tv_usec - start.tv_usec) / 1000.0;
|
||||
|
||||
ret = check_results(instruction_name, TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
ret = check_results_128(isa_ase_name, group_name, instruction_name,
|
||||
TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -31,7 +31,9 @@
|
||||
|
||||
int32_t main(void)
|
||||
{
|
||||
char *instruction_name = "NLZC.B";
|
||||
char *isa_ase_name = "MSA";
|
||||
char *group_name = "Bit Count";
|
||||
char *instruction_name = "NLZC.B";
|
||||
int32_t ret;
|
||||
uint32_t i;
|
||||
struct timeval start, end;
|
||||
@ -139,8 +141,9 @@ int32_t main(void)
|
||||
elapsed_time = (end.tv_sec - start.tv_sec) * 1000.0;
|
||||
elapsed_time += (end.tv_usec - start.tv_usec) / 1000.0;
|
||||
|
||||
ret = check_results(instruction_name, TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
ret = check_results_128(isa_ase_name, group_name, instruction_name,
|
||||
TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -31,7 +31,9 @@
|
||||
|
||||
int32_t main(void)
|
||||
{
|
||||
char *instruction_name = "NLZC.D";
|
||||
char *isa_ase_name = "MSA";
|
||||
char *group_name = "Bit Count";
|
||||
char *instruction_name = "NLZC.D";
|
||||
int32_t ret;
|
||||
uint32_t i;
|
||||
struct timeval start, end;
|
||||
@ -139,8 +141,9 @@ int32_t main(void)
|
||||
elapsed_time = (end.tv_sec - start.tv_sec) * 1000.0;
|
||||
elapsed_time += (end.tv_usec - start.tv_usec) / 1000.0;
|
||||
|
||||
ret = check_results(instruction_name, TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
ret = check_results_128(isa_ase_name, group_name, instruction_name,
|
||||
TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -31,7 +31,9 @@
|
||||
|
||||
int32_t main(void)
|
||||
{
|
||||
char *instruction_name = "NLZC.H";
|
||||
char *isa_ase_name = "MSA";
|
||||
char *group_name = "Bit Count";
|
||||
char *instruction_name = "NLZC.H";
|
||||
int32_t ret;
|
||||
uint32_t i;
|
||||
struct timeval start, end;
|
||||
@ -139,8 +141,9 @@ int32_t main(void)
|
||||
elapsed_time = (end.tv_sec - start.tv_sec) * 1000.0;
|
||||
elapsed_time += (end.tv_usec - start.tv_usec) / 1000.0;
|
||||
|
||||
ret = check_results(instruction_name, TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
ret = check_results_128(isa_ase_name, group_name, instruction_name,
|
||||
TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -31,7 +31,9 @@
|
||||
|
||||
int32_t main(void)
|
||||
{
|
||||
char *instruction_name = "NLZC.W";
|
||||
char *isa_ase_name = "MSA";
|
||||
char *group_name = "Bit Count";
|
||||
char *instruction_name = "NLZC.W";
|
||||
int32_t ret;
|
||||
uint32_t i;
|
||||
struct timeval start, end;
|
||||
@ -139,8 +141,9 @@ int32_t main(void)
|
||||
elapsed_time = (end.tv_sec - start.tv_sec) * 1000.0;
|
||||
elapsed_time += (end.tv_usec - start.tv_usec) / 1000.0;
|
||||
|
||||
ret = check_results(instruction_name, TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
ret = check_results_128(isa_ase_name, group_name, instruction_name,
|
||||
TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -31,7 +31,9 @@
|
||||
|
||||
int32_t main(void)
|
||||
{
|
||||
char *instruction_name = "PCNT.B";
|
||||
char *isa_ase_name = "MSA";
|
||||
char *group_name = "Bit Count";
|
||||
char *instruction_name = "PCNT.B";
|
||||
int32_t ret;
|
||||
uint32_t i;
|
||||
struct timeval start, end;
|
||||
@ -139,8 +141,9 @@ int32_t main(void)
|
||||
elapsed_time = (end.tv_sec - start.tv_sec) * 1000.0;
|
||||
elapsed_time += (end.tv_usec - start.tv_usec) / 1000.0;
|
||||
|
||||
ret = check_results(instruction_name, TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
ret = check_results_128(isa_ase_name, group_name, instruction_name,
|
||||
TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -31,7 +31,9 @@
|
||||
|
||||
int32_t main(void)
|
||||
{
|
||||
char *instruction_name = "PCNT.D";
|
||||
char *isa_ase_name = "MSA";
|
||||
char *group_name = "Bit Count";
|
||||
char *instruction_name = "PCNT.D";
|
||||
int32_t ret;
|
||||
uint32_t i;
|
||||
struct timeval start, end;
|
||||
@ -139,8 +141,9 @@ int32_t main(void)
|
||||
elapsed_time = (end.tv_sec - start.tv_sec) * 1000.0;
|
||||
elapsed_time += (end.tv_usec - start.tv_usec) / 1000.0;
|
||||
|
||||
ret = check_results(instruction_name, TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
ret = check_results_128(isa_ase_name, group_name, instruction_name,
|
||||
TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -31,7 +31,9 @@
|
||||
|
||||
int32_t main(void)
|
||||
{
|
||||
char *instruction_name = "PCNT.H";
|
||||
char *isa_ase_name = "MSA";
|
||||
char *group_name = "Bit Count";
|
||||
char *instruction_name = "PCNT.H";
|
||||
int32_t ret;
|
||||
uint32_t i;
|
||||
struct timeval start, end;
|
||||
@ -139,8 +141,9 @@ int32_t main(void)
|
||||
elapsed_time = (end.tv_sec - start.tv_sec) * 1000.0;
|
||||
elapsed_time += (end.tv_usec - start.tv_usec) / 1000.0;
|
||||
|
||||
ret = check_results(instruction_name, TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
ret = check_results_128(isa_ase_name, group_name, instruction_name,
|
||||
TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -31,7 +31,9 @@
|
||||
|
||||
int32_t main(void)
|
||||
{
|
||||
char *instruction_name = "PCNT.W";
|
||||
char *isa_ase_name = "MSA";
|
||||
char *group_name = "Bit Count";
|
||||
char *instruction_name = "PCNT.W";
|
||||
int32_t ret;
|
||||
uint32_t i;
|
||||
struct timeval start, end;
|
||||
@ -139,8 +141,9 @@ int32_t main(void)
|
||||
elapsed_time = (end.tv_sec - start.tv_sec) * 1000.0;
|
||||
elapsed_time += (end.tv_usec - start.tv_usec) / 1000.0;
|
||||
|
||||
ret = check_results(instruction_name, TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
ret = check_results_128(isa_ase_name, group_name, instruction_name,
|
||||
TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -33,7 +33,9 @@
|
||||
|
||||
int32_t main(void)
|
||||
{
|
||||
char *instruction_name = "BCLR.B";
|
||||
char *isa_ase_name = "MSA";
|
||||
char *group_name = "Bit Set";
|
||||
char *instruction_name = "BCLR.B";
|
||||
int32_t ret;
|
||||
uint32_t i, j;
|
||||
struct timeval start, end;
|
||||
@ -148,8 +150,9 @@ int32_t main(void)
|
||||
elapsed_time = (end.tv_sec - start.tv_sec) * 1000.0;
|
||||
elapsed_time += (end.tv_usec - start.tv_usec) / 1000.0;
|
||||
|
||||
ret = check_results(instruction_name, TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
ret = check_results_128(isa_ase_name, group_name, instruction_name,
|
||||
TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -33,7 +33,9 @@
|
||||
|
||||
int32_t main(void)
|
||||
{
|
||||
char *instruction_name = "BCLR.D";
|
||||
char *isa_ase_name = "MSA";
|
||||
char *group_name = "Bit Set";
|
||||
char *instruction_name = "BCLR.D";
|
||||
int32_t ret;
|
||||
uint32_t i, j;
|
||||
struct timeval start, end;
|
||||
@ -148,8 +150,9 @@ int32_t main(void)
|
||||
elapsed_time = (end.tv_sec - start.tv_sec) * 1000.0;
|
||||
elapsed_time += (end.tv_usec - start.tv_usec) / 1000.0;
|
||||
|
||||
ret = check_results(instruction_name, TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
ret = check_results_128(isa_ase_name, group_name, instruction_name,
|
||||
TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -33,7 +33,9 @@
|
||||
|
||||
int32_t main(void)
|
||||
{
|
||||
char *instruction_name = "BCLR.H";
|
||||
char *isa_ase_name = "MSA";
|
||||
char *group_name = "Bit Set";
|
||||
char *instruction_name = "BCLR.H";
|
||||
int32_t ret;
|
||||
uint32_t i, j;
|
||||
struct timeval start, end;
|
||||
@ -148,8 +150,9 @@ int32_t main(void)
|
||||
elapsed_time = (end.tv_sec - start.tv_sec) * 1000.0;
|
||||
elapsed_time += (end.tv_usec - start.tv_usec) / 1000.0;
|
||||
|
||||
ret = check_results(instruction_name, TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
ret = check_results_128(isa_ase_name, group_name, instruction_name,
|
||||
TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -33,7 +33,9 @@
|
||||
|
||||
int32_t main(void)
|
||||
{
|
||||
char *instruction_name = "BCLR.W";
|
||||
char *isa_ase_name = "MSA";
|
||||
char *group_name = "Bit Set";
|
||||
char *instruction_name = "BCLR.W";
|
||||
int32_t ret;
|
||||
uint32_t i, j;
|
||||
struct timeval start, end;
|
||||
@ -148,8 +150,9 @@ int32_t main(void)
|
||||
elapsed_time = (end.tv_sec - start.tv_sec) * 1000.0;
|
||||
elapsed_time += (end.tv_usec - start.tv_usec) / 1000.0;
|
||||
|
||||
ret = check_results(instruction_name, TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
ret = check_results_128(isa_ase_name, group_name, instruction_name,
|
||||
TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -33,7 +33,9 @@
|
||||
|
||||
int32_t main(void)
|
||||
{
|
||||
char *instruction_name = "BNEG.B";
|
||||
char *isa_ase_name = "MSA";
|
||||
char *group_name = "Bit Set";
|
||||
char *instruction_name = "BNEG.B";
|
||||
int32_t ret;
|
||||
uint32_t i, j;
|
||||
struct timeval start, end;
|
||||
@ -148,8 +150,9 @@ int32_t main(void)
|
||||
elapsed_time = (end.tv_sec - start.tv_sec) * 1000.0;
|
||||
elapsed_time += (end.tv_usec - start.tv_usec) / 1000.0;
|
||||
|
||||
ret = check_results(instruction_name, TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
ret = check_results_128(isa_ase_name, group_name, instruction_name,
|
||||
TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -33,7 +33,9 @@
|
||||
|
||||
int32_t main(void)
|
||||
{
|
||||
char *instruction_name = "BNEG.D";
|
||||
char *isa_ase_name = "MSA";
|
||||
char *group_name = "Bit Set";
|
||||
char *instruction_name = "BNEG.D";
|
||||
int32_t ret;
|
||||
uint32_t i, j;
|
||||
struct timeval start, end;
|
||||
@ -148,8 +150,9 @@ int32_t main(void)
|
||||
elapsed_time = (end.tv_sec - start.tv_sec) * 1000.0;
|
||||
elapsed_time += (end.tv_usec - start.tv_usec) / 1000.0;
|
||||
|
||||
ret = check_results(instruction_name, TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
ret = check_results_128(isa_ase_name, group_name, instruction_name,
|
||||
TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -33,7 +33,9 @@
|
||||
|
||||
int32_t main(void)
|
||||
{
|
||||
char *instruction_name = "BNEG.H";
|
||||
char *isa_ase_name = "MSA";
|
||||
char *group_name = "Bit Set";
|
||||
char *instruction_name = "BNEG.H";
|
||||
int32_t ret;
|
||||
uint32_t i, j;
|
||||
struct timeval start, end;
|
||||
@ -148,8 +150,9 @@ int32_t main(void)
|
||||
elapsed_time = (end.tv_sec - start.tv_sec) * 1000.0;
|
||||
elapsed_time += (end.tv_usec - start.tv_usec) / 1000.0;
|
||||
|
||||
ret = check_results(instruction_name, TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
ret = check_results_128(isa_ase_name, group_name, instruction_name,
|
||||
TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -33,7 +33,9 @@
|
||||
|
||||
int32_t main(void)
|
||||
{
|
||||
char *instruction_name = "BNEG.W";
|
||||
char *isa_ase_name = "MSA";
|
||||
char *group_name = "Bit Set";
|
||||
char *instruction_name = "BNEG.W";
|
||||
int32_t ret;
|
||||
uint32_t i, j;
|
||||
struct timeval start, end;
|
||||
@ -148,8 +150,9 @@ int32_t main(void)
|
||||
elapsed_time = (end.tv_sec - start.tv_sec) * 1000.0;
|
||||
elapsed_time += (end.tv_usec - start.tv_usec) / 1000.0;
|
||||
|
||||
ret = check_results(instruction_name, TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
ret = check_results_128(isa_ase_name, group_name, instruction_name,
|
||||
TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -33,7 +33,9 @@
|
||||
|
||||
int32_t main(void)
|
||||
{
|
||||
char *instruction_name = "BSET.B";
|
||||
char *isa_ase_name = "MSA";
|
||||
char *group_name = "Bit Set";
|
||||
char *instruction_name = "BSET.B";
|
||||
int32_t ret;
|
||||
uint32_t i, j;
|
||||
struct timeval start, end;
|
||||
@ -148,8 +150,9 @@ int32_t main(void)
|
||||
elapsed_time = (end.tv_sec - start.tv_sec) * 1000.0;
|
||||
elapsed_time += (end.tv_usec - start.tv_usec) / 1000.0;
|
||||
|
||||
ret = check_results(instruction_name, TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
ret = check_results_128(isa_ase_name, group_name, instruction_name,
|
||||
TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -33,7 +33,9 @@
|
||||
|
||||
int32_t main(void)
|
||||
{
|
||||
char *instruction_name = "BSET.D";
|
||||
char *isa_ase_name = "MSA";
|
||||
char *group_name = "Bit Set";
|
||||
char *instruction_name = "BSET.D";
|
||||
int32_t ret;
|
||||
uint32_t i, j;
|
||||
struct timeval start, end;
|
||||
@ -148,8 +150,9 @@ int32_t main(void)
|
||||
elapsed_time = (end.tv_sec - start.tv_sec) * 1000.0;
|
||||
elapsed_time += (end.tv_usec - start.tv_usec) / 1000.0;
|
||||
|
||||
ret = check_results(instruction_name, TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
ret = check_results_128(isa_ase_name, group_name, instruction_name,
|
||||
TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -33,7 +33,9 @@
|
||||
|
||||
int32_t main(void)
|
||||
{
|
||||
char *instruction_name = "BSET.H";
|
||||
char *isa_ase_name = "MSA";
|
||||
char *group_name = "Bit Set";
|
||||
char *instruction_name = "BSET.H";
|
||||
int32_t ret;
|
||||
uint32_t i, j;
|
||||
struct timeval start, end;
|
||||
@ -148,8 +150,9 @@ int32_t main(void)
|
||||
elapsed_time = (end.tv_sec - start.tv_sec) * 1000.0;
|
||||
elapsed_time += (end.tv_usec - start.tv_usec) / 1000.0;
|
||||
|
||||
ret = check_results(instruction_name, TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
ret = check_results_128(isa_ase_name, group_name, instruction_name,
|
||||
TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -33,7 +33,9 @@
|
||||
|
||||
int32_t main(void)
|
||||
{
|
||||
char *instruction_name = "BSET.W";
|
||||
char *isa_ase_name = "MSA";
|
||||
char *group_name = "Bit Set";
|
||||
char *instruction_name = "BSET.W";
|
||||
int32_t ret;
|
||||
uint32_t i, j;
|
||||
struct timeval start, end;
|
||||
@ -148,8 +150,9 @@ int32_t main(void)
|
||||
elapsed_time = (end.tv_sec - start.tv_sec) * 1000.0;
|
||||
elapsed_time += (end.tv_usec - start.tv_usec) / 1000.0;
|
||||
|
||||
ret = check_results(instruction_name, TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
ret = check_results_128(isa_ase_name, group_name, instruction_name,
|
||||
TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -35,7 +35,9 @@
|
||||
|
||||
int32_t main(void)
|
||||
{
|
||||
char *instruction_name = "MUL_Q.H";
|
||||
char *isa_ase_name = "MSA";
|
||||
char *group_name = "Fixed Multiply";
|
||||
char *instruction_name = "MUL_Q.H";
|
||||
int32_t ret;
|
||||
uint32_t i, j;
|
||||
struct timeval start, end;
|
||||
@ -150,8 +152,9 @@ int32_t main(void)
|
||||
elapsed_time = (end.tv_sec - start.tv_sec) * 1000.0;
|
||||
elapsed_time += (end.tv_usec - start.tv_usec) / 1000.0;
|
||||
|
||||
ret = check_results(instruction_name, TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
ret = check_results_128(isa_ase_name, group_name, instruction_name,
|
||||
TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -35,7 +35,9 @@
|
||||
|
||||
int32_t main(void)
|
||||
{
|
||||
char *instruction_name = "MUL_Q.W";
|
||||
char *isa_ase_name = "MSA";
|
||||
char *group_name = "Fixed Multiply";
|
||||
char *instruction_name = "MUL_Q.W";
|
||||
int32_t ret;
|
||||
uint32_t i, j;
|
||||
struct timeval start, end;
|
||||
@ -150,8 +152,9 @@ int32_t main(void)
|
||||
elapsed_time = (end.tv_sec - start.tv_sec) * 1000.0;
|
||||
elapsed_time += (end.tv_usec - start.tv_usec) / 1000.0;
|
||||
|
||||
ret = check_results(instruction_name, TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
ret = check_results_128(isa_ase_name, group_name, instruction_name,
|
||||
TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -35,7 +35,9 @@
|
||||
|
||||
int32_t main(void)
|
||||
{
|
||||
char *instruction_name = "MULR_Q.H";
|
||||
char *isa_ase_name = "MSA";
|
||||
char *group_name = "Fixed Multiply";
|
||||
char *instruction_name = "MULR_Q.H";
|
||||
int32_t ret;
|
||||
uint32_t i, j;
|
||||
struct timeval start, end;
|
||||
@ -150,8 +152,9 @@ int32_t main(void)
|
||||
elapsed_time = (end.tv_sec - start.tv_sec) * 1000.0;
|
||||
elapsed_time += (end.tv_usec - start.tv_usec) / 1000.0;
|
||||
|
||||
ret = check_results(instruction_name, TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
ret = check_results_128(isa_ase_name, group_name, instruction_name,
|
||||
TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -35,7 +35,9 @@
|
||||
|
||||
int32_t main(void)
|
||||
{
|
||||
char *instruction_name = "MULR_Q.W";
|
||||
char *isa_ase_name = "MSA";
|
||||
char *group_name = "Fixed Multiply";
|
||||
char *instruction_name = "MULR_Q.W";
|
||||
int32_t ret;
|
||||
uint32_t i, j;
|
||||
struct timeval start, end;
|
||||
@ -150,8 +152,9 @@ int32_t main(void)
|
||||
elapsed_time = (end.tv_sec - start.tv_sec) * 1000.0;
|
||||
elapsed_time += (end.tv_usec - start.tv_usec) / 1000.0;
|
||||
|
||||
ret = check_results(instruction_name, TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
ret = check_results_128(isa_ase_name, group_name, instruction_name,
|
||||
TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -33,7 +33,9 @@
|
||||
|
||||
int32_t main(void)
|
||||
{
|
||||
char *instruction_name = "FMAX_A.D";
|
||||
char *isa_ase_name = "MSA";
|
||||
char *group_name = "Float Max Min";
|
||||
char *instruction_name = "FMAX_A.D";
|
||||
int32_t ret;
|
||||
uint32_t i, j;
|
||||
struct timeval start, end;
|
||||
@ -148,8 +150,9 @@ int32_t main(void)
|
||||
elapsed_time = (end.tv_sec - start.tv_sec) * 1000.0;
|
||||
elapsed_time += (end.tv_usec - start.tv_usec) / 1000.0;
|
||||
|
||||
ret = check_results(instruction_name, TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
ret = check_results_128(isa_ase_name, group_name, instruction_name,
|
||||
TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -33,7 +33,9 @@
|
||||
|
||||
int32_t main(void)
|
||||
{
|
||||
char *instruction_name = "FMAX_A.W";
|
||||
char *isa_ase_name = "MSA";
|
||||
char *group_name = "Float Max Min";
|
||||
char *instruction_name = "FMAX_A.W";
|
||||
int32_t ret;
|
||||
uint32_t i, j;
|
||||
struct timeval start, end;
|
||||
@ -148,8 +150,9 @@ int32_t main(void)
|
||||
elapsed_time = (end.tv_sec - start.tv_sec) * 1000.0;
|
||||
elapsed_time += (end.tv_usec - start.tv_usec) / 1000.0;
|
||||
|
||||
ret = check_results(instruction_name, TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
ret = check_results_128(isa_ase_name, group_name, instruction_name,
|
||||
TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -33,7 +33,9 @@
|
||||
|
||||
int32_t main(void)
|
||||
{
|
||||
char *instruction_name = "FMAX.D";
|
||||
char *isa_ase_name = "MSA";
|
||||
char *group_name = "Float Max Min";
|
||||
char *instruction_name = "FMAX.D";
|
||||
int32_t ret;
|
||||
uint32_t i, j;
|
||||
struct timeval start, end;
|
||||
@ -148,8 +150,9 @@ int32_t main(void)
|
||||
elapsed_time = (end.tv_sec - start.tv_sec) * 1000.0;
|
||||
elapsed_time += (end.tv_usec - start.tv_usec) / 1000.0;
|
||||
|
||||
ret = check_results(instruction_name, TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
ret = check_results_128(isa_ase_name, group_name, instruction_name,
|
||||
TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -33,7 +33,9 @@
|
||||
|
||||
int32_t main(void)
|
||||
{
|
||||
char *instruction_name = "FMAX.W";
|
||||
char *isa_ase_name = "MSA";
|
||||
char *group_name = "Float Max Min";
|
||||
char *instruction_name = "FMAX.W";
|
||||
int32_t ret;
|
||||
uint32_t i, j;
|
||||
struct timeval start, end;
|
||||
@ -148,8 +150,9 @@ int32_t main(void)
|
||||
elapsed_time = (end.tv_sec - start.tv_sec) * 1000.0;
|
||||
elapsed_time += (end.tv_usec - start.tv_usec) / 1000.0;
|
||||
|
||||
ret = check_results(instruction_name, TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
ret = check_results_128(isa_ase_name, group_name, instruction_name,
|
||||
TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -33,7 +33,9 @@
|
||||
|
||||
int32_t main(void)
|
||||
{
|
||||
char *instruction_name = "FMIN_A.D";
|
||||
char *isa_ase_name = "MSA";
|
||||
char *group_name = "Float Max Min";
|
||||
char *instruction_name = "FMIN_A.D";
|
||||
int32_t ret;
|
||||
uint32_t i, j;
|
||||
struct timeval start, end;
|
||||
@ -148,8 +150,9 @@ int32_t main(void)
|
||||
elapsed_time = (end.tv_sec - start.tv_sec) * 1000.0;
|
||||
elapsed_time += (end.tv_usec - start.tv_usec) / 1000.0;
|
||||
|
||||
ret = check_results(instruction_name, TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
ret = check_results_128(isa_ase_name, group_name, instruction_name,
|
||||
TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -33,7 +33,9 @@
|
||||
|
||||
int32_t main(void)
|
||||
{
|
||||
char *instruction_name = "FMIN_A.W";
|
||||
char *isa_ase_name = "MSA";
|
||||
char *group_name = "Float Max Min";
|
||||
char *instruction_name = "FMIN_A.W";
|
||||
int32_t ret;
|
||||
uint32_t i, j;
|
||||
struct timeval start, end;
|
||||
@ -148,8 +150,9 @@ int32_t main(void)
|
||||
elapsed_time = (end.tv_sec - start.tv_sec) * 1000.0;
|
||||
elapsed_time += (end.tv_usec - start.tv_usec) / 1000.0;
|
||||
|
||||
ret = check_results(instruction_name, TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
ret = check_results_128(isa_ase_name, group_name, instruction_name,
|
||||
TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -33,7 +33,9 @@
|
||||
|
||||
int32_t main(void)
|
||||
{
|
||||
char *instruction_name = "FMIN.D";
|
||||
char *isa_ase_name = "MSA";
|
||||
char *group_name = "Float Max Min";
|
||||
char *instruction_name = "FMIN.D";
|
||||
int32_t ret;
|
||||
uint32_t i, j;
|
||||
struct timeval start, end;
|
||||
@ -148,8 +150,9 @@ int32_t main(void)
|
||||
elapsed_time = (end.tv_sec - start.tv_sec) * 1000.0;
|
||||
elapsed_time += (end.tv_usec - start.tv_usec) / 1000.0;
|
||||
|
||||
ret = check_results(instruction_name, TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
ret = check_results_128(isa_ase_name, group_name, instruction_name,
|
||||
TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -33,7 +33,9 @@
|
||||
|
||||
int32_t main(void)
|
||||
{
|
||||
char *instruction_name = "FMIN.W";
|
||||
char *isa_ase_name = "MSA";
|
||||
char *group_name = "Float Max Min";
|
||||
char *instruction_name = "FMIN.W";
|
||||
int32_t ret;
|
||||
uint32_t i, j;
|
||||
struct timeval start, end;
|
||||
@ -148,8 +150,9 @@ int32_t main(void)
|
||||
elapsed_time = (end.tv_sec - start.tv_sec) * 1000.0;
|
||||
elapsed_time += (end.tv_usec - start.tv_usec) / 1000.0;
|
||||
|
||||
ret = check_results(instruction_name, TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
ret = check_results_128(isa_ase_name, group_name, instruction_name,
|
||||
TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -35,7 +35,9 @@
|
||||
|
||||
int32_t main(void)
|
||||
{
|
||||
char *instruction_name = "ADD_A.B";
|
||||
char *isa_ase_name = "MSA";
|
||||
char *group_name = "Int Add";
|
||||
char *instruction_name = "ADD_A.B";
|
||||
int32_t ret;
|
||||
uint32_t i, j;
|
||||
struct timeval start, end;
|
||||
@ -150,8 +152,9 @@ int32_t main(void)
|
||||
elapsed_time = (end.tv_sec - start.tv_sec) * 1000.0;
|
||||
elapsed_time += (end.tv_usec - start.tv_usec) / 1000.0;
|
||||
|
||||
ret = check_results(instruction_name, TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
ret = check_results_128(isa_ase_name, group_name, instruction_name,
|
||||
TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -35,7 +35,9 @@
|
||||
|
||||
int32_t main(void)
|
||||
{
|
||||
char *instruction_name = "ADD_A.D";
|
||||
char *isa_ase_name = "MSA";
|
||||
char *group_name = "Int Add";
|
||||
char *instruction_name = "ADD_A.D";
|
||||
int32_t ret;
|
||||
uint32_t i, j;
|
||||
struct timeval start, end;
|
||||
@ -150,8 +152,9 @@ int32_t main(void)
|
||||
elapsed_time = (end.tv_sec - start.tv_sec) * 1000.0;
|
||||
elapsed_time += (end.tv_usec - start.tv_usec) / 1000.0;
|
||||
|
||||
ret = check_results(instruction_name, TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
ret = check_results_128(isa_ase_name, group_name, instruction_name,
|
||||
TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -35,7 +35,9 @@
|
||||
|
||||
int32_t main(void)
|
||||
{
|
||||
char *instruction_name = "ADD_A.H";
|
||||
char *isa_ase_name = "MSA";
|
||||
char *group_name = "Int Add";
|
||||
char *instruction_name = "ADD_A.H";
|
||||
int32_t ret;
|
||||
uint32_t i, j;
|
||||
struct timeval start, end;
|
||||
@ -150,8 +152,9 @@ int32_t main(void)
|
||||
elapsed_time = (end.tv_sec - start.tv_sec) * 1000.0;
|
||||
elapsed_time += (end.tv_usec - start.tv_usec) / 1000.0;
|
||||
|
||||
ret = check_results(instruction_name, TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
ret = check_results_128(isa_ase_name, group_name, instruction_name,
|
||||
TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -35,7 +35,9 @@
|
||||
|
||||
int32_t main(void)
|
||||
{
|
||||
char *instruction_name = "ADD_A.W";
|
||||
char *isa_ase_name = "MSA";
|
||||
char *group_name = "Int Add";
|
||||
char *instruction_name = "ADD_A.W";
|
||||
int32_t ret;
|
||||
uint32_t i, j;
|
||||
struct timeval start, end;
|
||||
@ -150,8 +152,9 @@ int32_t main(void)
|
||||
elapsed_time = (end.tv_sec - start.tv_sec) * 1000.0;
|
||||
elapsed_time += (end.tv_usec - start.tv_usec) / 1000.0;
|
||||
|
||||
ret = check_results(instruction_name, TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
ret = check_results_128(isa_ase_name, group_name, instruction_name,
|
||||
TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -35,7 +35,9 @@
|
||||
|
||||
int32_t main(void)
|
||||
{
|
||||
char *instruction_name = "ADDS_A.B";
|
||||
char *isa_ase_name = "MSA";
|
||||
char *group_name = "Int Add";
|
||||
char *instruction_name = "ADDS_A.B";
|
||||
int32_t ret;
|
||||
uint32_t i, j;
|
||||
struct timeval start, end;
|
||||
@ -150,8 +152,9 @@ int32_t main(void)
|
||||
elapsed_time = (end.tv_sec - start.tv_sec) * 1000.0;
|
||||
elapsed_time += (end.tv_usec - start.tv_usec) / 1000.0;
|
||||
|
||||
ret = check_results(instruction_name, TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
ret = check_results_128(isa_ase_name, group_name, instruction_name,
|
||||
TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -35,7 +35,9 @@
|
||||
|
||||
int32_t main(void)
|
||||
{
|
||||
char *instruction_name = "ADDS_A.D";
|
||||
char *isa_ase_name = "MSA";
|
||||
char *group_name = "Int Add";
|
||||
char *instruction_name = "ADDS_A.D";
|
||||
int32_t ret;
|
||||
uint32_t i, j;
|
||||
struct timeval start, end;
|
||||
@ -150,8 +152,9 @@ int32_t main(void)
|
||||
elapsed_time = (end.tv_sec - start.tv_sec) * 1000.0;
|
||||
elapsed_time += (end.tv_usec - start.tv_usec) / 1000.0;
|
||||
|
||||
ret = check_results(instruction_name, TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
ret = check_results_128(isa_ase_name, group_name, instruction_name,
|
||||
TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -35,7 +35,9 @@
|
||||
|
||||
int32_t main(void)
|
||||
{
|
||||
char *instruction_name = "ADDS_A.H";
|
||||
char *isa_ase_name = "MSA";
|
||||
char *group_name = "Int Add";
|
||||
char *instruction_name = "ADDS_A.H";
|
||||
int32_t ret;
|
||||
uint32_t i, j;
|
||||
struct timeval start, end;
|
||||
@ -150,8 +152,9 @@ int32_t main(void)
|
||||
elapsed_time = (end.tv_sec - start.tv_sec) * 1000.0;
|
||||
elapsed_time += (end.tv_usec - start.tv_usec) / 1000.0;
|
||||
|
||||
ret = check_results(instruction_name, TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
ret = check_results_128(isa_ase_name, group_name, instruction_name,
|
||||
TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -35,7 +35,9 @@
|
||||
|
||||
int32_t main(void)
|
||||
{
|
||||
char *instruction_name = "ADDS_A.W";
|
||||
char *isa_ase_name = "MSA";
|
||||
char *group_name = "Int Add";
|
||||
char *instruction_name = "ADDS_A.W";
|
||||
int32_t ret;
|
||||
uint32_t i, j;
|
||||
struct timeval start, end;
|
||||
@ -150,8 +152,9 @@ int32_t main(void)
|
||||
elapsed_time = (end.tv_sec - start.tv_sec) * 1000.0;
|
||||
elapsed_time += (end.tv_usec - start.tv_usec) / 1000.0;
|
||||
|
||||
ret = check_results(instruction_name, TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
ret = check_results_128(isa_ase_name, group_name, instruction_name,
|
||||
TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -35,7 +35,9 @@
|
||||
|
||||
int32_t main(void)
|
||||
{
|
||||
char *instruction_name = "ADDS_S.B";
|
||||
char *isa_ase_name = "MSA";
|
||||
char *group_name = "Int Add";
|
||||
char *instruction_name = "ADDS_S.B";
|
||||
int32_t ret;
|
||||
uint32_t i, j;
|
||||
struct timeval start, end;
|
||||
@ -150,8 +152,9 @@ int32_t main(void)
|
||||
elapsed_time = (end.tv_sec - start.tv_sec) * 1000.0;
|
||||
elapsed_time += (end.tv_usec - start.tv_usec) / 1000.0;
|
||||
|
||||
ret = check_results(instruction_name, TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
ret = check_results_128(isa_ase_name, group_name, instruction_name,
|
||||
TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -35,7 +35,9 @@
|
||||
|
||||
int32_t main(void)
|
||||
{
|
||||
char *instruction_name = "ADDS_S.D";
|
||||
char *isa_ase_name = "MSA";
|
||||
char *group_name = "Int Add";
|
||||
char *instruction_name = "ADDS_S.D";
|
||||
int32_t ret;
|
||||
uint32_t i, j;
|
||||
struct timeval start, end;
|
||||
@ -150,8 +152,9 @@ int32_t main(void)
|
||||
elapsed_time = (end.tv_sec - start.tv_sec) * 1000.0;
|
||||
elapsed_time += (end.tv_usec - start.tv_usec) / 1000.0;
|
||||
|
||||
ret = check_results(instruction_name, TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
ret = check_results_128(isa_ase_name, group_name, instruction_name,
|
||||
TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -35,7 +35,9 @@
|
||||
|
||||
int32_t main(void)
|
||||
{
|
||||
char *instruction_name = "ADDS_S.H";
|
||||
char *isa_ase_name = "MSA";
|
||||
char *group_name = "Int Add";
|
||||
char *instruction_name = "ADDS_S.H";
|
||||
int32_t ret;
|
||||
uint32_t i, j;
|
||||
struct timeval start, end;
|
||||
@ -150,8 +152,9 @@ int32_t main(void)
|
||||
elapsed_time = (end.tv_sec - start.tv_sec) * 1000.0;
|
||||
elapsed_time += (end.tv_usec - start.tv_usec) / 1000.0;
|
||||
|
||||
ret = check_results(instruction_name, TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
ret = check_results_128(isa_ase_name, group_name, instruction_name,
|
||||
TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -35,7 +35,9 @@
|
||||
|
||||
int32_t main(void)
|
||||
{
|
||||
char *instruction_name = "ADDS_S.W";
|
||||
char *isa_ase_name = "MSA";
|
||||
char *group_name = "Int Add";
|
||||
char *instruction_name = "ADDS_S.W";
|
||||
int32_t ret;
|
||||
uint32_t i, j;
|
||||
struct timeval start, end;
|
||||
@ -150,8 +152,9 @@ int32_t main(void)
|
||||
elapsed_time = (end.tv_sec - start.tv_sec) * 1000.0;
|
||||
elapsed_time += (end.tv_usec - start.tv_usec) / 1000.0;
|
||||
|
||||
ret = check_results(instruction_name, TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
ret = check_results_128(isa_ase_name, group_name, instruction_name,
|
||||
TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -35,7 +35,9 @@
|
||||
|
||||
int32_t main(void)
|
||||
{
|
||||
char *instruction_name = "ADDS_U.B";
|
||||
char *isa_ase_name = "MSA";
|
||||
char *group_name = "Int Add";
|
||||
char *instruction_name = "ADDS_U.B";
|
||||
int32_t ret;
|
||||
uint32_t i, j;
|
||||
struct timeval start, end;
|
||||
@ -150,8 +152,9 @@ int32_t main(void)
|
||||
elapsed_time = (end.tv_sec - start.tv_sec) * 1000.0;
|
||||
elapsed_time += (end.tv_usec - start.tv_usec) / 1000.0;
|
||||
|
||||
ret = check_results(instruction_name, TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
ret = check_results_128(isa_ase_name, group_name, instruction_name,
|
||||
TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -35,7 +35,9 @@
|
||||
|
||||
int32_t main(void)
|
||||
{
|
||||
char *instruction_name = "ADDS_U.D";
|
||||
char *isa_ase_name = "MSA";
|
||||
char *group_name = "Int Add";
|
||||
char *instruction_name = "ADDS_U.D";
|
||||
int32_t ret;
|
||||
uint32_t i, j;
|
||||
struct timeval start, end;
|
||||
@ -150,8 +152,9 @@ int32_t main(void)
|
||||
elapsed_time = (end.tv_sec - start.tv_sec) * 1000.0;
|
||||
elapsed_time += (end.tv_usec - start.tv_usec) / 1000.0;
|
||||
|
||||
ret = check_results(instruction_name, TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
ret = check_results_128(isa_ase_name, group_name, instruction_name,
|
||||
TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -35,7 +35,9 @@
|
||||
|
||||
int32_t main(void)
|
||||
{
|
||||
char *instruction_name = "ADDS_U.H";
|
||||
char *isa_ase_name = "MSA";
|
||||
char *group_name = "Int Add";
|
||||
char *instruction_name = "ADDS_U.H";
|
||||
int32_t ret;
|
||||
uint32_t i, j;
|
||||
struct timeval start, end;
|
||||
@ -150,8 +152,9 @@ int32_t main(void)
|
||||
elapsed_time = (end.tv_sec - start.tv_sec) * 1000.0;
|
||||
elapsed_time += (end.tv_usec - start.tv_usec) / 1000.0;
|
||||
|
||||
ret = check_results(instruction_name, TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
ret = check_results_128(isa_ase_name, group_name, instruction_name,
|
||||
TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -35,7 +35,9 @@
|
||||
|
||||
int32_t main(void)
|
||||
{
|
||||
char *instruction_name = "ADDS_U.W";
|
||||
char *isa_ase_name = "MSA";
|
||||
char *group_name = "Int Add";
|
||||
char *instruction_name = "ADDS_U.W";
|
||||
int32_t ret;
|
||||
uint32_t i, j;
|
||||
struct timeval start, end;
|
||||
@ -150,8 +152,9 @@ int32_t main(void)
|
||||
elapsed_time = (end.tv_sec - start.tv_sec) * 1000.0;
|
||||
elapsed_time += (end.tv_usec - start.tv_usec) / 1000.0;
|
||||
|
||||
ret = check_results(instruction_name, TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
ret = check_results_128(isa_ase_name, group_name, instruction_name,
|
||||
TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -35,7 +35,9 @@
|
||||
|
||||
int32_t main(void)
|
||||
{
|
||||
char *instruction_name = "ADDV.B";
|
||||
char *isa_ase_name = "MSA";
|
||||
char *group_name = "Int Add";
|
||||
char *instruction_name = "ADDV.B";
|
||||
int32_t ret;
|
||||
uint32_t i, j;
|
||||
struct timeval start, end;
|
||||
@ -150,8 +152,9 @@ int32_t main(void)
|
||||
elapsed_time = (end.tv_sec - start.tv_sec) * 1000.0;
|
||||
elapsed_time += (end.tv_usec - start.tv_usec) / 1000.0;
|
||||
|
||||
ret = check_results(instruction_name, TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
ret = check_results_128(isa_ase_name, group_name, instruction_name,
|
||||
TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -35,7 +35,9 @@
|
||||
|
||||
int32_t main(void)
|
||||
{
|
||||
char *instruction_name = "ADDV.D";
|
||||
char *isa_ase_name = "MSA";
|
||||
char *group_name = "Int Add";
|
||||
char *instruction_name = "ADDV.D";
|
||||
int32_t ret;
|
||||
uint32_t i, j;
|
||||
struct timeval start, end;
|
||||
@ -150,8 +152,9 @@ int32_t main(void)
|
||||
elapsed_time = (end.tv_sec - start.tv_sec) * 1000.0;
|
||||
elapsed_time += (end.tv_usec - start.tv_usec) / 1000.0;
|
||||
|
||||
ret = check_results(instruction_name, TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
ret = check_results_128(isa_ase_name, group_name, instruction_name,
|
||||
TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -35,7 +35,9 @@
|
||||
|
||||
int32_t main(void)
|
||||
{
|
||||
char *instruction_name = "ADDV.H";
|
||||
char *isa_ase_name = "MSA";
|
||||
char *group_name = "Int Add";
|
||||
char *instruction_name = "ADDV.H";
|
||||
int32_t ret;
|
||||
uint32_t i, j;
|
||||
struct timeval start, end;
|
||||
@ -150,8 +152,9 @@ int32_t main(void)
|
||||
elapsed_time = (end.tv_sec - start.tv_sec) * 1000.0;
|
||||
elapsed_time += (end.tv_usec - start.tv_usec) / 1000.0;
|
||||
|
||||
ret = check_results(instruction_name, TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
ret = check_results_128(isa_ase_name, group_name, instruction_name,
|
||||
TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -35,7 +35,9 @@
|
||||
|
||||
int32_t main(void)
|
||||
{
|
||||
char *instruction_name = "ADDV.W";
|
||||
char *isa_ase_name = "MSA";
|
||||
char *group_name = "Int Add";
|
||||
char *instruction_name = "ADDV.W";
|
||||
int32_t ret;
|
||||
uint32_t i, j;
|
||||
struct timeval start, end;
|
||||
@ -150,8 +152,9 @@ int32_t main(void)
|
||||
elapsed_time = (end.tv_sec - start.tv_sec) * 1000.0;
|
||||
elapsed_time += (end.tv_usec - start.tv_usec) / 1000.0;
|
||||
|
||||
ret = check_results(instruction_name, TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
ret = check_results_128(isa_ase_name, group_name, instruction_name,
|
||||
TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -35,7 +35,9 @@
|
||||
|
||||
int32_t main(void)
|
||||
{
|
||||
char *instruction_name = "HADD_S.D";
|
||||
char *isa_ase_name = "MSA";
|
||||
char *group_name = "Int Add";
|
||||
char *instruction_name = "HADD_S.D";
|
||||
int32_t ret;
|
||||
uint32_t i, j;
|
||||
struct timeval start, end;
|
||||
@ -150,8 +152,9 @@ int32_t main(void)
|
||||
elapsed_time = (end.tv_sec - start.tv_sec) * 1000.0;
|
||||
elapsed_time += (end.tv_usec - start.tv_usec) / 1000.0;
|
||||
|
||||
ret = check_results(instruction_name, TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
ret = check_results_128(isa_ase_name, group_name, instruction_name,
|
||||
TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -35,7 +35,9 @@
|
||||
|
||||
int32_t main(void)
|
||||
{
|
||||
char *instruction_name = "HADD_S.H";
|
||||
char *isa_ase_name = "MSA";
|
||||
char *group_name = "Int Add";
|
||||
char *instruction_name = "HADD_S.H";
|
||||
int32_t ret;
|
||||
uint32_t i, j;
|
||||
struct timeval start, end;
|
||||
@ -150,8 +152,9 @@ int32_t main(void)
|
||||
elapsed_time = (end.tv_sec - start.tv_sec) * 1000.0;
|
||||
elapsed_time += (end.tv_usec - start.tv_usec) / 1000.0;
|
||||
|
||||
ret = check_results(instruction_name, TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
ret = check_results_128(isa_ase_name, group_name, instruction_name,
|
||||
TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -35,7 +35,9 @@
|
||||
|
||||
int32_t main(void)
|
||||
{
|
||||
char *instruction_name = "HADD_S.W";
|
||||
char *isa_ase_name = "MSA";
|
||||
char *group_name = "Int Add";
|
||||
char *instruction_name = "HADD_S.W";
|
||||
int32_t ret;
|
||||
uint32_t i, j;
|
||||
struct timeval start, end;
|
||||
@ -150,8 +152,9 @@ int32_t main(void)
|
||||
elapsed_time = (end.tv_sec - start.tv_sec) * 1000.0;
|
||||
elapsed_time += (end.tv_usec - start.tv_usec) / 1000.0;
|
||||
|
||||
ret = check_results(instruction_name, TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
ret = check_results_128(isa_ase_name, group_name, instruction_name,
|
||||
TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -35,7 +35,9 @@
|
||||
|
||||
int32_t main(void)
|
||||
{
|
||||
char *instruction_name = "HADD_U.D";
|
||||
char *isa_ase_name = "MSA";
|
||||
char *group_name = "Int Add";
|
||||
char *instruction_name = "HADD_U.D";
|
||||
int32_t ret;
|
||||
uint32_t i, j;
|
||||
struct timeval start, end;
|
||||
@ -150,8 +152,9 @@ int32_t main(void)
|
||||
elapsed_time = (end.tv_sec - start.tv_sec) * 1000.0;
|
||||
elapsed_time += (end.tv_usec - start.tv_usec) / 1000.0;
|
||||
|
||||
ret = check_results(instruction_name, TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
ret = check_results_128(isa_ase_name, group_name, instruction_name,
|
||||
TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -35,7 +35,9 @@
|
||||
|
||||
int32_t main(void)
|
||||
{
|
||||
char *instruction_name = "HADD_U.H";
|
||||
char *isa_ase_name = "MSA";
|
||||
char *group_name = "Int Add";
|
||||
char *instruction_name = "HADD_U.H";
|
||||
int32_t ret;
|
||||
uint32_t i, j;
|
||||
struct timeval start, end;
|
||||
@ -150,8 +152,9 @@ int32_t main(void)
|
||||
elapsed_time = (end.tv_sec - start.tv_sec) * 1000.0;
|
||||
elapsed_time += (end.tv_usec - start.tv_usec) / 1000.0;
|
||||
|
||||
ret = check_results(instruction_name, TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
ret = check_results_128(isa_ase_name, group_name, instruction_name,
|
||||
TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -35,7 +35,9 @@
|
||||
|
||||
int32_t main(void)
|
||||
{
|
||||
char *instruction_name = "HADD_U.W";
|
||||
char *isa_ase_name = "MSA";
|
||||
char *group_name = "Int Add";
|
||||
char *instruction_name = "HADD_U.W";
|
||||
int32_t ret;
|
||||
uint32_t i, j;
|
||||
struct timeval start, end;
|
||||
@ -150,8 +152,9 @@ int32_t main(void)
|
||||
elapsed_time = (end.tv_sec - start.tv_sec) * 1000.0;
|
||||
elapsed_time += (end.tv_usec - start.tv_usec) / 1000.0;
|
||||
|
||||
ret = check_results(instruction_name, TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
ret = check_results_128(isa_ase_name, group_name, instruction_name,
|
||||
TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -35,7 +35,9 @@
|
||||
|
||||
int32_t main(void)
|
||||
{
|
||||
char *instruction_name = "AVE_S.B";
|
||||
char *isa_ase_name = "MSA";
|
||||
char *group_name = "Int Average";
|
||||
char *instruction_name = "AVE_S.B";
|
||||
int32_t ret;
|
||||
uint32_t i, j;
|
||||
struct timeval start, end;
|
||||
@ -150,8 +152,9 @@ int32_t main(void)
|
||||
elapsed_time = (end.tv_sec - start.tv_sec) * 1000.0;
|
||||
elapsed_time += (end.tv_usec - start.tv_usec) / 1000.0;
|
||||
|
||||
ret = check_results(instruction_name, TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
ret = check_results_128(isa_ase_name, group_name, instruction_name,
|
||||
TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -35,7 +35,9 @@
|
||||
|
||||
int32_t main(void)
|
||||
{
|
||||
char *instruction_name = "AVE_S.D";
|
||||
char *isa_ase_name = "MSA";
|
||||
char *group_name = "Int Average";
|
||||
char *instruction_name = "AVE_S.D";
|
||||
int32_t ret;
|
||||
uint32_t i, j;
|
||||
struct timeval start, end;
|
||||
@ -150,8 +152,9 @@ int32_t main(void)
|
||||
elapsed_time = (end.tv_sec - start.tv_sec) * 1000.0;
|
||||
elapsed_time += (end.tv_usec - start.tv_usec) / 1000.0;
|
||||
|
||||
ret = check_results(instruction_name, TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
ret = check_results_128(isa_ase_name, group_name, instruction_name,
|
||||
TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -35,7 +35,9 @@
|
||||
|
||||
int32_t main(void)
|
||||
{
|
||||
char *instruction_name = "AVE_S.H";
|
||||
char *isa_ase_name = "MSA";
|
||||
char *group_name = "Int Average";
|
||||
char *instruction_name = "AVE_S.H";
|
||||
int32_t ret;
|
||||
uint32_t i, j;
|
||||
struct timeval start, end;
|
||||
@ -150,8 +152,9 @@ int32_t main(void)
|
||||
elapsed_time = (end.tv_sec - start.tv_sec) * 1000.0;
|
||||
elapsed_time += (end.tv_usec - start.tv_usec) / 1000.0;
|
||||
|
||||
ret = check_results(instruction_name, TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
ret = check_results_128(isa_ase_name, group_name, instruction_name,
|
||||
TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -35,7 +35,9 @@
|
||||
|
||||
int32_t main(void)
|
||||
{
|
||||
char *instruction_name = "AVE_S.W";
|
||||
char *isa_ase_name = "MSA";
|
||||
char *group_name = "Int Average";
|
||||
char *instruction_name = "AVE_S.W";
|
||||
int32_t ret;
|
||||
uint32_t i, j;
|
||||
struct timeval start, end;
|
||||
@ -150,8 +152,9 @@ int32_t main(void)
|
||||
elapsed_time = (end.tv_sec - start.tv_sec) * 1000.0;
|
||||
elapsed_time += (end.tv_usec - start.tv_usec) / 1000.0;
|
||||
|
||||
ret = check_results(instruction_name, TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
ret = check_results_128(isa_ase_name, group_name, instruction_name,
|
||||
TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -35,7 +35,9 @@
|
||||
|
||||
int32_t main(void)
|
||||
{
|
||||
char *instruction_name = "AVE_U.B";
|
||||
char *isa_ase_name = "MSA";
|
||||
char *group_name = "Int Average";
|
||||
char *instruction_name = "AVE_U.B";
|
||||
int32_t ret;
|
||||
uint32_t i, j;
|
||||
struct timeval start, end;
|
||||
@ -150,8 +152,9 @@ int32_t main(void)
|
||||
elapsed_time = (end.tv_sec - start.tv_sec) * 1000.0;
|
||||
elapsed_time += (end.tv_usec - start.tv_usec) / 1000.0;
|
||||
|
||||
ret = check_results(instruction_name, TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
ret = check_results_128(isa_ase_name, group_name, instruction_name,
|
||||
TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -35,7 +35,9 @@
|
||||
|
||||
int32_t main(void)
|
||||
{
|
||||
char *instruction_name = "AVE_U.D";
|
||||
char *isa_ase_name = "MSA";
|
||||
char *group_name = "Int Average";
|
||||
char *instruction_name = "AVE_U.D";
|
||||
int32_t ret;
|
||||
uint32_t i, j;
|
||||
struct timeval start, end;
|
||||
@ -150,8 +152,9 @@ int32_t main(void)
|
||||
elapsed_time = (end.tv_sec - start.tv_sec) * 1000.0;
|
||||
elapsed_time += (end.tv_usec - start.tv_usec) / 1000.0;
|
||||
|
||||
ret = check_results(instruction_name, TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
ret = check_results_128(isa_ase_name, group_name, instruction_name,
|
||||
TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -35,7 +35,9 @@
|
||||
|
||||
int32_t main(void)
|
||||
{
|
||||
char *instruction_name = "AVE_U.H";
|
||||
char *isa_ase_name = "MSA";
|
||||
char *group_name = "Int Average";
|
||||
char *instruction_name = "AVE_U.H";
|
||||
int32_t ret;
|
||||
uint32_t i, j;
|
||||
struct timeval start, end;
|
||||
@ -150,8 +152,9 @@ int32_t main(void)
|
||||
elapsed_time = (end.tv_sec - start.tv_sec) * 1000.0;
|
||||
elapsed_time += (end.tv_usec - start.tv_usec) / 1000.0;
|
||||
|
||||
ret = check_results(instruction_name, TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
ret = check_results_128(isa_ase_name, group_name, instruction_name,
|
||||
TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -35,7 +35,9 @@
|
||||
|
||||
int32_t main(void)
|
||||
{
|
||||
char *instruction_name = "AVE_U.W";
|
||||
char *isa_ase_name = "MSA";
|
||||
char *group_name = "Int Average";
|
||||
char *instruction_name = "AVE_U.W";
|
||||
int32_t ret;
|
||||
uint32_t i, j;
|
||||
struct timeval start, end;
|
||||
@ -150,8 +152,9 @@ int32_t main(void)
|
||||
elapsed_time = (end.tv_sec - start.tv_sec) * 1000.0;
|
||||
elapsed_time += (end.tv_usec - start.tv_usec) / 1000.0;
|
||||
|
||||
ret = check_results(instruction_name, TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
ret = check_results_128(isa_ase_name, group_name, instruction_name,
|
||||
TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -35,7 +35,9 @@
|
||||
|
||||
int32_t main(void)
|
||||
{
|
||||
char *instruction_name = "AVER_S.B";
|
||||
char *isa_ase_name = "MSA";
|
||||
char *group_name = "Int Average";
|
||||
char *instruction_name = "AVER_S.B";
|
||||
int32_t ret;
|
||||
uint32_t i, j;
|
||||
struct timeval start, end;
|
||||
@ -150,8 +152,9 @@ int32_t main(void)
|
||||
elapsed_time = (end.tv_sec - start.tv_sec) * 1000.0;
|
||||
elapsed_time += (end.tv_usec - start.tv_usec) / 1000.0;
|
||||
|
||||
ret = check_results(instruction_name, TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
ret = check_results_128(isa_ase_name, group_name, instruction_name,
|
||||
TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -35,7 +35,9 @@
|
||||
|
||||
int32_t main(void)
|
||||
{
|
||||
char *instruction_name = "AVER_S.D";
|
||||
char *isa_ase_name = "MSA";
|
||||
char *group_name = "Int Average";
|
||||
char *instruction_name = "AVER_S.D";
|
||||
int32_t ret;
|
||||
uint32_t i, j;
|
||||
struct timeval start, end;
|
||||
@ -150,8 +152,9 @@ int32_t main(void)
|
||||
elapsed_time = (end.tv_sec - start.tv_sec) * 1000.0;
|
||||
elapsed_time += (end.tv_usec - start.tv_usec) / 1000.0;
|
||||
|
||||
ret = check_results(instruction_name, TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
ret = check_results_128(isa_ase_name, group_name, instruction_name,
|
||||
TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -35,7 +35,9 @@
|
||||
|
||||
int32_t main(void)
|
||||
{
|
||||
char *instruction_name = "AVER_S.H";
|
||||
char *isa_ase_name = "MSA";
|
||||
char *group_name = "Int Average";
|
||||
char *instruction_name = "AVER_S.H";
|
||||
int32_t ret;
|
||||
uint32_t i, j;
|
||||
struct timeval start, end;
|
||||
@ -150,8 +152,9 @@ int32_t main(void)
|
||||
elapsed_time = (end.tv_sec - start.tv_sec) * 1000.0;
|
||||
elapsed_time += (end.tv_usec - start.tv_usec) / 1000.0;
|
||||
|
||||
ret = check_results(instruction_name, TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
ret = check_results_128(isa_ase_name, group_name, instruction_name,
|
||||
TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -35,7 +35,9 @@
|
||||
|
||||
int32_t main(void)
|
||||
{
|
||||
char *instruction_name = "AVER_S.W";
|
||||
char *isa_ase_name = "MSA";
|
||||
char *group_name = "Int Average";
|
||||
char *instruction_name = "AVER_S.W";
|
||||
int32_t ret;
|
||||
uint32_t i, j;
|
||||
struct timeval start, end;
|
||||
@ -150,8 +152,9 @@ int32_t main(void)
|
||||
elapsed_time = (end.tv_sec - start.tv_sec) * 1000.0;
|
||||
elapsed_time += (end.tv_usec - start.tv_usec) / 1000.0;
|
||||
|
||||
ret = check_results(instruction_name, TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
ret = check_results_128(isa_ase_name, group_name, instruction_name,
|
||||
TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -35,7 +35,9 @@
|
||||
|
||||
int32_t main(void)
|
||||
{
|
||||
char *instruction_name = "AVER_U.B";
|
||||
char *isa_ase_name = "MSA";
|
||||
char *group_name = "Int Average";
|
||||
char *instruction_name = "AVER_U.B";
|
||||
int32_t ret;
|
||||
uint32_t i, j;
|
||||
struct timeval start, end;
|
||||
@ -150,8 +152,9 @@ int32_t main(void)
|
||||
elapsed_time = (end.tv_sec - start.tv_sec) * 1000.0;
|
||||
elapsed_time += (end.tv_usec - start.tv_usec) / 1000.0;
|
||||
|
||||
ret = check_results(instruction_name, TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
ret = check_results_128(isa_ase_name, group_name, instruction_name,
|
||||
TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -35,7 +35,9 @@
|
||||
|
||||
int32_t main(void)
|
||||
{
|
||||
char *instruction_name = "AVER_U.D";
|
||||
char *isa_ase_name = "MSA";
|
||||
char *group_name = "Int Average";
|
||||
char *instruction_name = "AVER_U.D";
|
||||
int32_t ret;
|
||||
uint32_t i, j;
|
||||
struct timeval start, end;
|
||||
@ -150,8 +152,9 @@ int32_t main(void)
|
||||
elapsed_time = (end.tv_sec - start.tv_sec) * 1000.0;
|
||||
elapsed_time += (end.tv_usec - start.tv_usec) / 1000.0;
|
||||
|
||||
ret = check_results(instruction_name, TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
ret = check_results_128(isa_ase_name, group_name, instruction_name,
|
||||
TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -35,7 +35,9 @@
|
||||
|
||||
int32_t main(void)
|
||||
{
|
||||
char *instruction_name = "AVER_U.H";
|
||||
char *isa_ase_name = "MSA";
|
||||
char *group_name = "Int Average";
|
||||
char *instruction_name = "AVER_U.H";
|
||||
int32_t ret;
|
||||
uint32_t i, j;
|
||||
struct timeval start, end;
|
||||
@ -150,8 +152,9 @@ int32_t main(void)
|
||||
elapsed_time = (end.tv_sec - start.tv_sec) * 1000.0;
|
||||
elapsed_time += (end.tv_usec - start.tv_usec) / 1000.0;
|
||||
|
||||
ret = check_results(instruction_name, TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
ret = check_results_128(isa_ase_name, group_name, instruction_name,
|
||||
TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -35,7 +35,9 @@
|
||||
|
||||
int32_t main(void)
|
||||
{
|
||||
char *instruction_name = "AVER_U.W";
|
||||
char *isa_ase_name = "MSA";
|
||||
char *group_name = "Int Average";
|
||||
char *instruction_name = "AVER_U.W";
|
||||
int32_t ret;
|
||||
uint32_t i, j;
|
||||
struct timeval start, end;
|
||||
@ -150,8 +152,9 @@ int32_t main(void)
|
||||
elapsed_time = (end.tv_sec - start.tv_sec) * 1000.0;
|
||||
elapsed_time += (end.tv_usec - start.tv_usec) / 1000.0;
|
||||
|
||||
ret = check_results(instruction_name, TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
ret = check_results_128(isa_ase_name, group_name, instruction_name,
|
||||
TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -35,7 +35,9 @@
|
||||
|
||||
int32_t main(void)
|
||||
{
|
||||
char *instruction_name = "CEQ.B";
|
||||
char *isa_ase_name = "MSA";
|
||||
char *group_name = "Int Compare";
|
||||
char *instruction_name = "CEQ.B";
|
||||
int32_t ret;
|
||||
uint32_t i, j;
|
||||
struct timeval start, end;
|
||||
@ -150,8 +152,9 @@ int32_t main(void)
|
||||
elapsed_time = (end.tv_sec - start.tv_sec) * 1000.0;
|
||||
elapsed_time += (end.tv_usec - start.tv_usec) / 1000.0;
|
||||
|
||||
ret = check_results(instruction_name, TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
ret = check_results_128(isa_ase_name, group_name, instruction_name,
|
||||
TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -35,7 +35,9 @@
|
||||
|
||||
int32_t main(void)
|
||||
{
|
||||
char *instruction_name = "CEQ.D";
|
||||
char *isa_ase_name = "MSA";
|
||||
char *group_name = "Int Compare";
|
||||
char *instruction_name = "CEQ.D";
|
||||
int32_t ret;
|
||||
uint32_t i, j;
|
||||
struct timeval start, end;
|
||||
@ -150,8 +152,9 @@ int32_t main(void)
|
||||
elapsed_time = (end.tv_sec - start.tv_sec) * 1000.0;
|
||||
elapsed_time += (end.tv_usec - start.tv_usec) / 1000.0;
|
||||
|
||||
ret = check_results(instruction_name, TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
ret = check_results_128(isa_ase_name, group_name, instruction_name,
|
||||
TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -35,7 +35,9 @@
|
||||
|
||||
int32_t main(void)
|
||||
{
|
||||
char *instruction_name = "CEQ.H";
|
||||
char *isa_ase_name = "MSA";
|
||||
char *group_name = "Int Compare";
|
||||
char *instruction_name = "CEQ.H";
|
||||
int32_t ret;
|
||||
uint32_t i, j;
|
||||
struct timeval start, end;
|
||||
@ -150,8 +152,9 @@ int32_t main(void)
|
||||
elapsed_time = (end.tv_sec - start.tv_sec) * 1000.0;
|
||||
elapsed_time += (end.tv_usec - start.tv_usec) / 1000.0;
|
||||
|
||||
ret = check_results(instruction_name, TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
ret = check_results_128(isa_ase_name, group_name, instruction_name,
|
||||
TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -35,7 +35,9 @@
|
||||
|
||||
int32_t main(void)
|
||||
{
|
||||
char *instruction_name = "CEQ.W";
|
||||
char *isa_ase_name = "MSA";
|
||||
char *group_name = "Int Compare";
|
||||
char *instruction_name = "CEQ.W";
|
||||
int32_t ret;
|
||||
uint32_t i, j;
|
||||
struct timeval start, end;
|
||||
@ -150,8 +152,9 @@ int32_t main(void)
|
||||
elapsed_time = (end.tv_sec - start.tv_sec) * 1000.0;
|
||||
elapsed_time += (end.tv_usec - start.tv_usec) / 1000.0;
|
||||
|
||||
ret = check_results(instruction_name, TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
ret = check_results_128(isa_ase_name, group_name, instruction_name,
|
||||
TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -35,7 +35,9 @@
|
||||
|
||||
int32_t main(void)
|
||||
{
|
||||
char *instruction_name = "CLE_S.B";
|
||||
char *isa_ase_name = "MSA";
|
||||
char *group_name = "Int Compare";
|
||||
char *instruction_name = "CLE_S.B";
|
||||
int32_t ret;
|
||||
uint32_t i, j;
|
||||
struct timeval start, end;
|
||||
@ -150,8 +152,9 @@ int32_t main(void)
|
||||
elapsed_time = (end.tv_sec - start.tv_sec) * 1000.0;
|
||||
elapsed_time += (end.tv_usec - start.tv_usec) / 1000.0;
|
||||
|
||||
ret = check_results(instruction_name, TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
ret = check_results_128(isa_ase_name, group_name, instruction_name,
|
||||
TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -35,7 +35,9 @@
|
||||
|
||||
int32_t main(void)
|
||||
{
|
||||
char *instruction_name = "CLE_S.D";
|
||||
char *isa_ase_name = "MSA";
|
||||
char *group_name = "Int Compare";
|
||||
char *instruction_name = "CLE_S.D";
|
||||
int32_t ret;
|
||||
uint32_t i, j;
|
||||
struct timeval start, end;
|
||||
@ -150,8 +152,9 @@ int32_t main(void)
|
||||
elapsed_time = (end.tv_sec - start.tv_sec) * 1000.0;
|
||||
elapsed_time += (end.tv_usec - start.tv_usec) / 1000.0;
|
||||
|
||||
ret = check_results(instruction_name, TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
ret = check_results_128(isa_ase_name, group_name, instruction_name,
|
||||
TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -35,7 +35,9 @@
|
||||
|
||||
int32_t main(void)
|
||||
{
|
||||
char *instruction_name = "CLE_S.H";
|
||||
char *isa_ase_name = "MSA";
|
||||
char *group_name = "Int Compare";
|
||||
char *instruction_name = "CLE_S.H";
|
||||
int32_t ret;
|
||||
uint32_t i, j;
|
||||
struct timeval start, end;
|
||||
@ -150,8 +152,9 @@ int32_t main(void)
|
||||
elapsed_time = (end.tv_sec - start.tv_sec) * 1000.0;
|
||||
elapsed_time += (end.tv_usec - start.tv_usec) / 1000.0;
|
||||
|
||||
ret = check_results(instruction_name, TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
ret = check_results_128(isa_ase_name, group_name, instruction_name,
|
||||
TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -35,7 +35,9 @@
|
||||
|
||||
int32_t main(void)
|
||||
{
|
||||
char *instruction_name = "CLE_S.W";
|
||||
char *isa_ase_name = "MSA";
|
||||
char *group_name = "Int Compare";
|
||||
char *instruction_name = "CLE_S.W";
|
||||
int32_t ret;
|
||||
uint32_t i, j;
|
||||
struct timeval start, end;
|
||||
@ -150,8 +152,9 @@ int32_t main(void)
|
||||
elapsed_time = (end.tv_sec - start.tv_sec) * 1000.0;
|
||||
elapsed_time += (end.tv_usec - start.tv_usec) / 1000.0;
|
||||
|
||||
ret = check_results(instruction_name, TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
ret = check_results_128(isa_ase_name, group_name, instruction_name,
|
||||
TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -35,7 +35,9 @@
|
||||
|
||||
int32_t main(void)
|
||||
{
|
||||
char *instruction_name = "CLE_U.B";
|
||||
char *isa_ase_name = "MSA";
|
||||
char *group_name = "Int Compare";
|
||||
char *instruction_name = "CLE_U.B";
|
||||
int32_t ret;
|
||||
uint32_t i, j;
|
||||
struct timeval start, end;
|
||||
@ -150,8 +152,9 @@ int32_t main(void)
|
||||
elapsed_time = (end.tv_sec - start.tv_sec) * 1000.0;
|
||||
elapsed_time += (end.tv_usec - start.tv_usec) / 1000.0;
|
||||
|
||||
ret = check_results(instruction_name, TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
ret = check_results_128(isa_ase_name, group_name, instruction_name,
|
||||
TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -35,7 +35,9 @@
|
||||
|
||||
int32_t main(void)
|
||||
{
|
||||
char *instruction_name = "CLE_U.D";
|
||||
char *isa_ase_name = "MSA";
|
||||
char *group_name = "Int Compare";
|
||||
char *instruction_name = "CLE_U.D";
|
||||
int32_t ret;
|
||||
uint32_t i, j;
|
||||
struct timeval start, end;
|
||||
@ -150,8 +152,9 @@ int32_t main(void)
|
||||
elapsed_time = (end.tv_sec - start.tv_sec) * 1000.0;
|
||||
elapsed_time += (end.tv_usec - start.tv_usec) / 1000.0;
|
||||
|
||||
ret = check_results(instruction_name, TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
ret = check_results_128(isa_ase_name, group_name, instruction_name,
|
||||
TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -35,7 +35,9 @@
|
||||
|
||||
int32_t main(void)
|
||||
{
|
||||
char *instruction_name = "CLE_U.H";
|
||||
char *isa_ase_name = "MSA";
|
||||
char *group_name = "Int Compare";
|
||||
char *instruction_name = "CLE_U.H";
|
||||
int32_t ret;
|
||||
uint32_t i, j;
|
||||
struct timeval start, end;
|
||||
@ -150,8 +152,9 @@ int32_t main(void)
|
||||
elapsed_time = (end.tv_sec - start.tv_sec) * 1000.0;
|
||||
elapsed_time += (end.tv_usec - start.tv_usec) / 1000.0;
|
||||
|
||||
ret = check_results(instruction_name, TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
ret = check_results_128(isa_ase_name, group_name, instruction_name,
|
||||
TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -35,7 +35,9 @@
|
||||
|
||||
int32_t main(void)
|
||||
{
|
||||
char *instruction_name = "CLE_U.W";
|
||||
char *isa_ase_name = "MSA";
|
||||
char *group_name = "Int Compare";
|
||||
char *instruction_name = "CLE_U.W";
|
||||
int32_t ret;
|
||||
uint32_t i, j;
|
||||
struct timeval start, end;
|
||||
@ -150,8 +152,9 @@ int32_t main(void)
|
||||
elapsed_time = (end.tv_sec - start.tv_sec) * 1000.0;
|
||||
elapsed_time += (end.tv_usec - start.tv_usec) / 1000.0;
|
||||
|
||||
ret = check_results(instruction_name, TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
ret = check_results_128(isa_ase_name, group_name, instruction_name,
|
||||
TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -35,7 +35,9 @@
|
||||
|
||||
int32_t main(void)
|
||||
{
|
||||
char *instruction_name = "CLT_S.B";
|
||||
char *isa_ase_name = "MSA";
|
||||
char *group_name = "Int Compare";
|
||||
char *instruction_name = "CLT_S.B";
|
||||
int32_t ret;
|
||||
uint32_t i, j;
|
||||
struct timeval start, end;
|
||||
@ -150,8 +152,9 @@ int32_t main(void)
|
||||
elapsed_time = (end.tv_sec - start.tv_sec) * 1000.0;
|
||||
elapsed_time += (end.tv_usec - start.tv_usec) / 1000.0;
|
||||
|
||||
ret = check_results(instruction_name, TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
ret = check_results_128(isa_ase_name, group_name, instruction_name,
|
||||
TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -35,7 +35,9 @@
|
||||
|
||||
int32_t main(void)
|
||||
{
|
||||
char *instruction_name = "CLT_S.D";
|
||||
char *isa_ase_name = "MSA";
|
||||
char *group_name = "Int Compare";
|
||||
char *instruction_name = "CLT_S.D";
|
||||
int32_t ret;
|
||||
uint32_t i, j;
|
||||
struct timeval start, end;
|
||||
@ -150,8 +152,9 @@ int32_t main(void)
|
||||
elapsed_time = (end.tv_sec - start.tv_sec) * 1000.0;
|
||||
elapsed_time += (end.tv_usec - start.tv_usec) / 1000.0;
|
||||
|
||||
ret = check_results(instruction_name, TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
ret = check_results_128(isa_ase_name, group_name, instruction_name,
|
||||
TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -35,7 +35,9 @@
|
||||
|
||||
int32_t main(void)
|
||||
{
|
||||
char *instruction_name = "CLT_S.H";
|
||||
char *isa_ase_name = "MSA";
|
||||
char *group_name = "Int Compare";
|
||||
char *instruction_name = "CLT_S.H";
|
||||
int32_t ret;
|
||||
uint32_t i, j;
|
||||
struct timeval start, end;
|
||||
@ -150,8 +152,9 @@ int32_t main(void)
|
||||
elapsed_time = (end.tv_sec - start.tv_sec) * 1000.0;
|
||||
elapsed_time += (end.tv_usec - start.tv_usec) / 1000.0;
|
||||
|
||||
ret = check_results(instruction_name, TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
ret = check_results_128(isa_ase_name, group_name, instruction_name,
|
||||
TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -35,7 +35,9 @@
|
||||
|
||||
int32_t main(void)
|
||||
{
|
||||
char *instruction_name = "CLT_S.W";
|
||||
char *isa_ase_name = "MSA";
|
||||
char *group_name = "Int Compare";
|
||||
char *instruction_name = "CLT_S.W";
|
||||
int32_t ret;
|
||||
uint32_t i, j;
|
||||
struct timeval start, end;
|
||||
@ -150,8 +152,9 @@ int32_t main(void)
|
||||
elapsed_time = (end.tv_sec - start.tv_sec) * 1000.0;
|
||||
elapsed_time += (end.tv_usec - start.tv_usec) / 1000.0;
|
||||
|
||||
ret = check_results(instruction_name, TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
ret = check_results_128(isa_ase_name, group_name, instruction_name,
|
||||
TEST_COUNT_TOTAL, elapsed_time,
|
||||
&b128_result[0][0], &b128_expect[0][0]);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user