OpenCores
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/] [mulsw.cgs] - Rev 238

Go to most recent revision | Compare with Previous | Blame | View Log

# sh testcase for muls.w $rm, $rn -*- Asm -*-
# mach: all
# as: -isa=shcompact
# ld: -m shelf32

        .include "compact/testutils.inc"

        start

        sts mach, r7
        
        .global mulsw
zero:
        mov #0, r0
        mov #1, r1
        muls.w r0, r1

        # Check the result.
        sts macl, r3
        mov #0, r4
        cmp/eq r3, r4
        bf wrong

sxs:
        # Small * small.
        mov #1, r0
        mov #2, r1
        muls.w r0, r1

        # Check the result.
        sts macl, r3
        mov #2, r4
        cmp/eq r3, r4
        bf wrong

sxl:
        # Small * large.
        mov #1, r0
        mov #255, r1
        shll8 r1
        muls.w r0, r1

        # Check the result.
        sts macl, r3
        mov #0, r4
        not r4, r4
        shll8 r4
        cmp/eq r3, r4
        bf wrong

lxs:
        # Large * small.
        mov #255, r0
        shll8 r0
        mov #1, r1
        muls.w r0, r1

        # Check the result.
        sts macl, r3
        mov #0, r4
        not r4, r4
        shll8 r4
        cmp/eq r3, r4
        bf wrong
        
lxl:
        # Large * large.
        mov #255, r0
        shll8 r0
        mov #255, r1
        shll8 r1
        muls.w r0, r1

        # Check the result.
        sts macl, r3
        mov #1, r4
        shll16 r4
        cmp/eq r3, r4
        bf wrong
        
invariant:      
        # Ensure MACH is invariant.
        sts mach, r8
        cmp/eq r7, r8
        bf wrong
         
okay:
        pass

wrong:
        fail

Go to most recent revision | Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

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