OpenCores
URL https://opencores.org/ocsvn/openrisc_me/openrisc_me/trunk

Subversion Repositories openrisc_me

[/] [openrisc/] [tags/] [gdb/] [gdb-6.8/] [gdb-6.8.openrisc-2.1/] [sim/] [testsuite/] [sim/] [sh/] [fmul.s] - Diff between revs 24 and 33

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

Rev 24 Rev 33
# sh testcase for fmul
# sh testcase for fmul
# mach: sh
# mach: sh
# as(sh):       -defsym sim_cpu=0
# as(sh):       -defsym sim_cpu=0
 
 
        .include "testutils.inc"
        .include "testutils.inc"
 
 
        .macro init
        .macro init
        fldi0 fr0
        fldi0 fr0
        fldi1 fr1
        fldi1 fr1
        fldi1 fr2
        fldi1 fr2
        fadd fr2, fr2
        fadd fr2, fr2
        .endm
        .endm
 
 
        start
        start
fmul_single:
fmul_single:
        set_grs_a5a5
        set_grs_a5a5
        set_fprs_a5a5
        set_fprs_a5a5
        # 0.0 * 0.0 = 0.0.
        # 0.0 * 0.0 = 0.0.
        init
        init
        fmul    fr0, fr0
        fmul    fr0, fr0
        assert_fpreg_i  0, fr0
        assert_fpreg_i  0, fr0
 
 
        # 0.0 * 1.0 = 0.0.
        # 0.0 * 1.0 = 0.0.
        init
        init
        fmul    fr1, fr0
        fmul    fr1, fr0
        assert_fpreg_i  0, fr0
        assert_fpreg_i  0, fr0
 
 
        # 1.0 * 0.0 = 0.0.
        # 1.0 * 0.0 = 0.0.
        init
        init
        fmul    fr0, fr1
        fmul    fr0, fr1
        assert_fpreg_i  0, fr1
        assert_fpreg_i  0, fr1
 
 
        # 1.0 * 1.0 = 1.0.
        # 1.0 * 1.0 = 1.0.
        init
        init
        fmul    fr1, fr1
        fmul    fr1, fr1
        assert_fpreg_i  1, fr1
        assert_fpreg_i  1, fr1
 
 
        # 2.0 * 1.0 = 2.0.
        # 2.0 * 1.0 = 2.0.
        init
        init
        fmul    fr2, fr1
        fmul    fr2, fr1
        assert_fpreg_i  2, fr1
        assert_fpreg_i  2, fr1
 
 
        test_grs_a5a5
        test_grs_a5a5
        assert_fpreg_i  0, fr0
        assert_fpreg_i  0, fr0
        assert_fpreg_i  2, fr1
        assert_fpreg_i  2, fr1
        assert_fpreg_i  2, fr2
        assert_fpreg_i  2, 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
 
 
        .macro dinit
        .macro dinit
        fldi0 fr0
        fldi0 fr0
        fldi1 fr2
        fldi1 fr2
        fldi1 fr4
        fldi1 fr4
        single_prec
        single_prec
        fadd fr4, fr4
        fadd fr4, fr4
        double_prec
        double_prec
        _s2d fr0, dr0
        _s2d fr0, dr0
        _s2d fr2, dr2
        _s2d fr2, dr2
        _s2d fr4, dr4
        _s2d fr4, dr4
        .endm
        .endm
 
 
fmul_double:
fmul_double:
        double_prec
        double_prec
        # 0.0 * 0.0 = 0.0.
        # 0.0 * 0.0 = 0.0.
        dinit
        dinit
        fmul    dr0, dr0
        fmul    dr0, dr0
        assert_dpreg_i  0, dr0
        assert_dpreg_i  0, dr0
 
 
        # 0.0 * 1.0 = 0.0.
        # 0.0 * 1.0 = 0.0.
        dinit
        dinit
        fmul    dr2, dr0
        fmul    dr2, dr0
        assert_dpreg_i  0, dr0
        assert_dpreg_i  0, dr0
 
 
        # 1.0 * 0.0 = 0.0.
        # 1.0 * 0.0 = 0.0.
        dinit
        dinit
        fmul    dr0, dr2
        fmul    dr0, dr2
        assert_dpreg_i  0, dr2
        assert_dpreg_i  0, dr2
 
 
        # 1.0 * 1.0 = 1.0.
        # 1.0 * 1.0 = 1.0.
        dinit
        dinit
        fmul    dr2, dr2
        fmul    dr2, dr2
        assert_dpreg_i  1, dr2
        assert_dpreg_i  1, dr2
 
 
        # 2.0 * 1.0 = 2.0.
        # 2.0 * 1.0 = 2.0.
        dinit
        dinit
        fmul    dr4, dr2
        fmul    dr4, dr2
        assert_dpreg_i  2, dr2
        assert_dpreg_i  2, dr2
 
 
        test_grs_a5a5
        test_grs_a5a5
        assert_dpreg_i  0, dr0
        assert_dpreg_i  0, dr0
        assert_dpreg_i  2, dr2
        assert_dpreg_i  2, dr2
        assert_dpreg_i  2, dr4
        assert_dpreg_i  2, dr4
        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.