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

Subversion Repositories openrisc_me

[/] [openrisc/] [trunk/] [gnu-src/] [gdb-6.8/] [sim/] [testsuite/] [sim/] [sh/] [prnd.s] - Diff between revs 24 and 157

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

Rev 24 Rev 157
# sh testcase for prnd
# sh testcase for prnd
# mach:  shdsp
# mach:  shdsp
# as(shdsp):    -defsym sim_cpu=1 -dsp
# as(shdsp):    -defsym sim_cpu=1 -dsp
 
 
        # FIXME: opcode table ambiguity in ignored bits 4-7.
        # FIXME: opcode table ambiguity in ignored bits 4-7.
 
 
        .include "testutils.inc"
        .include "testutils.inc"
 
 
        start
        start
        set_grs_a5a5
        set_grs_a5a5
        lds     r0, a0
        lds     r0, a0
        pcopy   a0, a1
        pcopy   a0, a1
        lds     r0, x0
        lds     r0, x0
        lds     r0, x1
        lds     r0, x1
        lds     r0, y0
        lds     r0, y0
        lds     r0, y1
        lds     r0, y1
        pcopy   x0, m0
        pcopy   x0, m0
        pcopy   y1, m1
        pcopy   y1, m1
 
 
        # prnd(0xa5a5a5a5) = 0xa5a60000
        # prnd(0xa5a5a5a5) = 0xa5a60000
        prnd    x0, x0
        prnd    x0, x0
        prnd    y0, y0
        prnd    y0, y0
        assert_sreg     0xa5a60000, x0
        assert_sreg     0xa5a60000, x0
        assert_sreg     0xa5a60000, y0
        assert_sreg     0xa5a60000, y0
 
 
        # prnd(1) = 1
        # prnd(1) = 1
        mov     #1, r0
        mov     #1, r0
        shll16  r0
        shll16  r0
        lds     r0, x0
        lds     r0, x0
        pcopy   x0, y0
        pcopy   x0, y0
        prnd    x0, x0
        prnd    x0, x0
        prnd    y0, y0
        prnd    y0, y0
        assert_sreg     0x10000, x0
        assert_sreg     0x10000, x0
        assert_sreg     0x10000, y0
        assert_sreg     0x10000, y0
 
 
        # prnd(1.4999999) = 1
        # prnd(1.4999999) = 1
        mov     #1, r0
        mov     #1, r0
        shll8   r0
        shll8   r0
        or      #0x7f, r0
        or      #0x7f, r0
        shll8   r0
        shll8   r0
        or      #0xff, r0
        or      #0xff, r0
        lds     r0, x0
        lds     r0, x0
        pcopy   x0, y0
        pcopy   x0, y0
        prnd    x0, x0
        prnd    x0, x0
        prnd    y0, y0
        prnd    y0, y0
        assert_sreg     0x10000, x0
        assert_sreg     0x10000, x0
        assert_sreg     0x10000, y0
        assert_sreg     0x10000, y0
 
 
        # prnd(1.5) = 2
        # prnd(1.5) = 2
        mov     #1, r0
        mov     #1, r0
        shll8   r0
        shll8   r0
        or      #0x80, r0
        or      #0x80, r0
        shll8   r0
        shll8   r0
        lds     r0, x0
        lds     r0, x0
        pcopy   x0, y0
        pcopy   x0, y0
        prnd    x0, x0
        prnd    x0, x0
        prnd    y0, y0
        prnd    y0, y0
        assert_sreg     0x20000, x0
        assert_sreg     0x20000, x0
        assert_sreg     0x20000, y0
        assert_sreg     0x20000, y0
 
 
        # dct prnd
        # dct prnd
        set_dcfalse
        set_dcfalse
        dct     prnd    x0, x1
        dct     prnd    x0, x1
        dct     prnd    y0, y1
        dct     prnd    y0, y1
        assert_sreg2    0xa5a5a5a5, x1
        assert_sreg2    0xa5a5a5a5, x1
        assert_sreg2    0xa5a5a5a5, y1
        assert_sreg2    0xa5a5a5a5, y1
        set_dctrue
        set_dctrue
        dct     prnd    x0, x1
        dct     prnd    x0, x1
        dct     prnd    y0, y1
        dct     prnd    y0, y1
        assert_sreg2    0x20000, x1
        assert_sreg2    0x20000, x1
        assert_sreg2    0x20000, y1
        assert_sreg2    0x20000, y1
 
 
        # dcf prnd
        # dcf prnd
        set_dctrue
        set_dctrue
        dcf     prnd    x0, m0
        dcf     prnd    x0, m0
        dcf     prnd    y0, m1
        dcf     prnd    y0, m1
        assert_sreg2    0xa5a5a5a5, m0
        assert_sreg2    0xa5a5a5a5, m0
        assert_sreg2    0xa5a5a5a5, m1
        assert_sreg2    0xa5a5a5a5, m1
        set_dcfalse
        set_dcfalse
        dcf     prnd    x0, m0
        dcf     prnd    x0, m0
        dcf     prnd    y0, m1
        dcf     prnd    y0, m1
        assert_sreg2    0x20000, m0
        assert_sreg2    0x20000, m0
        assert_sreg2    0x20000, m1
        assert_sreg2    0x20000, m1
 
 
        set_greg        0xa5a5a5a5, r0
        set_greg        0xa5a5a5a5, r0
        test_grs_a5a5
        test_grs_a5a5
        assert_sreg     0xa5a5a5a5, a0
        assert_sreg     0xa5a5a5a5, a0
        assert_sreg2    0xa5a5a5a5, a1
        assert_sreg2    0xa5a5a5a5, a1
        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.