URL
https://opencores.org/ocsvn/openrisc_me/openrisc_me/trunk
Subversion Repositories openrisc_me
[/] [openrisc/] [trunk/] [gnu-src/] [gdb-7.1/] [sim/] [testsuite/] [sim/] [sh64/] [compact/] [ftrc.cgs] - Rev 227
Compare with Previous | Blame | View Log
# sh testcase for ftrc -*- Asm -*-# mach: all# as: -isa=shcompact# ld: -m shelf32.include "compact/testutils.inc"start# ftrc(0.0) = 0.fldi0 fr0ftrc fr0, fpul# check results.mov #0, r0sts fpul, r1cmp/eq r0, r1bf wrong# ftrc(1.5) = 1.fldi1 fr0fldi1 fr1fldi1 fr2# double it.fadd fr2, fr2# form the fraction.fdiv fr2, fr1fadd fr1, fr0# now we've got 1.5 in fr0.ftrc fr0, fpul# check results.mov #1, r0sts fpul, r1cmp/eq r0, r1bf wrong# ftrc(-1.5) = -1.fldi1 fr0fneg fr0fldi1 fr1fldi1 fr2# double it.fadd fr2, fr2# form the fraction.fdiv fr2, fr1fneg fr1# -1 + -0.5 = -1.5.fadd fr1, fr0# now we've got 1.5 in fr0.ftrc fr0, fpul# check results.mov #1, r0neg r0, r0sts fpul, r1cmp/eq r0, r1bf wrongbra doublenopwrong:faildouble:# ftrc(0.0) = 0.fldi0 fr0_s2d fr0, dr0_setprftrc dr0, fpul_clrpr# check results.mov #0, r0sts fpul, r1cmp/eq r0, r1foo:bf wrong2# ftrc(1.5) = 1.fldi1 fr0fldi1 fr2fldi1 fr4# double it.fadd fr4, fr4# form 0.5.fdiv fr4, fr2fadd fr2, fr0# now we've got 1.5 in fr0, so do some single->double# conversions and perform the ftrc._s2d fr0, dr0_s2d fr2, dr2_s2d fr4, dr4_setprftrc dr0, fpul_clrpr# check results.mov #1, r0sts fpul, r1cmp/eq r0, r1bf wrong2# ftrc(-1.5) = -1.fldi1 fr0fneg fr0fldi1 fr2fldi1 fr4# double it.fadd fr4, fr4# form the fraction.fdiv fr4, fr2fneg fr2# -1 + -0.5 = -1.5.fadd fr2, fr0# now we've got 1.5 in fr0, so do some single->double# conversions and perform the ftrc._s2d fr0, dr0_s2d fr2, dr2_s2d fr4, dr4_setprftrc dr0, fpul_clrpr# check results.mov #1, r0neg r0, r0sts fpul, r1cmp/eq r0, r1bf wrong2okay:passwrong2:fail
