195 lines
4.2 KiB
ArmAsm
195 lines
4.2 KiB
ArmAsm
# Credits: These tests stolen from https://github.com/dolphin-emu/hwtests
|
|
# +0
|
|
test_fctiwz_1:
|
|
#_ REGISTER_IN f0 0x0000000000000000
|
|
fctiwz f1, f0
|
|
blr
|
|
#_ REGISTER_OUT f0 0x0000000000000000
|
|
#_ REGISTER_OUT f1 0x0000000000000000
|
|
|
|
# -0
|
|
test_fctiwz_2:
|
|
#_ REGISTER_IN f0 0x8000000000000000
|
|
fctiwz f1, f0
|
|
blr
|
|
#_ REGISTER_OUT f0 0x8000000000000000
|
|
#_ REGISTER_OUT f1 0x0000000000000000
|
|
|
|
# smallest positive subnormal
|
|
test_fctiwz_3:
|
|
#_ REGISTER_IN f0 0x0000000000000001
|
|
fctiwz f1, f0
|
|
blr
|
|
#_ REGISTER_OUT f0 0x0000000000000001
|
|
#_ REGISTER_OUT f1 0x0000000000000000
|
|
|
|
# largest subnormal
|
|
test_fctiwz_4:
|
|
#_ REGISTER_IN f0 0x000fffffffffffff
|
|
fctiwz f1, f0
|
|
blr
|
|
#_ REGISTER_OUT f0 0x000fffffffffffff
|
|
#_ REGISTER_OUT f1 0x0000000000000000
|
|
|
|
# +1
|
|
test_fctiwz_5:
|
|
#_ REGISTER_IN f0 0x3ff0000000000000
|
|
fctiwz f1, f0
|
|
blr
|
|
#_ REGISTER_OUT f0 0x3ff0000000000000
|
|
#_ REGISTER_OUT f1 0x0000000000000001
|
|
|
|
# -1
|
|
test_fctiwz_6:
|
|
#_ REGISTER_IN f0 0xbff0000000000000
|
|
fctiwz f1, f0
|
|
blr
|
|
#_ REGISTER_OUT f0 0xbff0000000000000
|
|
#_ REGISTER_OUT f1 0xffffffffffffffff
|
|
|
|
# -(2^31)
|
|
test_fctiwz_7:
|
|
#_ REGISTER_IN f0 0xc1e0000000000000
|
|
fctiwz f1, f0
|
|
blr
|
|
#_ REGISTER_OUT f0 0xc1e0000000000000
|
|
#_ REGISTER_OUT f1 0xFFFFFFFF80000000
|
|
|
|
# 2^31 - 1
|
|
test_fctiwz_8:
|
|
#_ REGISTER_IN f0 0x41dfffffffc00000
|
|
fctiwz f1, f0
|
|
blr
|
|
#_ REGISTER_OUT f0 0x41dfffffffc00000
|
|
#_ REGISTER_OUT f1 0x000000007fffffff
|
|
|
|
# +infinity
|
|
test_fctiwz_9:
|
|
#_ REGISTER_IN f0 0x7ff0000000000000
|
|
fctiwz f1, f0
|
|
blr
|
|
#_ REGISTER_OUT f0 0x7ff0000000000000
|
|
#_ REGISTER_OUT f1 0x000000007fffffff
|
|
|
|
# -infinity
|
|
test_fctiwz_10:
|
|
#_ REGISTER_IN f0 0xfff0000000000000
|
|
fctiwz f1, f0
|
|
blr
|
|
#_ REGISTER_OUT f0 0xfff0000000000000
|
|
#_ REGISTER_OUT f1 0xFFFFFFFF80000000
|
|
|
|
# TODO(DrChat): Xenia doesn't handle NaNs yet.
|
|
# # QNaN
|
|
# test_fctiwz_11:
|
|
# #_ REGISTER_IN f0 0xfff8000000000000
|
|
# fctiwz f1, f0
|
|
# blr
|
|
# #_ REGISTER_OUT f0 0xfff8000000000000
|
|
# #_ REGISTER_OUT f1 0xFFFFFFFF80000000
|
|
#
|
|
# # SNaN
|
|
# test_fctiwz_12:
|
|
# #_ REGISTER_IN f0 0xfff4000000000000
|
|
# fctiwz f1, f0
|
|
# blr
|
|
# #_ REGISTER_OUT f0 0xfff4000000000000
|
|
# #_ REGISTER_OUT f1 0xFFFFFFFF80000000
|
|
|
|
# +0
|
|
test_fctidz_1:
|
|
#_ REGISTER_IN f0 0x0000000000000000
|
|
fctidz f1, f0
|
|
blr
|
|
#_ REGISTER_OUT f0 0x0000000000000000
|
|
#_ REGISTER_OUT f1 0x0000000000000000
|
|
|
|
# -0
|
|
test_fctidz_2:
|
|
#_ REGISTER_IN f0 0x8000000000000000
|
|
fctidz f1, f0
|
|
blr
|
|
#_ REGISTER_OUT f0 0x8000000000000000
|
|
#_ REGISTER_OUT f1 0x0000000000000000
|
|
|
|
# smallest positive subnormal
|
|
test_fctidz_3:
|
|
#_ REGISTER_IN f0 0x0000000000000001
|
|
fctidz f1, f0
|
|
blr
|
|
#_ REGISTER_OUT f0 0x0000000000000001
|
|
#_ REGISTER_OUT f1 0x0000000000000000
|
|
|
|
# largest subnormal
|
|
test_fctidz_4:
|
|
#_ REGISTER_IN f0 0x000fffffffffffff
|
|
fctidz f1, f0
|
|
blr
|
|
#_ REGISTER_OUT f0 0x000fffffffffffff
|
|
#_ REGISTER_OUT f1 0x0000000000000000
|
|
|
|
# +1
|
|
test_fctidz_5:
|
|
#_ REGISTER_IN f0 0x3ff0000000000000
|
|
fctidz f1, f0
|
|
blr
|
|
#_ REGISTER_OUT f0 0x3ff0000000000000
|
|
#_ REGISTER_OUT f1 0x0000000000000001
|
|
|
|
# -1
|
|
test_fctidz_6:
|
|
#_ REGISTER_IN f0 0xbff0000000000000
|
|
fctidz f1, f0
|
|
blr
|
|
#_ REGISTER_OUT f0 0xbff0000000000000
|
|
#_ REGISTER_OUT f1 0xffffffffffffffff
|
|
|
|
# -(2^31)
|
|
test_fctidz_7:
|
|
#_ REGISTER_IN f0 0xc1e0000000000000
|
|
fctidz f1, f0
|
|
blr
|
|
#_ REGISTER_OUT f0 0xc1e0000000000000
|
|
#_ REGISTER_OUT f1 0xffffffff80000000
|
|
|
|
# 2^31 - 1
|
|
test_fctidz_8:
|
|
#_ REGISTER_IN f0 0x41dfffffffc00000
|
|
fctidz f1, f0
|
|
blr
|
|
#_ REGISTER_OUT f0 0x41dfffffffc00000
|
|
#_ REGISTER_OUT f1 0x000000007fffffff
|
|
|
|
# +infinity
|
|
test_fctidz_9:
|
|
#_ REGISTER_IN f0 0x7ff0000000000000
|
|
fctidz f1, f0
|
|
blr
|
|
#_ REGISTER_OUT f0 0x7ff0000000000000
|
|
#_ REGISTER_OUT f1 0x7fffffffffffffff
|
|
|
|
# -infinity
|
|
test_fctidz_10:
|
|
#_ REGISTER_IN f0 0xfff0000000000000
|
|
fctidz f1, f0
|
|
blr
|
|
#_ REGISTER_OUT f0 0xfff0000000000000
|
|
#_ REGISTER_OUT f1 0x8000000000000000
|
|
|
|
# TODO(DrChat): Xenia doesn't handle NaNs yet.
|
|
# # QNaN
|
|
# test_fctidz_11:
|
|
# #_ REGISTER_IN f0 0xfff8000000000000
|
|
# fctidz f1, f0
|
|
# blr
|
|
# #_ REGISTER_OUT f0 0xfff8000000000000
|
|
# #_ REGISTER_OUT f1 0x8000000000000000
|
|
#
|
|
# # SNaN
|
|
# test_fctidz_12:
|
|
# #_ REGISTER_IN f0 0xfff4000000000000
|
|
# fctidz f1, f0
|
|
# blr
|
|
# #_ REGISTER_OUT f0 0xfff4000000000000
|
|
# #_ REGISTER_OUT f1 0x8000000000000000
|