replaced horribly broken 64-bit float implementation

This commit is contained in:
Anthony Pesch 2016-01-31 00:42:36 -08:00
parent 8d9987843d
commit 72b5edbeba
20 changed files with 650 additions and 506 deletions

View File

@ -252,9 +252,13 @@ set(TEST_ASM
test/asm/fld.s
test/asm/float.s
test/asm/fmac.s
test/asm/fmovd.s
test/asm/fmovf.s
test/asm/fmovsz.s
test/asm/fmov.s
test/asm/fmov_load.s
test/asm/fmov_index_load.s
test/asm/fmov_store.s
test/asm/fmov_index_store.s
test/asm/fmov_save.s
test/asm/fmov_restore.s
test/asm/fmul.s
test/asm/fneg.s
test/asm/frchg.s
@ -321,10 +325,10 @@ endif()
# build test binary
set(DREAVM_TEST_SOURCES
${DREAVM_SOURCES}
test/test_interval_tree.cc
test/test_intrusive_list.cc
test/test_minmax_heap.cc
test/test_ring_buffer.cc
#test/test_interval_tree.cc
#test/test_intrusive_list.cc
#test/test_minmax_heap.cc
#test/test_ring_buffer.cc
test/test_sh4.cc
${asm_inc})
list(REMOVE_ITEM DREAVM_TEST_SOURCES src/main.cc)

View File

@ -385,10 +385,6 @@ void SH4::FPSCRUpdated(SH4Context *ctx, uint64_t old_fpscr) {
if ((ctx->fpscr & FR) != (old_fpscr & FR)) {
self->SwapFPRegisters();
}
if ((ctx->fpscr & PR) != (old_fpscr & PR)) {
self->SwapFPCouples();
}
}
void SH4::SetRegisterBank(int bank) {
@ -417,20 +413,6 @@ void SH4::SwapFPRegisters() {
}
}
void SH4::SwapFPCouples() {
uint32_t z;
for (int s = 0; s <= 15; s = s + 2) {
z = ctx_.fr[s];
ctx_.fr[s] = ctx_.fr[s + 1];
ctx_.fr[s + 1] = z;
z = ctx_.xf[s];
ctx_.xf[s] = ctx_.xf[s + 1];
ctx_.xf[s + 1] = z;
}
}
//
// CCN
//

View File

@ -148,7 +148,6 @@ class SH4 {
void SetRegisterBank(int bank);
void SwapFPRegisters();
void SwapFPCouples();
// CCN
void ResetCache();

View File

@ -1,8 +1,8 @@
#define _USE_MATH_DEFINES
#include <math.h>
#include "core/assert.h"
#include "emu/profiler.h"
#include "jit/frontend/sh4/sh4_builder.h"
using namespace dvm;
using namespace dvm::hw;
using namespace dvm::jit;
using namespace dvm::jit::frontend;
@ -40,8 +40,8 @@ void SH4Builder::Emit(uint32_t start_addr, const SH4Context &ctx) {
Instr instr;
// use fpu state when generating code
fpu_state_.double_precision = ctx.fpscr & PR;
fpu_state_.single_precision_pair = ctx.fpscr & SZ;
fpu_state_.double_pr = ctx.fpscr & PR;
fpu_state_.double_sz = ctx.fpscr & SZ;
while (true) {
instr.addr = addr;
@ -106,18 +106,31 @@ void SH4Builder::StoreRegister(int n, Value *v) {
}
Value *SH4Builder::LoadRegisterF(int n, ValueTy type) {
if (SizeForType(type) == 4) {
// see notes in sh4_context.h
n ^= 1;
}
return LoadContext(offsetof(SH4Context, fr[n]), type);
}
void SH4Builder::StoreRegisterF(int n, Value *v) {
if (SizeForType(v->type()) == 4) {
n ^= 1;
}
return StoreContext(offsetof(SH4Context, fr[n]), v);
}
Value *SH4Builder::LoadRegisterXF(int n, ValueTy type) {
if (SizeForType(type) == 4) {
n ^= 1;
}
return LoadContext(offsetof(SH4Context, xf[n]), type);
}
void SH4Builder::StoreRegisterXF(int n, Value *v) {
if (SizeForType(v->type()) == 4) {
n ^= 1;
}
return StoreContext(offsetof(SH4Context, xf[n]), v);
}
@ -1521,28 +1534,24 @@ EMITTER(FLDI0) { b.StoreRegisterF(i.Rn, b.AllocConstant(0)); }
// FLDI1 FRn 1111nnnn10011101
EMITTER(FLDI1) { b.StoreRegisterF(i.Rn, b.AllocConstant(0x3F800000)); }
// FMOV FRm,FRn PR=0 SZ=0 FRm -> FRn 1111nnnnmmmm1100
// FMOV DRm,DRn PR=0 SZ=1 DRm -> DRn 1111nnn0mmm01100
// FMOV XDm,DRn PR=1 XDm -> DRn 1111nnn0mmm11100
// FMOV DRm,XDn PR=1 DRm -> XDn 1111nnn1mmm01100
// FMOV XDm,XDn PR=1 XDm -> XDn 1111nnn1mmm11100
EMITTER(FMOV0) {
if (fpu.double_precision || fpu.single_precision_pair) {
// FMOV FRm,FRn 1111nnnnmmmm1100
// FMOV DRm,DRn 1111nnn0mmm01100
// FMOV XDm,DRn 1111nnn0mmm11100
// FMOV DRm,XDn 1111nnn1mmm01100
// FMOV XDm,XDn 1111nnn1mmm11100
EMITTER(FMOV) {
if (fpu.double_sz) {
if (i.Rm & 1) {
if (i.Rn & 1) {
b.StoreRegisterXF(i.Rn & 0xe, b.LoadRegisterXF(i.Rm & 0xe, VALUE_I32));
b.StoreRegisterXF(i.Rn | 0x1, b.LoadRegisterXF(i.Rm | 0x1, VALUE_I32));
b.StoreRegisterXF(i.Rn & 0xe, b.LoadRegisterXF(i.Rm & 0xe, VALUE_I64));
} else {
b.StoreRegisterF(i.Rn & 0xe, b.LoadRegisterXF(i.Rm & 0xe, VALUE_I32));
b.StoreRegisterF(i.Rn | 0x1, b.LoadRegisterXF(i.Rm | 0x1, VALUE_I32));
b.StoreRegisterF(i.Rn, b.LoadRegisterXF(i.Rm & 0xe, VALUE_I64));
}
} else {
if (i.Rn & 1) {
b.StoreRegisterXF(i.Rn & 0xe, b.LoadRegisterF(i.Rm & 0xe, VALUE_I32));
b.StoreRegisterXF(i.Rn | 0x1, b.LoadRegisterF(i.Rm | 0x1, VALUE_I32));
b.StoreRegisterXF(i.Rn & 0xe, b.LoadRegisterF(i.Rm, VALUE_I64));
} else {
b.StoreRegisterF(i.Rn & 0xe, b.LoadRegisterF(i.Rm & 0xe, VALUE_I32));
b.StoreRegisterF(i.Rn | 0x1, b.LoadRegisterF(i.Rm | 0x1, VALUE_I32));
b.StoreRegisterF(i.Rn, b.LoadRegisterF(i.Rm, VALUE_I64));
}
}
} else {
@ -1550,31 +1559,19 @@ EMITTER(FMOV0) {
}
}
// FMOV.S @Rm,FRn PR=0 SZ=0 1111nnnnmmmm1000
// FMOV @Rm,DRn PR=0 SZ=1 1111nnn0mmmm1000
// FMOV @Rm,XDn PR=0 SZ=1 1111nnn1mmmm1000
// FMOV @Rm,XDn PR=1 1111nnn1mmmm1000
// FMOV @Rm,DRn PR=1 1111nnn0mmmm1000
EMITTER(FMOV1) {
// FMOV.S @Rm,FRn 1111nnnnmmmm1000
// FMOV @Rm,DRn 1111nnn0mmmm1000
// FMOV @Rm,XDn 1111nnn1mmmm1000
EMITTER(FMOV_LOAD) {
Value *addr = b.LoadRegister(i.Rm, VALUE_I32);
if (fpu.double_precision) {
if (i.Rn & 1) {
b.StoreRegisterXF(i.Rn | 0x1, b.LoadGuest(addr, VALUE_I32));
b.StoreRegisterXF(
i.Rn & 0xe, b.LoadGuest(b.Add(addr, b.AllocConstant(4)), VALUE_I32));
} else {
b.StoreRegisterF(i.Rn | 0x1, b.LoadGuest(addr, VALUE_I32));
b.StoreRegisterF(i.Rn & 0xe,
b.LoadGuest(b.Add(addr, b.AllocConstant(4)), VALUE_I32));
}
} else if (fpu.single_precision_pair) {
if (fpu.double_sz) {
if (i.Rn & 1) {
b.StoreRegisterXF(i.Rn & 0xe, b.LoadGuest(addr, VALUE_I32));
b.StoreRegisterXF(
i.Rn | 0x1, b.LoadGuest(b.Add(addr, b.AllocConstant(4)), VALUE_I32));
i.Rn, b.LoadGuest(b.Add(addr, b.AllocConstant(4)), VALUE_I32));
} else {
b.StoreRegisterF(i.Rn & 0xe, b.LoadGuest(addr, VALUE_I32));
b.StoreRegisterF(i.Rn, b.LoadGuest(addr, VALUE_I32));
b.StoreRegisterF(i.Rn | 0x1,
b.LoadGuest(b.Add(addr, b.AllocConstant(4)), VALUE_I32));
}
@ -1583,26 +1580,20 @@ EMITTER(FMOV1) {
}
}
// FMOV.S @(R0,Rm),FRn PR=0 SZ=0 1111nnnnmmmm0110
// FMOV @(R0,Rm),DRn PR=0 SZ=1 1111nnn0mmmm0110
// FMOV @(R0,Rm),XDn PR=0 SZ=1 1111nnn1mmmm0110
// FMOV @(R0,Rm),XDn PR=1 1111nnn1mmmm0110
EMITTER(FMOV2) {
// FMOV.S @(R0,Rm),FRn 1111nnnnmmmm0110
// FMOV @(R0,Rm),DRn 1111nnn0mmmm0110
// FMOV @(R0,Rm),XDn 1111nnn1mmmm0110
EMITTER(FMOV_INDEX_LOAD) {
Value *addr =
b.Add(b.LoadRegister(0, VALUE_I32), b.LoadRegister(i.Rm, VALUE_I32));
// FMOV with PR=1 assumes the values are word-swapped in memory
if (fpu.double_precision) {
b.StoreRegisterXF(i.Rn | 0x1, b.LoadGuest(addr, VALUE_I32));
b.StoreRegisterXF(i.Rn & 0xe,
b.LoadGuest(b.Add(addr, b.AllocConstant(4)), VALUE_I32));
} else if (fpu.single_precision_pair) {
if (fpu.double_sz) {
if (i.Rn & 1) {
b.StoreRegisterXF(i.Rn & 0xe, b.LoadGuest(addr, VALUE_I32));
b.StoreRegisterXF(
i.Rn | 0x1, b.LoadGuest(b.Add(addr, b.AllocConstant(4)), VALUE_I32));
i.Rn, b.LoadGuest(b.Add(addr, b.AllocConstant(4)), VALUE_I32));
} else {
b.StoreRegisterF(i.Rn & 0xe, b.LoadGuest(addr, VALUE_I32));
b.StoreRegisterF(i.Rn, b.LoadGuest(addr, VALUE_I32));
b.StoreRegisterF(i.Rn | 0x1,
b.LoadGuest(b.Add(addr, b.AllocConstant(4)), VALUE_I32));
}
@ -1611,54 +1602,19 @@ EMITTER(FMOV2) {
}
}
// FMOV.S @Rm+,FRn PR=0 SZ=0 1111nnnnmmmm1001
// FMOV @Rm+,DRn PR=0 SZ=1 1111nnn0mmmm1001
// FMOV @Rm+,XDn PR=0 SZ=1 1111nnn1mmmm1001
// FMOV @Rm+,XDn PR=1 1111nnn1mmmm1001
EMITTER(FMOV3) {
Value *addr = b.LoadRegister(i.Rm, VALUE_I32);
// FMOV with PR=1 assumes the values are word-swapped in memory
if (fpu.double_precision) {
b.StoreRegisterXF(i.Rn | 0x1, b.LoadGuest(addr, VALUE_I32));
b.StoreRegisterXF(i.Rn & 0xe,
b.LoadGuest(b.Add(addr, b.AllocConstant(4)), VALUE_I32));
b.StoreRegister(i.Rm, b.Add(addr, b.AllocConstant(8)));
} else if (fpu.single_precision_pair) {
if (i.Rn & 1) {
b.StoreRegisterXF(i.Rn & 0xe, b.LoadGuest(addr, VALUE_I32));
b.StoreRegisterXF(
i.Rn | 0x1, b.LoadGuest(b.Add(addr, b.AllocConstant(4)), VALUE_I32));
} else {
b.StoreRegisterF(i.Rn & 0xe, b.LoadGuest(addr, VALUE_I32));
b.StoreRegisterF(i.Rn | 0x1,
b.LoadGuest(b.Add(addr, b.AllocConstant(4)), VALUE_I32));
}
b.StoreRegister(i.Rm, b.Add(addr, b.AllocConstant(8)));
} else {
b.StoreRegisterF(i.Rn, b.LoadGuest(addr, VALUE_I32));
b.StoreRegister(i.Rm, b.Add(addr, b.AllocConstant(4)));
}
}
// FMOV.S FRm,@Rn PR=0 SZ=0 1111nnnnmmmm1010
// FMOV DRm,@Rn PR=0 SZ=1 1111nnnnmmm01010
// FMOV XDm,@Rn PR=0 SZ=1 1111nnnnmmm11010
// FMOV XDm,@Rn PR=1 1111nnnnmmm11010
EMITTER(FMOV4) {
// FMOV.S FRm,@Rn 1111nnnnmmmm1010
// FMOV DRm,@Rn 1111nnnnmmm01010
// FMOV XDm,@Rn 1111nnnnmmm11010
EMITTER(FMOV_STORE) {
Value *addr = b.LoadRegister(i.Rn, VALUE_I32);
if (fpu.double_precision) {
b.StoreGuest(addr, b.LoadRegisterXF(i.Rm | 0x1, VALUE_I32));
b.StoreGuest(b.Add(addr, b.AllocConstant(4)),
b.LoadRegisterXF(i.Rm & 0xe, VALUE_I32));
} else if (fpu.single_precision_pair) {
if (fpu.double_sz) {
if (i.Rm & 1) {
b.StoreGuest(addr, b.LoadRegisterXF(i.Rm & 0xe, VALUE_I32));
b.StoreGuest(b.Add(addr, b.AllocConstant(4)),
b.LoadRegisterXF(i.Rm | 0x1, VALUE_I32));
b.LoadRegisterXF(i.Rm, VALUE_I32));
} else {
b.StoreGuest(addr, b.LoadRegisterF(i.Rm & 0xe, VALUE_I32));
b.StoreGuest(addr, b.LoadRegisterF(i.Rm, VALUE_I32));
b.StoreGuest(b.Add(addr, b.AllocConstant(4)),
b.LoadRegisterF(i.Rm | 0x1, VALUE_I32));
}
@ -1667,26 +1623,41 @@ EMITTER(FMOV4) {
}
}
// FMOV.S FRm,@-Rn PR=0 SZ=0 1111nnnnmmmm1011
// FMOV DRm,@-Rn PR=0 SZ=1 1111nnnnmmm01011
// FMOV XDm,@-Rn PR=0 SZ=1 1111nnnnmmm11011
// FMOV XDm,@-Rn PR=1 1111nnnnmmm11011
EMITTER(FMOV5) {
if (fpu.double_precision) {
Value *addr = b.Sub(b.LoadRegister(i.Rn, VALUE_I32), b.AllocConstant(8));
b.StoreRegister(i.Rn, addr);
b.StoreGuest(addr, b.LoadRegisterXF(i.Rm | 0x1, VALUE_I32));
b.StoreGuest(b.Add(addr, b.AllocConstant(4)),
b.LoadRegisterXF(i.Rm & 0xe, VALUE_I32));
} else if (fpu.single_precision_pair) {
// FMOV.S FRm,@(R0,Rn) 1111nnnnmmmm0111
// FMOV DRm,@(R0,Rn) 1111nnnnmmm00111
// FMOV XDm,@(R0,Rn) 1111nnnnmmm10111
EMITTER(FMOV_INDEX_STORE) {
Value *addr =
b.Add(b.LoadRegister(0, VALUE_I32), b.LoadRegister(i.Rn, VALUE_I32));
if (fpu.double_sz) {
if (i.Rm & 1) {
b.StoreGuest(addr, b.LoadRegisterXF(i.Rm & 0xe, VALUE_I32));
b.StoreGuest(b.Add(addr, b.AllocConstant(4)),
b.LoadRegisterXF(i.Rm, VALUE_I32));
} else {
b.StoreGuest(addr, b.LoadRegisterF(i.Rm, VALUE_I32));
b.StoreGuest(b.Add(addr, b.AllocConstant(4)),
b.LoadRegisterF(i.Rm | 0x1, VALUE_I32));
}
} else {
b.StoreGuest(addr, b.LoadRegisterF(i.Rm, VALUE_I32));
}
}
// FMOV.S FRm,@-Rn 1111nnnnmmmm1011
// FMOV DRm,@-Rn 1111nnnnmmm01011
// FMOV XDm,@-Rn 1111nnnnmmm11011
EMITTER(FMOV_SAVE) {
if (fpu.double_sz) {
Value *addr = b.Sub(b.LoadRegister(i.Rn, VALUE_I32), b.AllocConstant(8));
b.StoreRegister(i.Rn, addr);
if (i.Rm & 1) {
b.StoreGuest(addr, b.LoadRegisterXF(i.Rm & 0xe, VALUE_I32));
b.StoreGuest(b.Add(addr, b.AllocConstant(4)),
b.LoadRegisterXF(i.Rm | 0x1, VALUE_I32));
b.LoadRegisterXF(i.Rm, VALUE_I32));
} else {
b.StoreGuest(addr, b.LoadRegisterF(i.Rm & 0xe, VALUE_I32));
b.StoreGuest(addr, b.LoadRegisterF(i.Rm, VALUE_I32));
b.StoreGuest(b.Add(addr, b.AllocConstant(4)),
b.LoadRegisterF(i.Rm | 0x1, VALUE_I32));
}
@ -1697,30 +1668,26 @@ EMITTER(FMOV5) {
}
}
// FMOV.S FRm,@(R0,Rn) PR=0 SZ=0 1111nnnnmmmm0111
// FMOV DRm,@(R0,Rn) PR=0 SZ=1 1111nnnnmmm00111
// FMOV XDm,@(R0,Rn) PR=0 SZ=1 1111nnnnmmm10111
// FMOV XDm,@(R0,Rn) PR=1 1111nnnnmmm10111
EMITTER(FMOV6) {
Value *addr =
b.Add(b.LoadRegister(0, VALUE_I32), b.LoadRegister(i.Rn, VALUE_I32));
// FMOV.S @Rm+,FRn 1111nnnnmmmm1001
// FMOV @Rm+,DRn 1111nnn0mmmm1001
// FMOV @Rm+,XDn 1111nnn1mmmm1001
EMITTER(FMOV_RESTORE) {
Value *addr = b.LoadRegister(i.Rm, VALUE_I32);
if (fpu.double_precision) {
b.StoreGuest(addr, b.LoadRegisterXF(i.Rm | 0x1, VALUE_I32));
b.StoreGuest(b.Add(addr, b.AllocConstant(4)),
b.LoadRegisterXF(i.Rm & 0xe, VALUE_I32));
} else if (fpu.single_precision_pair) {
if (i.Rm & 1) {
b.StoreGuest(addr, b.LoadRegisterXF(i.Rm & 0xe, VALUE_I32));
b.StoreGuest(b.Add(addr, b.AllocConstant(4)),
b.LoadRegisterXF(i.Rm | 0x1, VALUE_I32));
if (fpu.double_sz) {
if (i.Rn & 1) {
b.StoreRegisterXF(i.Rn & 0xe, b.LoadGuest(addr, VALUE_I32));
b.StoreRegisterXF(
i.Rn, b.LoadGuest(b.Add(addr, b.AllocConstant(4)), VALUE_I32));
} else {
b.StoreGuest(addr, b.LoadRegisterF(i.Rm & 0xe, VALUE_I32));
b.StoreGuest(b.Add(addr, b.AllocConstant(4)),
b.LoadRegisterF(i.Rm | 0x1, VALUE_I32));
b.StoreRegisterF(i.Rn, b.LoadGuest(addr, VALUE_I32));
b.StoreRegisterF(i.Rn | 0x1,
b.LoadGuest(b.Add(addr, b.AllocConstant(4)), VALUE_I32));
}
b.StoreRegister(i.Rm, b.Add(addr, b.AllocConstant(8)));
} else {
b.StoreGuest(addr, b.LoadRegisterF(i.Rm, VALUE_I32));
b.StoreRegisterF(i.Rn, b.LoadGuest(addr, VALUE_I32));
b.StoreRegister(i.Rm, b.Add(addr, b.AllocConstant(4)));
}
}
@ -1739,7 +1706,7 @@ EMITTER(FSTS) {
// FABS FRn PR=0 1111nnnn01011101
// FABS DRn PR=1 1111nnn001011101
EMITTER(FABS) {
if (fpu.double_precision) {
if (fpu.double_pr) {
int n = i.Rn & 0xe;
b.StoreRegisterF(n, b.Abs(b.LoadRegisterF(n, VALUE_F64)));
} else {
@ -1756,7 +1723,7 @@ EMITTER(FSRRA) {
// FADD FRm,FRn PR=0 1111nnnnmmmm0000
// FADD DRm,DRn PR=1 1111nnn0mmm00000
EMITTER(FADD) {
if (fpu.double_precision) {
if (fpu.double_pr) {
int n = i.Rn & 0xe;
int m = i.Rm & 0xe;
b.StoreRegisterF(
@ -1770,9 +1737,11 @@ EMITTER(FADD) {
// FCMP/EQ FRm,FRn PR=0 1111nnnnmmmm0100
// FCMP/EQ DRm,DRn PR=1 1111nnn0mmm00100
EMITTER(FCMPEQ) {
if (fpu.double_precision) {
b.StoreT(b.EQ(b.LoadRegisterF(i.Rn & 0xe, VALUE_F64),
b.LoadRegisterF(i.Rm & 0xe, VALUE_F64)));
if (fpu.double_pr) {
int n = i.Rn & 0xe;
int m = i.Rm & 0xe;
b.StoreT(
b.EQ(b.LoadRegisterF(n, VALUE_F64), b.LoadRegisterF(m, VALUE_F64)));
} else {
b.StoreT(b.EQ(b.LoadRegisterF(i.Rn, VALUE_F32),
b.LoadRegisterF(i.Rm, VALUE_F32)));
@ -1782,9 +1751,11 @@ EMITTER(FCMPEQ) {
// FCMP/GT FRm,FRn PR=0 1111nnnnmmmm0101
// FCMP/GT DRm,DRn PR=1 1111nnn0mmm00101
EMITTER(FCMPGT) {
if (fpu.double_precision) {
b.StoreT(b.SGT(b.LoadRegisterF(i.Rn & 0xe, VALUE_F64),
b.LoadRegisterF(i.Rm & 0xe, VALUE_F64)));
if (fpu.double_pr) {
int n = i.Rn & 0xe;
int m = i.Rm & 0xe;
b.StoreT(
b.SGT(b.LoadRegisterF(n, VALUE_F64), b.LoadRegisterF(m, VALUE_F64)));
} else {
b.StoreT(b.SGT(b.LoadRegisterF(i.Rn, VALUE_F32),
b.LoadRegisterF(i.Rm, VALUE_F32)));
@ -1794,7 +1765,7 @@ EMITTER(FCMPGT) {
// FDIV FRm,FRn PR=0 1111nnnnmmmm0011
// FDIV DRm,DRn PR=1 1111nnn0mmm00011
EMITTER(FDIV) {
if (fpu.double_precision) {
if (fpu.double_pr) {
int n = i.Rn & 0xe;
int m = i.Rm & 0xe;
b.StoreRegisterF(
@ -1811,8 +1782,9 @@ EMITTER(FDIV) {
EMITTER(FLOAT) {
Value *fpul = b.LoadContext(offsetof(SH4Context, fpul), VALUE_I32);
if (fpu.double_precision) {
b.StoreRegisterF(i.Rn & 0xe, b.Cast(b.SExt(fpul, VALUE_I64), VALUE_F64));
if (fpu.double_pr) {
int n = i.Rn & 0xe;
b.StoreRegisterF(n, b.Cast(b.SExt(fpul, VALUE_I64), VALUE_F64));
} else {
b.StoreRegisterF(i.Rn, b.Cast(fpul, VALUE_F32));
}
@ -1820,17 +1792,17 @@ EMITTER(FLOAT) {
// FMAC FR0,FRm,FRn PR=0 1111nnnnmmmm1110
EMITTER(FMAC) {
if (!fpu.double_precision) {
Value *rm = b.LoadRegisterF(i.Rm, VALUE_F32);
b.StoreRegisterF(i.Rn, b.Add(b.SMul(b.LoadRegisterF(0, VALUE_F32), rm),
b.LoadRegisterF(i.Rn, VALUE_F32)));
}
CHECK(!fpu.double_pr);
Value *rm = b.LoadRegisterF(i.Rm, VALUE_F32);
b.StoreRegisterF(i.Rn, b.Add(b.SMul(b.LoadRegisterF(0, VALUE_F32), rm),
b.LoadRegisterF(i.Rn, VALUE_F32)));
}
// FMUL FRm,FRn PR=0 1111nnnnmmmm0010
// FMUL DRm,DRn PR=1 1111nnn0mmm00010
EMITTER(FMUL) {
if (fpu.double_precision) {
if (fpu.double_pr) {
int n = i.Rn & 0xe;
int m = i.Rm & 0xe;
b.StoreRegisterF(n, b.SMul(b.LoadRegisterF(n, VALUE_F64),
@ -1844,7 +1816,7 @@ EMITTER(FMUL) {
// FNEG FRn PR=0 1111nnnn01001101
// FNEG DRn PR=1 1111nnn001001101
EMITTER(FNEG) {
if (fpu.double_precision) {
if (fpu.double_pr) {
int n = i.Rn & 0xe;
b.StoreRegisterF(n, b.Neg(b.LoadRegisterF(n, VALUE_F64)));
} else {
@ -1855,7 +1827,7 @@ EMITTER(FNEG) {
// FSQRT FRn PR=0 1111nnnn01101101
// FSQRT DRn PR=1 1111nnnn01101101
EMITTER(FSQRT) {
if (fpu.double_precision) {
if (fpu.double_pr) {
int n = i.Rn & 0xe;
b.StoreRegisterF(n, b.Sqrt(b.LoadRegisterF(n, VALUE_F64)));
} else {
@ -1866,7 +1838,7 @@ EMITTER(FSQRT) {
// FSUB FRm,FRn PR=0 1111nnnnmmmm0001
// FSUB DRm,DRn PR=1 1111nnn0mmm00001
EMITTER(FSUB) {
if (fpu.double_precision) {
if (fpu.double_pr) {
int n = i.Rn & 0xe;
int m = i.Rm & 0xe;
b.StoreRegisterF(
@ -1880,10 +1852,11 @@ EMITTER(FSUB) {
// FTRC FRm,FPUL PR=0 1111mmmm00111101
// FTRC DRm,FPUL PR=1 1111mmm000111101
EMITTER(FTRC) {
if (fpu.double_precision) {
if (fpu.double_pr) {
int m = i.Rm & 0xe;
// FIXME is this truncate correct?
Value *dpv = b.Truncate(b.Cast(b.LoadRegisterF(i.Rm, VALUE_F64), VALUE_I64),
VALUE_I32);
Value *dpv =
b.Truncate(b.Cast(b.LoadRegisterF(m, VALUE_F64), VALUE_I64), VALUE_I32);
b.StoreContext(offsetof(SH4Context, fpul), dpv);
} else {
Value *spv = b.Cast(b.LoadRegisterF(i.Rm, VALUE_F32), VALUE_I32);

View File

@ -12,8 +12,8 @@ namespace frontend {
namespace sh4 {
struct FPUState {
bool double_precision;
bool single_precision_pair;
bool double_pr;
bool double_sz;
};
class SH4Builder : public ir::IRBuilder {

View File

@ -41,18 +41,36 @@ struct SH4Context {
int32_t remaining_cycles;
int32_t total_cycles;
uint32_t pc, spc;
uint32_t pr;
uint32_t gbr, vbr;
uint32_t mach, macl;
uint32_t r[16], ralt[8], sgr;
uint32_t fr[16], xf[16];
uint32_t fpul;
uint32_t dbr;
uint32_t pc, pr, sr, sr_qm, fpscr;
uint32_t dbr, gbr, vbr;
uint32_t fpul, mach, macl;
uint32_t sgr, spc, ssr;
uint32_t sq[2][8];
uint32_t sr_qm;
uint32_t sr, ssr;
uint32_t fpscr;
// there are 24 32-bit general registers, r0_bank0-r7_bank0, r0_bank1-r7_bank1
// and r8-r15. r contains the active bank's r0-r7 as well as r8-r15. ralt
// contains the inactive bank's r0-r7 and is swapped in when the processor
// mode changes
uint32_t r[16], ralt[8];
// there are 32 32-bit floating point registers, fr0-fr15 and xf0-xf15. these
// registers are banked, and swapped with eachother when the bank bit of
// FPSCR changes. in addition, fr0fr15 can be used as the eight registers
// dr0/2/4/6/8/10/12/14 (double-precision, or pair registers) or the four
// registers fv0/4/8/12 (vector registers). while xf0-xf15 can be used as
// the eight registers xd0/2/4/6/8/10/12/14 (pair registers) or register
// matrix XMTRX
// note, the sh4 does not support endian conversion for 64-bit data.
// therefore, if 64-bit floating point access is performed in little endian
// mode, the upper and lower 32 bits will be reversed. for example, dr2
// aliases fr2 and fr3, but fr3 is actually the low-order word
// in order to avoid swapping the words in every double-precision opcode, the
// mapping for each pair of single-precision registers is instead swapped by
// XOR'ing the actual index with 1. for example, fr2 becomes fr[3] and fr3
// becomes fr[2], enabling dr2 to perfectly alias fr[2]
uint32_t fr[16], xf[16];
};
}
}

View File

@ -192,30 +192,30 @@ SH4_INSTR(TRAPA, "trapa #imm8", 11000011iiiiiiii, 7, OP_FLAG_B
// floating-point single and double precision instructions
SH4_INSTR(FLDI0, "fldi0 frn", 1111nnnn10001101, 1, 0)
SH4_INSTR(FLDI1, "fldi1 frn", 1111nnnn10011101, 1, 0)
SH4_INSTR(FMOV0, "fmov frm, frn", 1111nnnnmmmm1100, 1, 0)
SH4_INSTR(FMOV1, "fmov.s @(r0,rm), frn", 1111nnnnmmmm1000, 1, 0)
SH4_INSTR(FMOV2, "fmov.s @(r0,rm), frn", 1111nnnnmmmm0110, 1, 0)
SH4_INSTR(FMOV3, "fmov.s @rm+, frn", 1111nnnnmmmm1001, 1, 0)
SH4_INSTR(FMOV4, "fmov.s frm, @rn", 1111nnnnmmmm1010, 1, 0)
SH4_INSTR(FMOV5, "fmov.s frm, @-rn", 1111nnnnmmmm1011, 1, 0)
SH4_INSTR(FMOV6, "fmov.s frm, @(r0,rn)", 1111nnnnmmmm0111, 1, 0)
SH4_INSTR(FLDS, "flds frm, fpul", 1111mmmm00011101, 1, 0)
SH4_INSTR(FSTS, "fsts fpul, frn", 1111nnnn00001101, 1, 0)
SH4_INSTR(FABS, "fabs frn", 1111nnnn01011101, 1, 0)
SH4_INSTR(FSRRA, "fsrra frn", 1111nnnn01111101, 1, 0)
SH4_INSTR(FADD, "fadd frm, frn", 1111nnnnmmmm0000, 1, 0)
SH4_INSTR(FCMPEQ, "fcmp/eq frm, frn", 1111nnnnmmmm0100, 2, OP_FLAG_SET_T)
SH4_INSTR(FCMPGT, "fcmp/gt frm, frn", 1111nnnnmmmm0101, 2, OP_FLAG_SET_T)
SH4_INSTR(FDIV, "fdiv frm, frn", 1111nnnnmmmm0011, 1, 0)
SH4_INSTR(FLOAT, "float fpul, frn", 1111nnnn00101101, 1, 0)
SH4_INSTR(FMAC, "fmac fr0, frm, frn", 1111nnnnmmmm1110, 1, 0)
SH4_INSTR(FMUL, "fmul frm, frn", 1111nnnnmmmm0010, 1, 0)
SH4_INSTR(FNEG, "fneg frn", 1111nnnn01001101, 1, 0)
SH4_INSTR(FSQRT, "fsqrt frn", 1111nnnn01101101, 1, 0)
SH4_INSTR(FSUB, "fsub frm, frn", 1111nnnnmmmm0001, 1, 0)
SH4_INSTR(FTRC, "ftrc frm, fpul", 1111mmmm00111101, 1, 0)
SH4_INSTR(FLDI0, "fldi0 frn", 1111nnnn10001101, 1, 0)
SH4_INSTR(FLDI1, "fldi1 frn", 1111nnnn10011101, 1, 0)
SH4_INSTR(FMOV, "fmov frm, frn", 1111nnnnmmmm1100, 1, 0)
SH4_INSTR(FMOV_LOAD, "fmov.s @(rm), frn", 1111nnnnmmmm1000, 1, 0)
SH4_INSTR(FMOV_INDEX_LOAD, "fmov.s @(r0,rm), frn", 1111nnnnmmmm0110, 1, 0)
SH4_INSTR(FMOV_STORE, "fmov.s frm, @rn", 1111nnnnmmmm1010, 1, 0)
SH4_INSTR(FMOV_INDEX_STORE, "fmov.s frm, @(r0,rn)", 1111nnnnmmmm0111, 1, 0)
SH4_INSTR(FMOV_SAVE, "fmov.s frm, @-rn", 1111nnnnmmmm1011, 1, 0)
SH4_INSTR(FMOV_RESTORE, "fmov.s @rm+, frn", 1111nnnnmmmm1001, 1, 0)
SH4_INSTR(FLDS, "flds frm, fpul", 1111mmmm00011101, 1, 0)
SH4_INSTR(FSTS, "fsts fpul, frn", 1111nnnn00001101, 1, 0)
SH4_INSTR(FABS, "fabs frn", 1111nnnn01011101, 1, 0)
SH4_INSTR(FSRRA, "fsrra frn", 1111nnnn01111101, 1, 0)
SH4_INSTR(FADD, "fadd frm, frn", 1111nnnnmmmm0000, 1, 0)
SH4_INSTR(FCMPEQ, "fcmp/eq frm, frn", 1111nnnnmmmm0100, 2, OP_FLAG_SET_T)
SH4_INSTR(FCMPGT, "fcmp/gt frm, frn", 1111nnnnmmmm0101, 2, OP_FLAG_SET_T)
SH4_INSTR(FDIV, "fdiv frm, frn", 1111nnnnmmmm0011, 1, 0)
SH4_INSTR(FLOAT, "float fpul, frn", 1111nnnn00101101, 1, 0)
SH4_INSTR(FMAC, "fmac fr0, frm, frn", 1111nnnnmmmm1110, 1, 0)
SH4_INSTR(FMUL, "fmul frm, frn", 1111nnnnmmmm0010, 1, 0)
SH4_INSTR(FNEG, "fneg frn", 1111nnnn01001101, 1, 0)
SH4_INSTR(FSQRT, "fsqrt frn", 1111nnnn01101101, 1, 0)
SH4_INSTR(FSUB, "fsub frm, frn", 1111nnnnmmmm0001, 1, 0)
SH4_INSTR(FTRC, "ftrc frm, fpul", 1111mmmm00111101, 1, 0)
// floating-point double precision instructions,

42
test/asm/fmov.s Normal file
View File

@ -0,0 +1,42 @@
test_fmov_single:
# REGISTER_IN fr2 0x40400000
# FMOV FRm,FRn 1111nnnnmmmm1100
fmov fr2, fr3
rts
nop
# REGISTER_OUT fr3 0x40400000
# TODO it'd be really nice to verify that this is correct for the real hardware
test_fmov_double_sz0:
# REGISTER_IN dr2 0x4040000030300000
# FMOV DRm,DRn 1111nnn0mmm01100
fmov dr2, dr4
rts
nop
# REGISTER_OUT fr4 0x40400000
# REGISTER_OUT fr5 0x0
test_fmov_double_sz1:
# REGISTER_IN fpscr 0x00140001
# REGISTER_IN dr2 0x4040000030300000
# FMOV DRm,DRn 1111nnn0mmm01100
fmov dr2, dr4
rts
nop
# REGISTER_OUT dr4 0x4040000030300000
test_fmov_double_bank_sz1:
# REGISTER_IN fpscr 0x00140001
# REGISTER_IN xd0 0x4040000030300000
# REGISTER_IN xd2 0x80800000a0a00000
# FMOV XDm,DRn 1111nnn0mmm11100
fmov xd0, dr4
# FMOV DRm,XDn 1111nnn1mmm01100
fmov dr4, xd6
# FMOV XDm,XDn 1111nnn1mmm11100
fmov xd2, xd8
rts
nop
# REGISTER_OUT dr4 0x4040000030300000
# REGISTER_OUT xd6 0x4040000030300000
# REGISTER_OUT xd8 0x80800000a0a00000

View File

@ -0,0 +1,49 @@
test_fmov_index_load_single:
# FMOV.S @(R0,Rm),FRn 1111nnnnmmmm0110
mov.l .DATA_ADDR, r0
mov #4, r1
fmov.s @(r0, r1), fr2
rts
nop
# REGISTER_OUT fr2 0x10a00000
# TODO it'd be really nice to verify that this is correct for the real hardware
test_fmov_index_load_double_sz0:
# FMOV @(R0,Rm),DRn 1111nnn0mmmm0110
mov.l .DATA_ADDR, r0
mov #4, r1
fmov @(r0, r1), dr2
rts
nop
# REGISTER_OUT fr2 0x10a00000
# REGISTER_OUT fr3 0x0
test_fmov_index_load_double_sz1:
# REGISTER_IN fpscr 0x00140001
# FMOV @(R0,Rm),DRn 1111nnn0mmmm0110
mov.l .DATA_ADDR, r0
mov #4, r1
fmov @(r0, r1), dr2
rts
nop
# REGISTER_OUT dr2 0x10a0000020e00000
test_fmov_index_load_double_bank_sz1:
# REGISTER_IN fpscr 0x00140001
# FMOV @(R0,Rm),XDn 1111nnn1mmmm0110
mov.l .DATA_ADDR, r0
mov #4, r1
fmov @(r0, r1), xd2
rts
nop
# REGISTER_OUT xd2 0x10a0000020e00000
.align 4
.DATA:
.long 0x0
.long 0x10a00000
.long 0x20e00000
.align 4
.DATA_ADDR:
.long .DATA

View File

@ -0,0 +1,67 @@
# FMOV XDm,@(R0,Rn) 1111nnnnmmm10111
test_fmov_index_store_single:
# REGISTER_IN fr0 0x10a00000
# FMOV.S FRm,@(R0,Rn) 1111nnnnmmmm0111
mov.l .DATA_OUT, r0
mov #4, r1
fmov.s fr0, @(r0,r1)
mov.l @(r0,r1), r2
rts
nop
# REGISTER_OUT r2 0x10a00000
# TODO it'd be really nice to verify that this is correct for the real hardware
test_fmov_index_store_double_sz0:
# REGISTER_IN dr0 0x10a0000020e00000
# FMOV DRm,@(R0,Rn) 1111nnnnmmm00111
mov.l .DATA_OUT, r0
mov #4, r1
fmov dr0, @(r0,r1)
mov.l @(r0,r1), r2
add #4, r1
mov.l @(r0,r1), r3
rts
nop
# REGISTER_OUT r2 0x10a00000
# REGISTER_OUT r3 0x0
test_fmov_index_store_double_sz1:
# REGISTER_IN fpscr 0x00140001
# REGISTER_IN dr0 0x20a0000030e00000
# FMOV DRm,@Rn 1111nnnnmmm01010
mov.l .DATA_OUT, r0
mov #4, r1
fmov dr0, @(r0,r1)
mov.l @(r0,r1), r2
add #4, r1
mov.l @(r0,r1), r3
rts
nop
# REGISTER_OUT r2 0x20a00000
# REGISTER_OUT r3 0x30e00000
test_fmov_index_store_double_bank_sz1:
# REGISTER_IN fpscr 0x00140001
# REGISTER_IN xd0 0x30a0000040e00000
# FMOV XDm,@Rn 1111nnnnmmm11010
mov.l .DATA_OUT, r0
mov #4, r1
fmov xd0, @(r0,r1)
mov.l @(r0,r1), r2
add #4, r1
mov.l @(r0,r1), r3
rts
nop
# REGISTER_OUT r2 0x30a00000
# REGISTER_OUT r3 0x40e00000
.align 4
.DATA:
.long 0x0
.long 0x0
.long 0x0
.align 4
.DATA_OUT:
.long .DATA

44
test/asm/fmov_load.s Normal file
View File

@ -0,0 +1,44 @@
test_fmov_load_single:
# FMOV.S @Rm,FRn 1111nnnnmmmm1000
mov.l .DATA_ADDR, r0
fmov.s @r0, fr2
rts
nop
# REGISTER_OUT fr2 0x10a00000
# TODO it'd be really nice to verify that this is correct for the real hardware
test_fmov_load_double_sz0:
# FMOV @Rm,DRn 1111nnn0mmmm1000
mov.l .DATA_ADDR, r0
fmov @r0, dr2
rts
nop
# REGISTER_OUT fr2 0x10a00000
# REGISTER_OUT fr3 0x0
test_fmov_load_double_sz1:
# REGISTER_IN fpscr 0x00140001
# FMOV @Rm,DRn 1111nnn0mmmm1000
mov.l .DATA_ADDR, r0
fmov @r0, dr2
rts
nop
# REGISTER_OUT dr2 0x10a0000020e00000
test_fmov_load_double_bank_sz1:
# REGISTER_IN fpscr 0x00140001
# FMOV @Rm,XDn 1111nnn1mmmm1000
mov.l .DATA_ADDR, r0
fmov @r0, xd2
rts
nop
# REGISTER_OUT xd2 0x10a0000020e00000
.align 4
.DATA:
.long 0x10a00000
.long 0x20e00000
.align 4
.DATA_ADDR:
.long .DATA

56
test/asm/fmov_restore.s Normal file
View File

@ -0,0 +1,56 @@
test_fmov_restore_single:
# FMOV.S @Rm+,FRn 1111nnnnmmmm1001
mov.l .DATA_ADDR, r0
mov r0, r1
fmov.s @r1+, fr2
sub r0, r1
rts
nop
# REGISTER_OUT fr2 0x10a00000
# REGISTER_OUT r1 0x4
# TODO it'd be really nice to verify that this is correct for the real hardware
test_fmov_restore_double_sz0:
# FMOV @Rm+,DRn 1111nnn0mmmm1001
mov.l .DATA_ADDR, r0
mov r0, r1
fmov @r1+, dr2
sub r0, r1
rts
nop
# REGISTER_OUT fr2 0x10a00000
# REGISTER_OUT fr3 0x0
# REGISTER_OUT r1 0x4
test_fmov_restore_double_sz1:
# REGISTER_IN fpscr 0x00140001
# FMOV @Rm+,DRn 1111nnn0mmmm1001
mov.l .DATA_ADDR, r0
mov r0, r1
fmov @r1+, dr2
sub r0, r1
rts
nop
# REGISTER_OUT dr2 0x10a0000020e00000
# REGISTER_OUT r1 0x8
test_fmov_restore_double_bank_sz1:
# REGISTER_IN fpscr 0x00140001
# FMOV @Rm+,XDn 1111nnn1mmmm1001
mov.l .DATA_ADDR, r0
mov r0, r1
fmov @r1+, xd2
sub r0, r1
rts
nop
# REGISTER_OUT xd2 0x10a0000020e00000
# REGISTER_OUT r1 0x8
.align 4
.DATA:
.long 0x10a00000
.long 0x20e00000
.align 4
.DATA_ADDR:
.long .DATA

61
test/asm/fmov_save.s Normal file
View File

@ -0,0 +1,61 @@
test_fmov_save_single:
# REGISTER_IN fr0 0x10a00000
# FMOV.S FRm,@-Rn 1111nnnnmmmm1011
mov.l .DATA_OUT, r0
add #4, r0
fmov.s fr0, @-r0
mov.l @r0, r2
rts
nop
# REGISTER_OUT r2 0x10a00000
# TODO it'd be really nice to verify that this is correct for the real hardware
test_fmov_save_double_sz0:
# REGISTER_IN dr0 0x10a0000020e00000
# FMOV DRm,@-Rn 1111nnnnmmm01011
mov.l .DATA_OUT, r0
add #4, r0
fmov dr0, @-r0
mov.l @r0+, r2
mov.l @r0, r3
rts
nop
# REGISTER_OUT r2 0x10a00000
# REGISTER_OUT r3 0x0
test_fmov_save_double_sz1:
# REGISTER_IN fpscr 0x00140001
# REGISTER_IN dr0 0x20a0000030e00000
# FMOV DRm,@-Rn 1111nnnnmmm01011
mov.l .DATA_OUT, r0
add #8, r0
fmov dr0, @r0
mov.l @r0+, r2
mov.l @r0, r3
rts
nop
# REGISTER_OUT r2 0x20a00000
# REGISTER_OUT r3 0x30e00000
test_fmov_save_double_bank_sz1:
# REGISTER_IN fpscr 0x00140001
# REGISTER_IN xd0 0x30a0000040e00000
# FMOV XDm,@-Rn 1111nnnnmmm11011
mov.l .DATA_OUT, r0
add #8, r0
fmov xd0, @r0
mov.l @r0+, r2
mov.l @r0, r3
rts
nop
# REGISTER_OUT r2 0x30a00000
# REGISTER_OUT r3 0x40e00000
.align 4
.DATA:
.long 0x0
.long 0x0
.align 4
.DATA_OUT:
.long .DATA

57
test/asm/fmov_store.s Normal file
View File

@ -0,0 +1,57 @@
test_fmov_store_single:
# REGISTER_IN fr0 0x10a00000
# FMOV.S FRm,@Rn 1111nnnnmmmm1010
mov.l .DATA_OUT, r0
fmov.s fr0, @r0
mov.l @r0, r2
rts
nop
# REGISTER_OUT r2 0x10a00000
# TODO it'd be really nice to verify that this is correct for the real hardware
test_fmov_store_double_sz0:
# REGISTER_IN dr0 0x10a0000020e00000
# FMOV DRm,@Rn 1111nnnnmmm01010
mov.l .DATA_OUT, r0
fmov dr0, @r0
mov.l @r0+, r2
mov.l @r0, r3
rts
nop
# REGISTER_OUT r2 0x10a00000
# REGISTER_OUT r3 0x0
test_fmov_store_double_sz1:
# REGISTER_IN fpscr 0x00140001
# REGISTER_IN dr0 0x20a0000030e00000
# FMOV DRm,@Rn 1111nnnnmmm01010
mov.l .DATA_OUT, r0
fmov dr0, @r0
mov.l @r0+, r2
mov.l @r0, r3
rts
nop
# REGISTER_OUT r2 0x20a00000
# REGISTER_OUT r3 0x30e00000
test_fmov_store_double_bank_sz1:
# REGISTER_IN fpscr 0x00140001
# REGISTER_IN xd0 0x30a0000040e00000
# FMOV XDm,@Rn 1111nnnnmmm11010
mov.l .DATA_OUT, r0
fmov xd0, @r0
mov.l @r0+, r2
mov.l @r0, r3
rts
nop
# REGISTER_OUT r2 0x30a00000
# REGISTER_OUT r3 0x40e00000
.align 4
.DATA:
.long 0x0
.long 0x0
.align 4
.DATA_OUT:
.long .DATA

View File

@ -1,77 +0,0 @@
test_fmovd:
# REGISTER_IN fpscr 0x000c0001
# REGISTER_IN xd0 0x4020000000000000
# REGISTER_IN xd2 0x4024000000000000
# FMOV XDm,DRn PR=1
fmov xd0, dr0
# FMOV DRm,XDn PR=1
fmov dr0, xd4
# FMOV XDm,XDn PR=1
fmov xd2, xd6
# FMOV @Rm,XDn PR=1
mov.l .DATA_ADDR, r0
fmov @r0, xd8
# FMOV @Rm,DRn PR=1
mov.l .DATA_ADDR, r0
fmov @r0, dr2
# FMOV @(R0,Rm),XDn PR=1
mov.l .DATA_ADDR, r0
mov #8, r1
fmov @(r0, r1), xd10
# FMOV @Rm+,XDn PR=1
mov.l .DATA_ADDR, r0
fmov @r0+, xd12
fmov @r0+, xd14
# FMOV XDm,@Rn PR=1
mov.l .DATA_OUT, r0
fmov xd0, @r0
mov.l @r0+, r2
mov.l @r0+, r3
# FMOV XDm,@-Rn PR=1
mov.l .DATA_OUT, r0
add #8, r0
fmov xd2, @-r0
mov.l @r0+, r4
mov.l @r0+, r5
# FMOV XDm,@(R0,Rn) PR=1
mov.l .DATA_OUT, r0
mov #8, r1
fmov xd0, @(r0, r1)
add #8, r0
mov.l @r0+, r6
mov.l @r0+, r7
rts
nop
# REGISTER_OUT dr0 0x4020000000000000
# REGISTER_OUT xd4 0x4020000000000000
# REGISTER_OUT xd6 0x4024000000000000
# REGISTER_OUT xd8 0x4028000000000000
# REGISTER_OUT dr2 0x4028000000000000
# REGISTER_OUT xd10 0x402e000000000000
# REGISTER_OUT xd12 0x4028000000000000
# REGISTER_OUT xd14 0x402e000000000000
# REGISTER_OUT r2 0x40200000
# REGISTER_OUT r3 0x00000000
# REGISTER_OUT r4 0x40240000
# REGISTER_OUT r5 0x00000000
# REGISTER_OUT r6 0x40200000
# REGISTER_OUT r7 0x00000000
.align 4
.DATA:
.long 0x40280000
.long 0x00000000
.long 0x402e0000
.long 0x00000000
.long 0x0
.long 0x0
.long 0x0
.long 0x0
.align 4
.DATA_ADDR:
.long .DATA
.align 4
.DATA_OUT:
.long .DATA+16

View File

@ -1,54 +0,0 @@
test_fmovf:
# REGISTER_IN fr0 0x40400000
# FMOV FRm,FRn
fmov fr0, fr1
# FMOV.S @Rm,FRn
mov.l .DATA_ADDR, r0
fmov.s @r0, fr2
# FMOV.S @(R0,Rm),FRn
mov.l .DATA_ADDR, r0
mov #4, r1
fmov.s @(r0, r1), fr3
# FMOV.S @Rm+,FRn
mov.l .DATA_ADDR, r0
fmov.s @r0+, fr4
fmov.s @r0+, fr5
# FMOV.S FRm,@Rn
mov.l .DATA_OUT, r0
fmov.s fr0, @r0
mov.l @r0, r2
# FMOV.S FRm,@-Rn
mov.l .DATA_OUT, r0
add #8, r0
fmov.s fr2, @-r0
mov.l @r0, r3
# FMOV.S FRm,@(R0,Rn)
mov.l .DATA_OUT, r0
mov #4, r1
fmov.s fr0, @(r0, r1)
mov.l @(r0, r1), r4
rts
nop
# REGISTER_OUT fr1 0x40400000
# REGISTER_OUT fr2 0x40a00000
# REGISTER_OUT fr3 0x40e00000
# REGISTER_OUT fr4 0x40a00000
# REGISTER_OUT fr5 0x40e00000
# REGISTER_OUT r2 0x40400000
# REGISTER_OUT r3 0x40a00000
# REGISTER_OUT r4 0x40400000
.align 4
.DATA:
.long 0x40a00000
.long 0x40e00000
.long 0x0
.long 0x0
.align 4
.DATA_ADDR:
.long .DATA
.align 4
.DATA_OUT:
.long .DATA+8

View File

@ -1,105 +0,0 @@
test_fmovsz:
# REGISTER_IN fpscr 0x00140001
# REGISTER_IN dr0 0x3f80000040000000
# FMOV DRm,DRn SZ=1
fmov dr0, dr2
# FMOV @Rm,DRn SZ=1
mov.l .DATA_ADDR, r0
fmov @r0, dr4
# FMOV @Rm,XDn SZ=1
mov.l .DATA_ADDR, r0
fmov @r0, xd2
# FMOV @(R0,Rm),DRn SZ=1
mov.l .DATA_ADDR, r0
mov #4, r1
fmov @(r0, r1), dr6
# FMOV @(R0,Rm),XDn SZ=1
mov.l .DATA_ADDR, r0
mov #8, r1
fmov @(r0, r1), xd4
# FMOV @Rm+,DRn SZ=1
mov.l .DATA_ADDR, r0
fmov @r0+, dr8
fmov @r0+, dr10
# FMOV @Rm+,XDn SZ=1
mov.l .DATA_ADDR, r0
fmov @r0+, xd6
fmov @r0+, xd8
# FMOV DRm,@Rn SZ=1
mov.l .DATA_OUT, r0
fmov dr4, @r0
mov.l @r0+, r2
mov.l @r0+, r3
# FMOV XDm,@Rn SZ=1
mov.l .DATA_OUT, r0
fmov xd4, @r0
mov.l @r0+, r4
mov.l @r0+, r5
# FMOV DRm,@-Rn SZ=1
mov.l .DATA_OUT, r0
add #8, r0
fmov dr6, @-r0
mov.l @r0+, r6
mov.l @r0+, r7
# FMOV XDm,@-Rn SZ=1
mov.l .DATA_OUT, r0
add #8, r0
fmov xd6, @-r0
mov.l @r0+, r8
mov.l @r0+, r9
# FMOV DRm,@(R0,Rn) SZ=1
mov.l .DATA_OUT, r0
mov #8, r1
fmov dr0, @(r0, r1)
add #8, r0
mov.l @r0+, r10
mov.l @r0+, r11
# FMOV XDm,@(R0,Rn) SZ=1
mov.l .DATA_OUT, r0
mov #8, r1
fmov xd2, @(r0, r1)
add #8, r0
mov.l @r0+, r12
mov.l @r0+, r13
rts
nop
# REGISTER_OUT dr2 0x3f80000040000000
# REGISTER_OUT dr4 0x4080000040400000
# REGISTER_OUT xd2 0x4080000040400000
# REGISTER_OUT dr6 0x4110000040800000
# REGISTER_OUT xd4 0x4120000041100000
# REGISTER_OUT dr8 0x4080000040400000
# REGISTER_OUT dr10 0x4120000041100000
# REGISTER_OUT xd6 0x4080000040400000
# REGISTER_OUT xd8 0x4120000041100000
# REGISTER_OUT r2 0x40400000
# REGISTER_OUT r3 0x40800000
# REGISTER_OUT r4 0x41100000
# REGISTER_OUT r5 0x41200000
# REGISTER_OUT r6 0x40800000
# REGISTER_OUT r7 0x41100000
# REGISTER_OUT r8 0x40400000
# REGISTER_OUT r9 0x40800000
# REGISTER_OUT r10 0x40000000
# REGISTER_OUT r11 0x3f800000
# REGISTER_OUT r12 0x40400000
# REGISTER_OUT r13 0x40800000
.align 4
.DATA:
.long 0x40400000
.long 0x40800000
.long 0x41100000
.long 0x41200000
.long 0x0
.long 0x0
.long 0x0
.long 0x0
.align 4
.DATA_ADDR:
.long .DATA
.align 4
.DATA_OUT:
.long .DATA+16

View File

@ -39,6 +39,7 @@ struct SH4TestRegister {
int size;
};
// as per the notes in sh4_context.h, the fr / xf register pairs are swapped
static SH4TestRegister sh4_test_regs[] = {
{"fpscr", offsetof(SH4Context, fpscr), 4},
{"r0", offsetof(SH4Context, r[0]), 4},
@ -57,38 +58,38 @@ static SH4TestRegister sh4_test_regs[] = {
{"r13", offsetof(SH4Context, r[13]), 4},
{"r14", offsetof(SH4Context, r[14]), 4},
{"r15", offsetof(SH4Context, r[15]), 4},
{"fr0", offsetof(SH4Context, fr[0]), 4},
{"fr1", offsetof(SH4Context, fr[1]), 4},
{"fr2", offsetof(SH4Context, fr[2]), 4},
{"fr3", offsetof(SH4Context, fr[3]), 4},
{"fr4", offsetof(SH4Context, fr[4]), 4},
{"fr5", offsetof(SH4Context, fr[5]), 4},
{"fr6", offsetof(SH4Context, fr[6]), 4},
{"fr7", offsetof(SH4Context, fr[7]), 4},
{"fr8", offsetof(SH4Context, fr[8]), 4},
{"fr9", offsetof(SH4Context, fr[9]), 4},
{"fr10", offsetof(SH4Context, fr[10]), 4},
{"fr11", offsetof(SH4Context, fr[11]), 4},
{"fr12", offsetof(SH4Context, fr[12]), 4},
{"fr13", offsetof(SH4Context, fr[13]), 4},
{"fr14", offsetof(SH4Context, fr[14]), 4},
{"fr15", offsetof(SH4Context, fr[15]), 4},
{"xf0", offsetof(SH4Context, xf[0]), 4},
{"xf1", offsetof(SH4Context, xf[1]), 4},
{"xf2", offsetof(SH4Context, xf[2]), 4},
{"xf3", offsetof(SH4Context, xf[3]), 4},
{"xf4", offsetof(SH4Context, xf[4]), 4},
{"xf5", offsetof(SH4Context, xf[5]), 4},
{"xf6", offsetof(SH4Context, xf[6]), 4},
{"xf7", offsetof(SH4Context, xf[7]), 4},
{"xf8", offsetof(SH4Context, xf[8]), 4},
{"xf9", offsetof(SH4Context, xf[9]), 4},
{"xf10", offsetof(SH4Context, xf[10]), 4},
{"xf11", offsetof(SH4Context, xf[11]), 4},
{"xf12", offsetof(SH4Context, xf[12]), 4},
{"xf13", offsetof(SH4Context, xf[13]), 4},
{"xf14", offsetof(SH4Context, xf[14]), 4},
{"xf15", offsetof(SH4Context, xf[15]), 4},
{"fr0", offsetof(SH4Context, fr[1]), 4},
{"fr1", offsetof(SH4Context, fr[0]), 4},
{"fr2", offsetof(SH4Context, fr[3]), 4},
{"fr3", offsetof(SH4Context, fr[2]), 4},
{"fr4", offsetof(SH4Context, fr[5]), 4},
{"fr5", offsetof(SH4Context, fr[4]), 4},
{"fr6", offsetof(SH4Context, fr[7]), 4},
{"fr7", offsetof(SH4Context, fr[6]), 4},
{"fr8", offsetof(SH4Context, fr[9]), 4},
{"fr9", offsetof(SH4Context, fr[8]), 4},
{"fr10", offsetof(SH4Context, fr[11]), 4},
{"fr11", offsetof(SH4Context, fr[10]), 4},
{"fr12", offsetof(SH4Context, fr[13]), 4},
{"fr13", offsetof(SH4Context, fr[12]), 4},
{"fr14", offsetof(SH4Context, fr[15]), 4},
{"fr15", offsetof(SH4Context, fr[14]), 4},
{"xf0", offsetof(SH4Context, xf[1]), 4},
{"xf1", offsetof(SH4Context, xf[0]), 4},
{"xf2", offsetof(SH4Context, xf[3]), 4},
{"xf3", offsetof(SH4Context, xf[2]), 4},
{"xf4", offsetof(SH4Context, xf[5]), 4},
{"xf5", offsetof(SH4Context, xf[4]), 4},
{"xf6", offsetof(SH4Context, xf[7]), 4},
{"xf7", offsetof(SH4Context, xf[6]), 4},
{"xf8", offsetof(SH4Context, xf[9]), 4},
{"xf9", offsetof(SH4Context, xf[8]), 4},
{"xf10", offsetof(SH4Context, xf[11]), 4},
{"xf11", offsetof(SH4Context, xf[10]), 4},
{"xf12", offsetof(SH4Context, xf[13]), 4},
{"xf13", offsetof(SH4Context, xf[12]), 4},
{"xf14", offsetof(SH4Context, xf[15]), 4},
{"xf15", offsetof(SH4Context, xf[14]), 4},
};
int sh4_num_test_regs =
static_cast<int>(sizeof(sh4_test_regs) / sizeof(sh4_test_regs[0]));
@ -101,17 +102,19 @@ int sh4_num_test_regs =
xf12, xf13, xf14, xf15) \
SH4Context { \
nullptr, nullptr, nullptr, nullptr, \
0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, \
0, 0, 0, 0, fpscr, \
0, 0, 0, \
0, 0, 0, \
0, 0, 0, \
{ {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0 } }, \
{r0, r1, r2, r3, r4, r5, r6, r7, \
r8, r9, r10, r11, r12, r13, r14, r15}, \
{0, 0, 0, 0, 0, 0, 0, 0}, 0, \
{fr0, fr1, fr2, fr3, fr4, fr5, fr6, fr7, \
fr8, fr9, fr10, fr11, fr12, fr13, fr14, fr15}, \
{xf0, xf1, xf2, xf3, xf4, xf5, xf6, xf7, \
xf8, xf9, xf10, xf11, xf12, xf13, xf14, xf15}, \
0, 0, \
{ {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0 } }, \
0, 0, 0, fpscr \
{0, 0, 0, 0, 0, 0, 0, 0}, \
{fr1, fr0, fr3, fr2, fr5, fr4, fr7, fr6, \
fr9, fr8, fr11, fr10, fr13, fr12, fr15, fr14}, \
{xf1, xf0, xf3, xf2, xf5, xf4, xf7, xf6, \
xf9, xf8, xf11, xf10, xf13, xf12, xf15, xf14}, \
}
#define TEST_SH4(name, buffer, buffer_size, buffer_offset, \

View File

@ -49,40 +49,65 @@ TEST_SH4(test_extsb,(uint8_t *)"\x0e\x61\x0b\x00\x09\x00\x0f\x61\x0b\x00\x09\x00
TEST_SH4(test_extuw,(uint8_t *)"\x0e\x61\x0b\x00\x09\x00\x0f\x61\x0b\x00\x09\x00\x0c\x61\x0b\x00\x09\x00\x0d\x61\x0b\x00\x09\x00",24,0x12,0xbaadf00d,0xfffa3002,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x3002,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d)
TEST_SH4(test_extsw,(uint8_t *)"\x0e\x61\x0b\x00\x09\x00\x0f\x61\x0b\x00\x09\x00\x0c\x61\x0b\x00\x09\x00\x0d\x61\x0b\x00\x09\x00",24,0x6,0xbaadf00d,0xffff,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xffffffff,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d)
TEST_SH4(test_extub,(uint8_t *)"\x0e\x61\x0b\x00\x09\x00\x0f\x61\x0b\x00\x09\x00\x0c\x61\x0b\x00\x09\x00\x0d\x61\x0b\x00\x09\x00",24,0xc,0xbaadf00d,0xfffa3002,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x2,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d)
TEST_SH4(test_fabsd,(uint8_t *)"\x5d\xf2\x0b\x00\x09\x00\x5d\xf1\x0b\x00\x09\x00",12,0x0,0xc0001,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x0L,0xc0100000L,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x0,0x40100000,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d)
TEST_SH4(test_fabsd,(uint8_t *)"\x5d\xf2\x0b\x00\x09\x00\x5d\xf1\x0b\x00\x09\x00",12,0x0,0xc0001,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xc0100000L,0x0L,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x40100000,0x0,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d)
TEST_SH4(test_fabsf,(uint8_t *)"\x5d\xf2\x0b\x00\x09\x00\x5d\xf1\x0b\x00\x09\x00",12,0x6,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xc0800000,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x40800000,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d)
TEST_SH4(test_faddf,(uint8_t *)"\x00\xf2\x0b\x00\x09\x00\x00\xf1\x0b\x00\x09\x00",12,0x6,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x40400000,0xbf800000,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x40000000,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d)
TEST_SH4(test_faddd,(uint8_t *)"\x00\xf2\x0b\x00\x09\x00\x00\xf1\x0b\x00\x09\x00",12,0x0,0xc0001,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x0,0x40140000,0x0L,0xc0180000L,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x0L,0xbff00000L,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d)
TEST_SH4(test_fcmpeqd,(uint8_t *)"\x04\xf2\x29\x00\x24\xf4\x29\x01\x0b\x00\x09\x00\x04\xf1\x29\x00\x14\xf2\x29\x01\x0b\x00\x09\x00",24,0x0,0xc0001,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x0,0x40140000,0x0L,0xc0180000L,0x0L,0xc0180000L,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x0,0x1,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d)
TEST_SH4(test_faddd,(uint8_t *)"\x00\xf2\x0b\x00\x09\x00\x00\xf1\x0b\x00\x09\x00",12,0x0,0xc0001,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x40140000,0x0,0xc0180000L,0x0L,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbff00000L,0x0L,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d)
TEST_SH4(test_fcmpeqd,(uint8_t *)"\x04\xf2\x29\x00\x24\xf4\x29\x01\x0b\x00\x09\x00\x04\xf1\x29\x00\x14\xf2\x29\x01\x0b\x00\x09\x00",24,0x0,0xc0001,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x40140000,0x0,0xc0180000L,0x0L,0xc0180000L,0x0L,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x0,0x1,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d)
TEST_SH4(test_fcmpeqf,(uint8_t *)"\x04\xf2\x29\x00\x24\xf4\x29\x01\x0b\x00\x09\x00\x04\xf1\x29\x00\x14\xf2\x29\x01\x0b\x00\x09\x00",24,0xc,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x40400000,0xbf800000,0xbf800000,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x0,0x1,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d)
TEST_SH4(test_fcmpgtd,(uint8_t *)"\x05\xf2\x29\x00\x25\xf0\x29\x01\x0b\x00\x09\x00\x05\xf1\x29\x00\x15\xf0\x29\x01\x0b\x00\x09\x00",24,0x0,0xc0001,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x0,0x40140000,0x0L,0xc0180000L,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x0,0x1,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d)
TEST_SH4(test_fcmpgtd,(uint8_t *)"\x05\xf2\x29\x00\x25\xf0\x29\x01\x0b\x00\x09\x00\x05\xf1\x29\x00\x15\xf0\x29\x01\x0b\x00\x09\x00",24,0x0,0xc0001,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x40140000,0x0,0xc0180000L,0x0L,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x0,0x1,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d)
TEST_SH4(test_fcmpgtf,(uint8_t *)"\x05\xf2\x29\x00\x25\xf0\x29\x01\x0b\x00\x09\x00\x05\xf1\x29\x00\x15\xf0\x29\x01\x0b\x00\x09\x00",24,0xc,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x40400000,0xbf800000,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x0,0x1,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d)
TEST_SH4(test_fdivf,(uint8_t *)"\x03\xf2\x0b\x00\x09\x00\x03\xf1\x0b\x00\x09\x00",12,0x6,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xc0200000,0x41200000,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xc0800000,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d)
TEST_SH4(test_fdivd,(uint8_t *)"\x03\xf2\x0b\x00\x09\x00\x03\xf1\x0b\x00\x09\x00",12,0x0,0xc0001,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x0L,0xbfe00000L,0x0L,0xc0000000L,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x0,0x40100000,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d)
TEST_SH4(test_fdivd,(uint8_t *)"\x03\xf2\x0b\x00\x09\x00\x03\xf1\x0b\x00\x09\x00",12,0x0,0xc0001,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbfe00000L,0x0L,0xc0000000L,0x0L,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x40100000,0x0,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d)
TEST_SH4(test_fipr,(uint8_t *)"\xed\xfd\x0b\x00\x09\x00",6,0x0,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x3f800000,0xc0000000,0xc0400000,0x40800000,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x40800000,0xc0400000,0xc0000000,0x3f800000,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x41a00000,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d)
TEST_SH4(test_flds_fsts,(uint8_t *)"\x8d\xf0\x0b\x00\x09\x00\x9d\xf0\x0b\x00\x09\x00\x1d\xf0\x0d\xf1\x0b\x00\x09\x00",20,0xc,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x3f800000,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x3f800000,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d)
TEST_SH4(test_fldi0,(uint8_t *)"\x8d\xf0\x0b\x00\x09\x00\x9d\xf0\x0b\x00\x09\x00\x1d\xf0\x0d\xf1\x0b\x00\x09\x00",20,0x0,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x11111111,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x0,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d)
TEST_SH4(test_fldi1,(uint8_t *)"\x8d\xf0\x0b\x00\x09\x00\x9d\xf0\x0b\x00\x09\x00\x1d\xf0\x0d\xf1\x0b\x00\x09\x00",20,0x6,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x3f800000,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d)
TEST_SH4(test_floatf,(uint8_t *)"\x5a\x41\x2d\xf2\x0b\x00\x09\x00\x5a\x40\x2d\xf3\x0b\x00\x09\x00",16,0x8,0xbaadf00d,0x2,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x40000000,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d)
TEST_SH4(test_floatd,(uint8_t *)"\x5a\x41\x2d\xf2\x0b\x00\x09\x00\x5a\x40\x2d\xf3\x0b\x00\x09\x00",16,0x0,0xc0001,0xbaadf00d,0x4,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x0,0x40100000,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d)
TEST_SH4(test_floatd,(uint8_t *)"\x5a\x41\x2d\xf2\x0b\x00\x09\x00\x5a\x40\x2d\xf3\x0b\x00\x09\x00",16,0x0,0xc0001,0xbaadf00d,0x4,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x40100000,0x0,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d)
TEST_SH4(test_fmac,(uint8_t *)"\x1e\xf2\x0b\x00\x09\x00",6,0x0,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xc0000000,0xc0a00000,0x40400000,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x41500000,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d)
TEST_SH4(test_fmovd,(uint8_t *)"\x1c\xf0\x0c\xf5\x3c\xf7\x16\xd0\x08\xf9\x15\xd0\x08\xf2\x14\xd0\x08\xe1\x16\xfb\x12\xd0\x09\xfd\x09\xff\x15\xd0\x1a\xf0\x06\x62\x06\x63\x13\xd0\x08\x70\x3b\xf0\x06\x64\x06\x65\x10\xd0\x08\xe1\x17\xf1\x08\x70\x06\x66\x06\x67\x0b\x00\x09\x00\x09\x00\x09\x00\x00\x00\x28\x40\x00\x00\x00\x00\x00\x00\x2e\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x01\x8c\x09\x00\x09\x00\x09\x00\x09\x00\x09\x00\x09\x00\x50\x00\x01\x8c\x09\x00\x09\x00\x09\x00\x09\x00\x09\x00\x09\x00",128,0x0,0xc0001,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x0,0x40200000,0x0,0x40240000,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x40200000,0x0,0x40240000,0x0,0x40200000,0x0,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x0,0x40200000,0x0,0x40280000,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x0,0x40200000,0x0,0x40240000,0x0,0x40280000,0x0,0x402e0000,0x0,0x40280000,0x0,0x402e0000)
TEST_SH4(test_fmovf,(uint8_t *)"\x0c\xf1\x0f\xd0\x08\xf2\x0e\xd0\x04\xe1\x16\xf3\x0c\xd0\x09\xf4\x09\xf5\x0f\xd0\x0a\xf0\x02\x62\x0d\xd0\x08\x70\x2b\xf0\x02\x63\x0b\xd0\x04\xe1\x07\xf1\x1e\x04\x0b\x00\x09\x00\x09\x00\x09\x00\x00\x00\xa0\x40\x00\x00\xe0\x40\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x01\x8c\x09\x00\x09\x00\x09\x00\x09\x00\x09\x00\x09\x00\x38\x00\x01\x8c\x09\x00\x09\x00\x09\x00\x09\x00\x09\x00\x09\x00",96,0x0,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x40400000,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x40400000,0x40a00000,0x40400000,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x40400000,0x40a00000,0x40e00000,0x40a00000,0x40e00000,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d)
TEST_SH4(test_fmovsz,(uint8_t *)"\x0c\xf2\x23\xd0\x08\xf4\x22\xd0\x08\xf3\x21\xd0\x04\xe1\x16\xf6\x1f\xd0\x08\xe1\x16\xf5\x1e\xd0\x09\xf8\x09\xfa\x1c\xd0\x09\xf7\x09\xf9\x1f\xd0\x4a\xf0\x06\x62\x06\x63\x1d\xd0\x5a\xf0\x06\x64\x06\x65\x1b\xd0\x08\x70\x6b\xf0\x06\x66\x06\x67\x18\xd0\x08\x70\x7b\xf0\x06\x68\x06\x69\x16\xd0\x08\xe1\x07\xf1\x08\x70\x06\x6a\x06\x6b\x13\xd0\x08\xe1\x37\xf1\x08\x70\x06\x6c\x06\x6d\x0b\x00\x09\x00\x09\x00\x09\x00\x09\x00\x09\x00\x09\x00\x09\x00\x09\x00\x00\x00\x40\x40\x00\x00\x80\x40\x00\x00\x10\x41\x00\x00\x20\x41\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x70\x00\x01\x8c\x09\x00\x09\x00\x09\x00\x09\x00\x09\x00\x09\x00\x80\x00\x01\x8c\x09\x00\x09\x00\x09\x00\x09\x00\x09\x00\x09\x00",176,0x0,0x140001,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x40000000,0x3f800000,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x40400000,0x40800000,0x41100000,0x41200000,0x40800000,0x41100000,0x40400000,0x40800000,0x40000000,0x3f800000,0x40400000,0x40800000,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x40000000,0x3f800000,0x40400000,0x40800000,0x40800000,0x41100000,0x40400000,0x40800000,0x41100000,0x41200000,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x40400000,0x40800000,0x41100000,0x41200000,0x40400000,0x40800000,0x41100000,0x41200000,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d)
TEST_SH4(test_fmov_single,(uint8_t *)"\x2c\xf3\x0b\x00\x09\x00\x2c\xf4\x0b\x00\x09\x00\x2c\xf4\x0b\x00\x09\x00\x1c\xf4\x4c\xf7\x3c\xf9\x0b\x00\x09\x00",28,0x0,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x40400000,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x40400000,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d)
TEST_SH4(test_fmov_double_sz1,(uint8_t *)"\x2c\xf3\x0b\x00\x09\x00\x2c\xf4\x0b\x00\x09\x00\x2c\xf4\x0b\x00\x09\x00\x1c\xf4\x4c\xf7\x3c\xf9\x0b\x00\x09\x00",28,0xc,0x140001,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x40400000,0x30300000,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x40400000,0x30300000,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d)
TEST_SH4(test_fmov_double_sz0,(uint8_t *)"\x2c\xf3\x0b\x00\x09\x00\x2c\xf4\x0b\x00\x09\x00\x2c\xf4\x0b\x00\x09\x00\x1c\xf4\x4c\xf7\x3c\xf9\x0b\x00\x09\x00",28,0x6,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x40400000,0x30300000,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x40400000,0x0,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d)
TEST_SH4(test_fmov_double_bank_sz1,(uint8_t *)"\x2c\xf3\x0b\x00\x09\x00\x2c\xf4\x0b\x00\x09\x00\x2c\xf4\x0b\x00\x09\x00\x1c\xf4\x4c\xf7\x3c\xf9\x0b\x00\x09\x00",28,0x12,0x140001,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x40400000,0x30300000,0x80800000L,0xa0a00000L,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x40400000,0x30300000,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x40400000,0x30300000,0x80800000L,0xa0a00000L,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d)
TEST_SH4(test_fmov_load_double_bank_sz1,(uint8_t *)"\x0b\xd0\x08\xf2\x0b\x00\x09\x00\x09\xd0\x08\xf2\x0b\x00\x09\x00\x07\xd0\x08\xf2\x0b\x00\x09\x00\x05\xd0\x08\xf3\x0b\x00\x09\x00\x00\x00\xa0\x10\x00\x00\xe0\x20\x09\x00\x09\x00\x09\x00\x09\x00\x20\x00\x01\x8c\x09\x00\x09\x00\x09\x00\x09\x00\x09\x00\x09\x00",64,0x18,0x140001,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x10a00000,0x20e00000,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d)
TEST_SH4(test_fmov_load_single,(uint8_t *)"\x0b\xd0\x08\xf2\x0b\x00\x09\x00\x09\xd0\x08\xf2\x0b\x00\x09\x00\x07\xd0\x08\xf2\x0b\x00\x09\x00\x05\xd0\x08\xf3\x0b\x00\x09\x00\x00\x00\xa0\x10\x00\x00\xe0\x20\x09\x00\x09\x00\x09\x00\x09\x00\x20\x00\x01\x8c\x09\x00\x09\x00\x09\x00\x09\x00\x09\x00\x09\x00",64,0x0,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x10a00000,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d)
TEST_SH4(test_fmov_load_double_sz1,(uint8_t *)"\x0b\xd0\x08\xf2\x0b\x00\x09\x00\x09\xd0\x08\xf2\x0b\x00\x09\x00\x07\xd0\x08\xf2\x0b\x00\x09\x00\x05\xd0\x08\xf3\x0b\x00\x09\x00\x00\x00\xa0\x10\x00\x00\xe0\x20\x09\x00\x09\x00\x09\x00\x09\x00\x20\x00\x01\x8c\x09\x00\x09\x00\x09\x00\x09\x00\x09\x00\x09\x00",64,0x10,0x140001,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x10a00000,0x20e00000,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d)
TEST_SH4(test_fmov_load_double_sz0,(uint8_t *)"\x0b\xd0\x08\xf2\x0b\x00\x09\x00\x09\xd0\x08\xf2\x0b\x00\x09\x00\x07\xd0\x08\xf2\x0b\x00\x09\x00\x05\xd0\x08\xf3\x0b\x00\x09\x00\x00\x00\xa0\x10\x00\x00\xe0\x20\x09\x00\x09\x00\x09\x00\x09\x00\x20\x00\x01\x8c\x09\x00\x09\x00\x09\x00\x09\x00\x09\x00\x09\x00",64,0x8,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x10a00000,0x0,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d)
TEST_SH4(test_fmov_index_load_double_bank_sz1,(uint8_t *)"\x0f\xd0\x04\xe1\x16\xf2\x0b\x00\x09\x00\x0d\xd0\x04\xe1\x16\xf2\x0b\x00\x09\x00\x0a\xd0\x04\xe1\x16\xf2\x0b\x00\x09\x00\x08\xd0\x04\xe1\x16\xf3\x0b\x00\x09\x00\x09\x00\x09\x00\x09\x00\x09\x00\x00\x00\x00\x00\x00\x00\xa0\x10\x00\x00\xe0\x20\x09\x00\x09\x00\x30\x00\x01\x8c\x09\x00\x09\x00\x09\x00\x09\x00\x09\x00\x09\x00",80,0x1e,0x140001,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x10a00000,0x20e00000,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d)
TEST_SH4(test_fmov_index_load_single,(uint8_t *)"\x0f\xd0\x04\xe1\x16\xf2\x0b\x00\x09\x00\x0d\xd0\x04\xe1\x16\xf2\x0b\x00\x09\x00\x0a\xd0\x04\xe1\x16\xf2\x0b\x00\x09\x00\x08\xd0\x04\xe1\x16\xf3\x0b\x00\x09\x00\x09\x00\x09\x00\x09\x00\x09\x00\x00\x00\x00\x00\x00\x00\xa0\x10\x00\x00\xe0\x20\x09\x00\x09\x00\x30\x00\x01\x8c\x09\x00\x09\x00\x09\x00\x09\x00\x09\x00\x09\x00",80,0x0,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x10a00000,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d)
TEST_SH4(test_fmov_index_load_double_sz0,(uint8_t *)"\x0f\xd0\x04\xe1\x16\xf2\x0b\x00\x09\x00\x0d\xd0\x04\xe1\x16\xf2\x0b\x00\x09\x00\x0a\xd0\x04\xe1\x16\xf2\x0b\x00\x09\x00\x08\xd0\x04\xe1\x16\xf3\x0b\x00\x09\x00\x09\x00\x09\x00\x09\x00\x09\x00\x00\x00\x00\x00\x00\x00\xa0\x10\x00\x00\xe0\x20\x09\x00\x09\x00\x30\x00\x01\x8c\x09\x00\x09\x00\x09\x00\x09\x00\x09\x00\x09\x00",80,0xa,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x10a00000,0x0,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d)
TEST_SH4(test_fmov_index_load_double_sz1,(uint8_t *)"\x0f\xd0\x04\xe1\x16\xf2\x0b\x00\x09\x00\x0d\xd0\x04\xe1\x16\xf2\x0b\x00\x09\x00\x0a\xd0\x04\xe1\x16\xf2\x0b\x00\x09\x00\x08\xd0\x04\xe1\x16\xf3\x0b\x00\x09\x00\x09\x00\x09\x00\x09\x00\x09\x00\x00\x00\x00\x00\x00\x00\xa0\x10\x00\x00\xe0\x20\x09\x00\x09\x00\x30\x00\x01\x8c\x09\x00\x09\x00\x09\x00\x09\x00\x09\x00\x09\x00",80,0x14,0x140001,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x10a00000,0x20e00000,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d)
TEST_SH4(test_fmov_store_double_sz1,(uint8_t *)"\x0f\xd0\x0a\xf0\x02\x62\x0b\x00\x09\x00\x0d\xd0\x0a\xf0\x06\x62\x02\x63\x0b\x00\x09\x00\x0a\xd0\x0a\xf0\x06\x62\x02\x63\x0b\x00\x09\x00\x07\xd0\x1a\xf0\x06\x62\x02\x63\x0b\x00\x09\x00\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x09\x00\x09\x00\x09\x00\x09\x00\x30\x00\x01\x8c\x09\x00\x09\x00\x09\x00\x09\x00\x09\x00\x09\x00",80,0x16,0x140001,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x20a00000,0x30e00000,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x20a00000,0x30e00000,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d)
TEST_SH4(test_fmov_store_double_sz0,(uint8_t *)"\x0f\xd0\x0a\xf0\x02\x62\x0b\x00\x09\x00\x0d\xd0\x0a\xf0\x06\x62\x02\x63\x0b\x00\x09\x00\x0a\xd0\x0a\xf0\x06\x62\x02\x63\x0b\x00\x09\x00\x07\xd0\x1a\xf0\x06\x62\x02\x63\x0b\x00\x09\x00\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x09\x00\x09\x00\x09\x00\x09\x00\x30\x00\x01\x8c\x09\x00\x09\x00\x09\x00\x09\x00\x09\x00\x09\x00",80,0xa,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x10a00000,0x20e00000,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x10a00000,0x0,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d)
TEST_SH4(test_fmov_store_double_bank_sz1,(uint8_t *)"\x0f\xd0\x0a\xf0\x02\x62\x0b\x00\x09\x00\x0d\xd0\x0a\xf0\x06\x62\x02\x63\x0b\x00\x09\x00\x0a\xd0\x0a\xf0\x06\x62\x02\x63\x0b\x00\x09\x00\x07\xd0\x1a\xf0\x06\x62\x02\x63\x0b\x00\x09\x00\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x09\x00\x09\x00\x09\x00\x09\x00\x30\x00\x01\x8c\x09\x00\x09\x00\x09\x00\x09\x00\x09\x00\x09\x00",80,0x22,0x140001,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x30a00000,0x40e00000,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x30a00000,0x40e00000,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d)
TEST_SH4(test_fmov_store_single,(uint8_t *)"\x0f\xd0\x0a\xf0\x02\x62\x0b\x00\x09\x00\x0d\xd0\x0a\xf0\x06\x62\x02\x63\x0b\x00\x09\x00\x0a\xd0\x0a\xf0\x06\x62\x02\x63\x0b\x00\x09\x00\x07\xd0\x1a\xf0\x06\x62\x02\x63\x0b\x00\x09\x00\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x09\x00\x09\x00\x09\x00\x09\x00\x30\x00\x01\x8c\x09\x00\x09\x00\x09\x00\x09\x00\x09\x00\x09\x00",80,0x0,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x10a00000,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x10a00000,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d)
TEST_SH4(test_fmov_index_store_double_bank_sz1,(uint8_t *)"\x13\xd0\x04\xe1\x07\xf1\x1e\x02\x0b\x00\x09\x00\x10\xd0\x04\xe1\x07\xf1\x1e\x02\x04\x71\x1e\x03\x0b\x00\x09\x00\x0c\xd0\x04\xe1\x07\xf1\x1e\x02\x04\x71\x1e\x03\x0b\x00\x09\x00\x08\xd0\x04\xe1\x17\xf1\x1e\x02\x04\x71\x1e\x03\x0b\x00\x09\x00\x09\x00\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x09\x00\x09\x00\x40\x00\x01\x8c\x09\x00\x09\x00\x09\x00\x09\x00\x09\x00\x09\x00",96,0x2c,0x140001,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x30a00000,0x40e00000,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x30a00000,0x40e00000,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d)
TEST_SH4(test_fmov_index_store_single,(uint8_t *)"\x13\xd0\x04\xe1\x07\xf1\x1e\x02\x0b\x00\x09\x00\x10\xd0\x04\xe1\x07\xf1\x1e\x02\x04\x71\x1e\x03\x0b\x00\x09\x00\x0c\xd0\x04\xe1\x07\xf1\x1e\x02\x04\x71\x1e\x03\x0b\x00\x09\x00\x08\xd0\x04\xe1\x17\xf1\x1e\x02\x04\x71\x1e\x03\x0b\x00\x09\x00\x09\x00\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x09\x00\x09\x00\x40\x00\x01\x8c\x09\x00\x09\x00\x09\x00\x09\x00\x09\x00\x09\x00",96,0x0,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x10a00000,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x10a00000,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d)
TEST_SH4(test_fmov_index_store_double_sz0,(uint8_t *)"\x13\xd0\x04\xe1\x07\xf1\x1e\x02\x0b\x00\x09\x00\x10\xd0\x04\xe1\x07\xf1\x1e\x02\x04\x71\x1e\x03\x0b\x00\x09\x00\x0c\xd0\x04\xe1\x07\xf1\x1e\x02\x04\x71\x1e\x03\x0b\x00\x09\x00\x08\xd0\x04\xe1\x17\xf1\x1e\x02\x04\x71\x1e\x03\x0b\x00\x09\x00\x09\x00\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x09\x00\x09\x00\x40\x00\x01\x8c\x09\x00\x09\x00\x09\x00\x09\x00\x09\x00\x09\x00",96,0xc,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x10a00000,0x20e00000,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x10a00000,0x0,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d)
TEST_SH4(test_fmov_index_store_double_sz1,(uint8_t *)"\x13\xd0\x04\xe1\x07\xf1\x1e\x02\x0b\x00\x09\x00\x10\xd0\x04\xe1\x07\xf1\x1e\x02\x04\x71\x1e\x03\x0b\x00\x09\x00\x0c\xd0\x04\xe1\x07\xf1\x1e\x02\x04\x71\x1e\x03\x0b\x00\x09\x00\x08\xd0\x04\xe1\x17\xf1\x1e\x02\x04\x71\x1e\x03\x0b\x00\x09\x00\x09\x00\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x09\x00\x09\x00\x40\x00\x01\x8c\x09\x00\x09\x00\x09\x00\x09\x00\x09\x00\x09\x00",96,0x1c,0x140001,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x20a00000,0x30e00000,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x20a00000,0x30e00000,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d)
TEST_SH4(test_fmov_save_single,(uint8_t *)"\x13\xd0\x04\x70\x0b\xf0\x02\x62\x0b\x00\x09\x00\x10\xd0\x04\x70\x0b\xf0\x06\x62\x02\x63\x0b\x00\x09\x00\x0d\xd0\x08\x70\x0a\xf0\x06\x62\x02\x63\x0b\x00\x09\x00\x09\xd0\x08\x70\x1a\xf0\x06\x62\x02\x63\x0b\x00\x09\x00\x09\x00\x09\x00\x09\x00\x09\x00\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x09\x00\x09\x00\x09\x00\x09\x00\x40\x00\x01\x8c\x09\x00\x09\x00\x09\x00\x09\x00\x09\x00\x09\x00",96,0x0,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x10a00000,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x10a00000,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d)
TEST_SH4(test_fmov_save_double_sz1,(uint8_t *)"\x13\xd0\x04\x70\x0b\xf0\x02\x62\x0b\x00\x09\x00\x10\xd0\x04\x70\x0b\xf0\x06\x62\x02\x63\x0b\x00\x09\x00\x0d\xd0\x08\x70\x0a\xf0\x06\x62\x02\x63\x0b\x00\x09\x00\x09\xd0\x08\x70\x1a\xf0\x06\x62\x02\x63\x0b\x00\x09\x00\x09\x00\x09\x00\x09\x00\x09\x00\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x09\x00\x09\x00\x09\x00\x09\x00\x40\x00\x01\x8c\x09\x00\x09\x00\x09\x00\x09\x00\x09\x00\x09\x00",96,0x1a,0x140001,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x20a00000,0x30e00000,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x20a00000,0x30e00000,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d)
TEST_SH4(test_fmov_save_double_sz0,(uint8_t *)"\x13\xd0\x04\x70\x0b\xf0\x02\x62\x0b\x00\x09\x00\x10\xd0\x04\x70\x0b\xf0\x06\x62\x02\x63\x0b\x00\x09\x00\x0d\xd0\x08\x70\x0a\xf0\x06\x62\x02\x63\x0b\x00\x09\x00\x09\xd0\x08\x70\x1a\xf0\x06\x62\x02\x63\x0b\x00\x09\x00\x09\x00\x09\x00\x09\x00\x09\x00\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x09\x00\x09\x00\x09\x00\x09\x00\x40\x00\x01\x8c\x09\x00\x09\x00\x09\x00\x09\x00\x09\x00\x09\x00",96,0xc,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x10a00000,0x20e00000,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x10a00000,0x0,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d)
TEST_SH4(test_fmov_save_double_bank_sz1,(uint8_t *)"\x13\xd0\x04\x70\x0b\xf0\x02\x62\x0b\x00\x09\x00\x10\xd0\x04\x70\x0b\xf0\x06\x62\x02\x63\x0b\x00\x09\x00\x0d\xd0\x08\x70\x0a\xf0\x06\x62\x02\x63\x0b\x00\x09\x00\x09\xd0\x08\x70\x1a\xf0\x06\x62\x02\x63\x0b\x00\x09\x00\x09\x00\x09\x00\x09\x00\x09\x00\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x09\x00\x09\x00\x09\x00\x09\x00\x40\x00\x01\x8c\x09\x00\x09\x00\x09\x00\x09\x00\x09\x00\x09\x00",96,0x28,0x140001,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x30a00000,0x40e00000,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x30a00000,0x40e00000,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d)
TEST_SH4(test_fmov_restore_double_bank_sz1,(uint8_t *)"\x0f\xd0\x03\x61\x19\xf2\x08\x31\x0b\x00\x09\x00\x0c\xd0\x03\x61\x19\xf2\x08\x31\x0b\x00\x09\x00\x09\xd0\x03\x61\x19\xf2\x08\x31\x0b\x00\x09\x00\x06\xd0\x03\x61\x19\xf3\x08\x31\x0b\x00\x09\x00\x00\x00\xa0\x10\x00\x00\xe0\x20\x09\x00\x09\x00\x09\x00\x09\x00\x30\x00\x01\x8c\x09\x00\x09\x00\x09\x00\x09\x00\x09\x00\x09\x00",80,0x24,0x140001,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x8,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x10a00000,0x20e00000,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d)
TEST_SH4(test_fmov_restore_single,(uint8_t *)"\x0f\xd0\x03\x61\x19\xf2\x08\x31\x0b\x00\x09\x00\x0c\xd0\x03\x61\x19\xf2\x08\x31\x0b\x00\x09\x00\x09\xd0\x03\x61\x19\xf2\x08\x31\x0b\x00\x09\x00\x06\xd0\x03\x61\x19\xf3\x08\x31\x0b\x00\x09\x00\x00\x00\xa0\x10\x00\x00\xe0\x20\x09\x00\x09\x00\x09\x00\x09\x00\x30\x00\x01\x8c\x09\x00\x09\x00\x09\x00\x09\x00\x09\x00\x09\x00",80,0x0,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x4,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x10a00000,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d)
TEST_SH4(test_fmov_restore_double_sz0,(uint8_t *)"\x0f\xd0\x03\x61\x19\xf2\x08\x31\x0b\x00\x09\x00\x0c\xd0\x03\x61\x19\xf2\x08\x31\x0b\x00\x09\x00\x09\xd0\x03\x61\x19\xf2\x08\x31\x0b\x00\x09\x00\x06\xd0\x03\x61\x19\xf3\x08\x31\x0b\x00\x09\x00\x00\x00\xa0\x10\x00\x00\xe0\x20\x09\x00\x09\x00\x09\x00\x09\x00\x30\x00\x01\x8c\x09\x00\x09\x00\x09\x00\x09\x00\x09\x00\x09\x00",80,0xc,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x4,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x10a00000,0x0,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d)
TEST_SH4(test_fmov_restore_double_sz1,(uint8_t *)"\x0f\xd0\x03\x61\x19\xf2\x08\x31\x0b\x00\x09\x00\x0c\xd0\x03\x61\x19\xf2\x08\x31\x0b\x00\x09\x00\x09\xd0\x03\x61\x19\xf2\x08\x31\x0b\x00\x09\x00\x06\xd0\x03\x61\x19\xf3\x08\x31\x0b\x00\x09\x00\x00\x00\xa0\x10\x00\x00\xe0\x20\x09\x00\x09\x00\x09\x00\x09\x00\x30\x00\x01\x8c\x09\x00\x09\x00\x09\x00\x09\x00\x09\x00\x09\x00",80,0x18,0x140001,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x8,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x10a00000,0x20e00000,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d)
TEST_SH4(test_fmulf,(uint8_t *)"\x02\xf2\x0b\x00\x09\x00\x02\xf1\x0b\x00\x09\x00",12,0x6,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x40200000,0x40000000,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x40a00000,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d)
TEST_SH4(test_fmuld,(uint8_t *)"\x02\xf2\x0b\x00\x09\x00\x02\xf1\x0b\x00\x09\x00",12,0x0,0xc0001,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x0,0x40080000,0x0L,0xc01c0000L,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x0L,0xc0350000L,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d)
TEST_SH4(test_fmuld,(uint8_t *)"\x02\xf2\x0b\x00\x09\x00\x02\xf1\x0b\x00\x09\x00",12,0x0,0xc0001,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x40080000,0x0,0xc01c0000L,0x0L,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xc0350000L,0x0L,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d)
TEST_SH4(test_fnegf,(uint8_t *)"\x4d\xf0\x0b\x00\x09\x00\x4d\xf0\x0b\x00\x09\x00",12,0x6,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x40800000,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xc0800000,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d)
TEST_SH4(test_fnegd,(uint8_t *)"\x4d\xf0\x0b\x00\x09\x00\x4d\xf0\x0b\x00\x09\x00",12,0x0,0xc0001,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x0,0x40140000,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x0L,0xc0140000L,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d)
TEST_SH4(test_fnegd,(uint8_t *)"\x4d\xf0\x0b\x00\x09\x00\x4d\xf0\x0b\x00\x09\x00",12,0x0,0xc0001,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x40140000,0x0,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xc0140000L,0x0L,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d)
TEST_SH4(test_frchg,(uint8_t *)"\x6a\x01\xfd\xfb\x6a\x02\x0a\xd0\x0a\xf0\x02\x63\xfd\xfb\x0a\xf0\x02\x64\x0b\x00\x09\x00\x09\x00\x09\x00\x09\x00\x09\x00\x09\x00\x00\x00\x00\x00\x09\x00\x09\x00\x09\x00\x09\x00\x09\x00\x09\x00\x20\x00\x01\x8c\x09\x00\x09\x00\x09\x00\x09\x00\x09\x00\x09\x00",64,0x0,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x41500000,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x40001,0x240001,0x0,0x41500000,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d)
TEST_SH4(test_fsca,(uint8_t *)"\x5a\x40\xfd\xf2\x0b\x00\x09\x00",8,0x0,0xbaadf00d,0x4000,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x3f800000,0x80000000,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d)
TEST_SH4(test_fschg,(uint8_t *)"\x6a\x00\xfd\xf3\x6a\x01\x0b\x00\x09\x00",10,0x0,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x40001,0x140001,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d)
TEST_SH4(test_fsrra,(uint8_t *)"\x7d\xf0\x0b\x00\x09\x00",6,0x0,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x40800000,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x3f000000,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d)
TEST_SH4(test_fsqrtd,(uint8_t *)"\x6d\xf0\x0b\x00\x09\x00\x6d\xf0\x0b\x00\x09\x00",12,0x0,0xc0001,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x0,0x40100000,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x0,0x40000000,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d)
TEST_SH4(test_fsqrtd,(uint8_t *)"\x6d\xf0\x0b\x00\x09\x00\x6d\xf0\x0b\x00\x09\x00",12,0x0,0xc0001,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x40100000,0x0,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x40000000,0x0,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d)
TEST_SH4(test_fsqrtf,(uint8_t *)"\x6d\xf0\x0b\x00\x09\x00\x6d\xf0\x0b\x00\x09\x00",12,0x6,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x40800000,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x40000000,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d)
TEST_SH4(test_fsubf,(uint8_t *)"\x01\xf2\x0b\x00\x09\x00\x01\xf1\x0b\x00\x09\x00",12,0x6,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x40400000,0xbf800000,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xc0800000,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d)
TEST_SH4(test_fsubd,(uint8_t *)"\x01\xf2\x0b\x00\x09\x00\x01\xf1\x0b\x00\x09\x00",12,0x0,0xc0001,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x0L,0xc01c0000L,0x0L,0xc0100000L,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x0,0x40080000,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d)
TEST_SH4(test_fsubd,(uint8_t *)"\x01\xf2\x0b\x00\x09\x00\x01\xf1\x0b\x00\x09\x00",12,0x0,0xc0001,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xc01c0000L,0x0L,0xc0100000L,0x0L,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x40080000,0x0,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d)
TEST_SH4(test_ftrcf,(uint8_t *)"\x3d\xf0\x5a\x00\x0b\x00\x09\x00\x3d\xf0\x5a\x00\x0b\x00\x09\x00",16,0x8,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xc0966666,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xfffffffc,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d)
TEST_SH4(test_ftrcd,(uint8_t *)"\x3d\xf0\x5a\x00\x0b\x00\x09\x00\x3d\xf0\x5a\x00\x0b\x00\x09\x00",16,0x0,0xc0001,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xcccccccdL,0xc012ccccL,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xfffffffc,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d)
TEST_SH4(test_ftrcd,(uint8_t *)"\x3d\xf0\x5a\x00\x0b\x00\x09\x00\x3d\xf0\x5a\x00\x0b\x00\x09\x00",16,0x0,0xc0001,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xc012ccccL,0xcccccccdL,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xfffffffc,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d)
TEST_SH4(test_ftrv,(uint8_t *)"\xfd\xf5\x0b\x00\x09\x00",6,0x0,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x40000000,0x40800000,0x41000000,0x0,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x3f800000,0x0,0x0,0x0,0x0,0x40000000,0x0,0x0,0x0,0x0,0x3f800000,0x0,0x0,0x0,0x0,0x3f800000,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0x40000000,0x41000000,0x41000000,0x0,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d)
TEST_SH4(test_jmp,(uint8_t *)"\x03\xd0\x2b\x40\x09\x00\x0b\x00\x09\x00\x0b\x00\x0d\xe1\x09\x00\x0a\x00\x01\x8c\x09\x00\x09\x00\x09\x00\x09\x00\x09\x00\x09\x00",32,0x0,0xbaadf00d,0xbaadf00d,0x0,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xd,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d)
TEST_SH4(test_jsr,(uint8_t *)"\x22\x4f\x07\xd0\x0b\x40\x01\x71\x03\x71\x26\x4f\x0b\x00\x09\x00\x0b\x00\x09\x71\x09\x00\x09\x00\x09\x00\x09\x00\x09\x00\x09\x00\x10\x00\x01\x8c\x09\x00\x09\x00\x09\x00\x09\x00\x09\x00\x09\x00",48,0x0,0xbaadf00d,0xbaadf00d,0x0,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xd,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d,0xbaadf00d)

View File

@ -42,8 +42,8 @@ def add_value(test, set, idx, value):
# registers that they alias
set = set.replace('dr', 'fr')
set = set.replace('xd', 'xf')
test[set][idx] = (value & 0xffffffff);
test[set][idx + 1] = ((value >> 32) & 0xffffffff);
test[set][idx + 1] = (value & 0xffffffff);
test[set][idx] = ((value >> 32) & 0xffffffff);
else:
test[set][idx] = value