mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-12-21 04:42:53 +08:00
1368b914e9
Now that all port tests live under testsuite/sim/*/, and none live in testsuite/ directly, flatten the structure by moving all of the dirs under testsuite/sim/ to testsuite/ directly. We need to stop passing --tool to dejagnu so that it searches all dirs and not just ones that start with "sim". Since we have no other dirs in this tree, and no plans to add any, should be fine.
138 lines
2.3 KiB
ArmAsm
138 lines
2.3 KiB
ArmAsm
# sh testcase for fipr $fvm, $fvn
|
|
# mach: sh
|
|
# as(sh): -defsym sim_cpu=0
|
|
|
|
.include "testutils.inc"
|
|
|
|
start
|
|
initv0:
|
|
set_grs_a5a5
|
|
set_fprs_a5a5
|
|
# Load 1 into fr0.
|
|
fldi1 fr0
|
|
# Load 2 into fr1.
|
|
fldi1 fr1
|
|
fadd fr1, fr1
|
|
# Load 4 into fr2.
|
|
fldi1 fr2
|
|
fadd fr2, fr2
|
|
fadd fr2, fr2
|
|
# Load 8 into fr3.
|
|
fmov fr2, fr3
|
|
fadd fr2, fr3
|
|
|
|
initv8:
|
|
fldi1 fr8
|
|
fldi0 fr9
|
|
fldi1 fr10
|
|
fldi0 fr11
|
|
|
|
fipr fv0, fv8
|
|
test1:
|
|
# Result will be in fr11.
|
|
assert_fpreg_i 1, fr0
|
|
assert_fpreg_i 2, fr1
|
|
assert_fpreg_i 4, fr2
|
|
assert_fpreg_i 8, fr3
|
|
assert_fpreg_x 0xa5a5a5a5, fr4
|
|
assert_fpreg_x 0xa5a5a5a5, fr5
|
|
assert_fpreg_x 0xa5a5a5a5, fr6
|
|
assert_fpreg_x 0xa5a5a5a5, fr7
|
|
assert_fpreg_i 1, fr8
|
|
assert_fpreg_i 0, fr9
|
|
assert_fpreg_i 1, fr10
|
|
assert_fpreg_i 5, fr11
|
|
assert_fpreg_x 0xa5a5a5a5, fr12
|
|
assert_fpreg_x 0xa5a5a5a5, fr13
|
|
assert_fpreg_x 0xa5a5a5a5, fr14
|
|
assert_fpreg_x 0xa5a5a5a5, fr15
|
|
|
|
test_grs_a5a5
|
|
test_infp:
|
|
# Test positive infinity
|
|
fldi0 fr11
|
|
mov.l infp, r0
|
|
lds r0, fpul
|
|
fsts fpul, fr0
|
|
fipr fv0, fv8
|
|
# fr11 should be plus infinity
|
|
assert_fpreg_x 0x7f800000, fr11
|
|
test_infm:
|
|
# Test negitive infinity
|
|
fldi0 fr11
|
|
mov.l infm, r0
|
|
lds r0, fpul
|
|
fsts fpul, fr0
|
|
fipr fv0, fv8
|
|
# fr11 should be plus infinity
|
|
assert_fpreg_x 0xff800000, fr11
|
|
test_qnanp:
|
|
# Test positive qnan
|
|
fldi0 fr11
|
|
mov.l qnanp, r0
|
|
lds r0, fpul
|
|
fsts fpul, fr0
|
|
fipr fv0, fv8
|
|
# fr11 should be plus qnan (or greater)
|
|
flds fr11, fpul
|
|
sts fpul, r1
|
|
cmp/ge r0, r1
|
|
bt .L0
|
|
fail
|
|
.L0:
|
|
test_snanp:
|
|
# Test positive snan
|
|
fldi0 fr11
|
|
mov.l snanp, r0
|
|
lds r0, fpul
|
|
fsts fpul, fr0
|
|
fipr fv0, fv8
|
|
# fr11 should be plus snan (or greater)
|
|
flds fr11, fpul
|
|
sts fpul, r1
|
|
cmp/ge r0, r1
|
|
bt .L1
|
|
fail
|
|
.L1:
|
|
.if 0
|
|
# Handling of nan and inf not implemented yet.
|
|
test_qnanm:
|
|
# Test negantive qnan
|
|
fldi0 fr11
|
|
mov.l qnanm, r0
|
|
lds r0, fpul
|
|
fsts fpul, fr0
|
|
fipr fv0, fv8
|
|
# fr11 should be minus qnan (or less)
|
|
flds fr11, fpul
|
|
sts fpul, r1
|
|
cmp/ge r1, r0
|
|
bt .L2
|
|
fail
|
|
.L2:
|
|
test_snanm:
|
|
# Test negative snan
|
|
fldi0 fr11
|
|
mov.l snanm, r0
|
|
lds r0, fpul
|
|
fsts fpul, fr0
|
|
fipr fv0, fv8
|
|
# fr11 should be minus snan (or less)
|
|
flds fr11, fpul
|
|
sts fpul, r1
|
|
cmp/ge r1, r0
|
|
bt .L3
|
|
fail
|
|
.L3:
|
|
.endif
|
|
pass
|
|
exit 0
|
|
|
|
.align 2
|
|
qnanp: .long 0x7f800001
|
|
qnanm: .long 0xff800001
|
|
snanp: .long 0x7fc00000
|
|
snanm: .long 0xffc00000
|
|
infp: .long 0x7f800000
|
|
infm: .long 0xff800000
|