OpenCores
URL https://opencores.org/ocsvn/openrisc_2011-10-31/openrisc_2011-10-31/trunk

Subversion Repositories openrisc_2011-10-31

[/] [openrisc/] [tags/] [gnu-src/] [gdb-6.8/] [pre-binutils-2.20.1-sync/] [sim/] [testsuite/] [sim/] [sh/] [fsqrt.s] - Diff between revs 157 and 223

Only display areas with differences | Details | Blame | View Log

Rev 157 Rev 223
# sh testcase for fsqrt
# sh testcase for fsqrt
# mach: sh
# mach: sh
# as(sh):       -defsym sim_cpu=0
# as(sh):       -defsym sim_cpu=0
 
 
        .include "testutils.inc"
        .include "testutils.inc"
 
 
        start
        start
fsqrt_single:
fsqrt_single:
        set_grs_a5a5
        set_grs_a5a5
        set_fprs_a5a5
        set_fprs_a5a5
        # sqrt(0.0) = 0.0.
        # sqrt(0.0) = 0.0.
        fldi0   fr0
        fldi0   fr0
        fsqrt   fr0
        fsqrt   fr0
        fldi0   fr1
        fldi0   fr1
        fcmp/eq fr0, fr1
        fcmp/eq fr0, fr1
        bt      .L0
        bt      .L0
        fail
        fail
.L0:
.L0:
        # sqrt(1.0) = 1.0.
        # sqrt(1.0) = 1.0.
        fldi1   fr0
        fldi1   fr0
        fsqrt   fr0
        fsqrt   fr0
        fldi1   fr1
        fldi1   fr1
        fcmp/eq fr0, fr1
        fcmp/eq fr0, fr1
        bt      .L1
        bt      .L1
        fail
        fail
.L1:
.L1:
        # sqrt(4.0) = 2.0
        # sqrt(4.0) = 2.0
        fldi1   fr0
        fldi1   fr0
        # Double it.
        # Double it.
        fadd    fr0, fr0
        fadd    fr0, fr0
        # Double it again.
        # Double it again.
        fadd    fr0, fr0
        fadd    fr0, fr0
        fsqrt   fr0
        fsqrt   fr0
        fldi1   fr1
        fldi1   fr1
        # Double it.
        # Double it.
        fadd    fr1, fr1
        fadd    fr1, fr1
        fcmp/eq fr0, fr1
        fcmp/eq fr0, fr1
        bt      .L2
        bt      .L2
        fail
        fail
.L2:
.L2:
        test_grs_a5a5
        test_grs_a5a5
        assert_fpreg_i  2, fr0
        assert_fpreg_i  2, fr0
        assert_fpreg_i  2, fr1
        assert_fpreg_i  2, fr1
        test_fpr_a5a5   fr2
        test_fpr_a5a5   fr2
        test_fpr_a5a5   fr3
        test_fpr_a5a5   fr3
        test_fpr_a5a5   fr4
        test_fpr_a5a5   fr4
        test_fpr_a5a5   fr5
        test_fpr_a5a5   fr5
        test_fpr_a5a5   fr6
        test_fpr_a5a5   fr6
        test_fpr_a5a5   fr7
        test_fpr_a5a5   fr7
        test_fpr_a5a5   fr8
        test_fpr_a5a5   fr8
        test_fpr_a5a5   fr9
        test_fpr_a5a5   fr9
        test_fpr_a5a5   fr10
        test_fpr_a5a5   fr10
        test_fpr_a5a5   fr11
        test_fpr_a5a5   fr11
        test_fpr_a5a5   fr12
        test_fpr_a5a5   fr12
        test_fpr_a5a5   fr13
        test_fpr_a5a5   fr13
        test_fpr_a5a5   fr14
        test_fpr_a5a5   fr14
        test_fpr_a5a5   fr15
        test_fpr_a5a5   fr15
 
 
fsqrt_double:
fsqrt_double:
        double_prec
        double_prec
        set_grs_a5a5
        set_grs_a5a5
        set_fprs_a5a5
        set_fprs_a5a5
        # sqrt(0.0) = 0.0.
        # sqrt(0.0) = 0.0.
        fldi0   fr0
        fldi0   fr0
        _s2d    fr0, dr0
        _s2d    fr0, dr0
        fsqrt   dr0
        fsqrt   dr0
        fldi0   fr2
        fldi0   fr2
        _s2d    fr2, dr2
        _s2d    fr2, dr2
        fcmp/eq dr0, dr2
        fcmp/eq dr0, dr2
        bt      .L10
        bt      .L10
        fail
        fail
.L10:
.L10:
        # sqrt(1.0) = 1.0.
        # sqrt(1.0) = 1.0.
        fldi1   fr0
        fldi1   fr0
        _s2d    fr0, dr0
        _s2d    fr0, dr0
        fsqrt   dr0
        fsqrt   dr0
        fldi1   fr2
        fldi1   fr2
        _s2d    fr2, dr2
        _s2d    fr2, dr2
        fcmp/eq dr0, dr2
        fcmp/eq dr0, dr2
        bt      .L11
        bt      .L11
        fail
        fail
.L11:
.L11:
        # sqrt(4.0) = 2.0.
        # sqrt(4.0) = 2.0.
        fldi1   fr0
        fldi1   fr0
        # Double it.
        # Double it.
        single_prec
        single_prec
        fadd    fr0, fr0
        fadd    fr0, fr0
        # Double it again.
        # Double it again.
        fadd    fr0, fr0
        fadd    fr0, fr0
        double_prec
        double_prec
        _s2d    fr0, dr0
        _s2d    fr0, dr0
        fsqrt   dr0
        fsqrt   dr0
        fldi1   fr2
        fldi1   fr2
        # Double it.
        # Double it.
        single_prec
        single_prec
        fadd    fr2, fr2
        fadd    fr2, fr2
        double_prec
        double_prec
        _s2d    fr2, dr2
        _s2d    fr2, dr2
        fcmp/eq dr0, dr2
        fcmp/eq dr0, dr2
        bt      .L12
        bt      .L12
        fail
        fail
.L12:
.L12:
        test_grs_a5a5
        test_grs_a5a5
        assert_dpreg_i  2, dr0
        assert_dpreg_i  2, dr0
        assert_dpreg_i  2, dr2
        assert_dpreg_i  2, dr2
        test_fpr_a5a5   fr4
        test_fpr_a5a5   fr4
        test_fpr_a5a5   fr5
        test_fpr_a5a5   fr5
        test_fpr_a5a5   fr6
        test_fpr_a5a5   fr6
        test_fpr_a5a5   fr7
        test_fpr_a5a5   fr7
        test_fpr_a5a5   fr8
        test_fpr_a5a5   fr8
        test_fpr_a5a5   fr9
        test_fpr_a5a5   fr9
        test_fpr_a5a5   fr10
        test_fpr_a5a5   fr10
        test_fpr_a5a5   fr11
        test_fpr_a5a5   fr11
        test_fpr_a5a5   fr12
        test_fpr_a5a5   fr12
        test_fpr_a5a5   fr13
        test_fpr_a5a5   fr13
        test_fpr_a5a5   fr14
        test_fpr_a5a5   fr14
        test_fpr_a5a5   fr15
        test_fpr_a5a5   fr15
 
 
        pass
        pass
        exit 0
        exit 0
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.