URL
https://opencores.org/ocsvn/openrisc_2011-10-31/openrisc_2011-10-31/trunk
Only display areas with differences |
Details |
Blame |
View Log
Rev 24 |
Rev 33 |
# sh testcase for fdiv -*- Asm -*-
|
# sh testcase for fdiv -*- Asm -*-
|
# mach: all
|
# mach: all
|
# as: -isa=shcompact
|
# as: -isa=shcompact
|
# ld: -m shelf32
|
# ld: -m shelf32
|
|
|
.include "compact/testutils.inc"
|
.include "compact/testutils.inc"
|
|
|
start
|
start
|
_clrpr
|
_clrpr
|
|
|
# 1.0 / 0.0 should be INF
|
# 1.0 / 0.0 should be INF
|
# (and not crash the sim).
|
# (and not crash the sim).
|
fldi0 fr0
|
fldi0 fr0
|
fldi1 fr1
|
fldi1 fr1
|
fdiv fr0, fr1
|
fdiv fr0, fr1
|
|
|
# 0.0 / 1.0 == 0.0.
|
# 0.0 / 1.0 == 0.0.
|
fldi0 fr0
|
fldi0 fr0
|
fldi1 fr1
|
fldi1 fr1
|
fdiv fr1, fr0
|
fdiv fr1, fr0
|
fldi0 fr2
|
fldi0 fr2
|
fcmp/eq fr0, fr2
|
fcmp/eq fr0, fr2
|
bf wrong
|
bf wrong
|
|
|
# 2.0 / 1.0 == 2.0.
|
# 2.0 / 1.0 == 2.0.
|
fldi1 fr1
|
fldi1 fr1
|
fldi1 fr2
|
fldi1 fr2
|
fadd fr2, fr2
|
fadd fr2, fr2
|
fdiv fr1, fr2
|
fdiv fr1, fr2
|
# Load 2.0 into fr3.
|
# Load 2.0 into fr3.
|
fldi1 fr3
|
fldi1 fr3
|
fadd fr3, fr3
|
fadd fr3, fr3
|
fcmp/eq fr2, fr3
|
fcmp/eq fr2, fr3
|
bf wrong
|
bf wrong
|
|
|
# (1.0 / 2.0) + (1.0 / 2.0) == 1.0.
|
# (1.0 / 2.0) + (1.0 / 2.0) == 1.0.
|
fldi1 fr1
|
fldi1 fr1
|
fldi1 fr2
|
fldi1 fr2
|
fadd fr2, fr2
|
fadd fr2, fr2
|
fdiv fr2, fr1
|
fdiv fr2, fr1
|
# fr1 should contain 0.5.
|
# fr1 should contain 0.5.
|
fadd fr1, fr1
|
fadd fr1, fr1
|
# Load 1.0 into fr3.
|
# Load 1.0 into fr3.
|
fldi1 fr3
|
fldi1 fr3
|
# Compare fr1 with fr3.
|
# Compare fr1 with fr3.
|
fcmp/eq fr1, fr3
|
fcmp/eq fr1, fr3
|
bf wrong
|
bf wrong
|
|
|
bra double
|
bra double
|
nop
|
nop
|
|
|
wrong:
|
wrong:
|
fail
|
fail
|
|
|
double:
|
double:
|
# double test
|
# double test
|
# (1.0 / 2.0) + (1.0 / 2.0) == 1.0.
|
# (1.0 / 2.0) + (1.0 / 2.0) == 1.0.
|
fldi1 fr1
|
fldi1 fr1
|
_s2d fr1, dr6
|
_s2d fr1, dr6
|
fldi1 fr2
|
fldi1 fr2
|
fadd fr2, fr2
|
fadd fr2, fr2
|
_s2d fr2, dr8
|
_s2d fr2, dr8
|
_setpr
|
_setpr
|
fdiv dr8, dr6
|
fdiv dr8, dr6
|
# dr0 should contain 0.5.
|
# dr0 should contain 0.5.
|
# double it, expect 1.0.
|
# double it, expect 1.0.
|
fadd dr6, dr6
|
fadd dr6, dr6
|
_clrpr
|
_clrpr
|
foo:
|
foo:
|
# Load 1.0 into dr4.
|
# Load 1.0 into dr4.
|
fldi1 fr1
|
fldi1 fr1
|
_s2d fr1, dr10
|
_s2d fr1, dr10
|
# Compare dr0 with dr10.
|
# Compare dr0 with dr10.
|
_setpr
|
_setpr
|
fcmp/eq dr6, dr10
|
fcmp/eq dr6, dr10
|
bf wrong2
|
bf wrong2
|
_clrpr
|
_clrpr
|
|
|
okay:
|
okay:
|
pass
|
pass
|
|
|
wrong2:
|
wrong2:
|
fail
|
fail
|
|
|
© copyright 1999-2024
OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.