head     1.1;
branch   1.1.1;
access   ;
symbols  start:1.1.1.1 thorn_aitch:1.1.1;
locks    ; strict;
comment  @# @;


1.1
date     2003.07.12.13.23.11;  author thorn_aitch;  state Exp;
branches 1.1.1.1;
next     ;

1.1.1.1
date     2003.07.12.13.23.11;  author thorn_aitch;  state Exp;
branches ;
next     ;


desc
@@



1.1
log
@Initial revision
@
text
@/*
===================
test source program
testshift.src

Jan.26 2003
===================

address           size wait width device
00000000-00001FFF  8K  0    32    ROM
00010000-00011FFF  8K  3    32    ROM
00020000-00021FFF  8K  0    16    ROM
00030000-00031FFF  8K  3    16    ROM
ABCD0000-ABCD0003   4  3    32    PIO
ABCD0100-ABCD0103   4  3    32    UART
ABCD0200-ABCD0207   8  3    32    SYS
FFFCE000-FFFCFFFF  8K  0    32    RAM
FFFDE000-FFFDFFFF  8K  3    32    RAM
FFFEE000-FFFEFFFF  8K  0    16    RAM
FFFFE000-FFFFFFFF  8K  3    16    RAM
*/

.equ _rom0, 0x00000000
.equ _rom1, 0x00010000
.equ _rom2, 0x00020000
.equ _rom3, 0x00030000
.equ _pio,  0xabcd0000
.equ _uart, 0xabcd0100
.equ _sys,  0xabcd0200
.equ _ram0, 0xfffce000
.equ _ram1, 0xfffde000
.equ _ram2, 0xfffee000
.equ _ram3, 0xffffe000

.org _rom0
.long _rom0 + _init - _rom0
.long _ram0 + 0x02000

.org 0x0400
 
/**************
 Initialization
 **************/
_init:
_start:
 mov    #0, r14
_test:
 mov.l  _pfail, r13 !fail address
 bra    _testgo
 nop
_pfail: .long _fail
_testgo:

/************************
 SHLL Rn
 ************************/
 mov.l  _ptestvalue, r1
!----
 mov.l  @@r1+, r2 ! initial SR
 ldc    r2, sr
 mov.l  @@r1+, r3 ! initial value
 shll   r3
 mov.l  @@r1+, r4 ! result SR
 mov.l  @@r1+, r5 ! result value
 stc    sr, r6
 cmp/eq r3, r5
 bt     .+6
 jmp    @@r13
 nop
 cmp/eq r4, r6
 bt     .+6
 jmp    @@r13
 nop
!----
 mov.l  @@r1+, r2 ! initial SR
 ldc    r2, sr
 mov.l  @@r1+, r3 ! initial value
 shal   r3
 mov.l  @@r1+, r4 ! result SR
 mov.l  @@r1+, r5 ! result value
 stc    sr, r6
 cmp/eq r3, r5
 bt     .+6
 jmp    @@r13
 nop
 cmp/eq r4, r6
 bt     .+6
 jmp    @@r13
 nop
!----
 mov.l  @@r1+, r2 ! initial SR
 ldc    r2, sr
 mov.l  @@r1+, r3 ! initial value
 shlr   r3
 mov.l  @@r1+, r4 ! result SR
 mov.l  @@r1+, r5 ! result value
 stc    sr, r6
 cmp/eq r3, r5
 bt     .+6
 jmp    @@r13
 nop
 cmp/eq r4, r6
 bt     .+6
 jmp    @@r13
 nop
!----
 mov.l  @@r1+, r2 ! initial SR
 ldc    r2, sr
 mov.l  @@r1+, r3 ! initial value
 shar   r3
 mov.l  @@r1+, r4 ! result SR
 mov.l  @@r1+, r5 ! result value
 stc    sr, r6
 cmp/eq r3, r5
 bt     .+6
 jmp    @@r13
 nop
 cmp/eq r4, r6
 bt     .+6
 jmp    @@r13
 nop
!----
 mov.l  @@r1+, r2 ! initial SR
 ldc    r2, sr
 mov.l  @@r1+, r3 ! initial value
 rotl   r3
 mov.l  @@r1+, r4 ! result SR
 mov.l  @@r1+, r5 ! result value
 stc    sr, r6
 cmp/eq r3, r5
 bt     .+6
 jmp    @@r13
 nop
 cmp/eq r4, r6
 bt     .+6
 jmp    @@r13
 nop
!----
 mov.l  @@r1+, r2 ! initial SR
 ldc    r2, sr
 mov.l  @@r1+, r3 ! initial value
 rotcl  r3
 mov.l  @@r1+, r4 ! result SR
 mov.l  @@r1+, r5 ! result value
 stc    sr, r6
 cmp/eq r3, r5
 bt     .+6
 jmp    @@r13
 nop
 cmp/eq r4, r6
 bt     .+6
 jmp    @@r13
 nop
!----
 mov.l  @@r1+, r2 ! initial SR
 ldc    r2, sr
 mov.l  @@r1+, r3 ! initial value
 rotr   r3
 mov.l  @@r1+, r4 ! result SR
 mov.l  @@r1+, r5 ! result value
 stc    sr, r6
 cmp/eq r3, r5
 bt     .+6
 jmp    @@r13
 nop
 cmp/eq r4, r6
 bt     .+6
 jmp    @@r13
 nop
!----
 mov.l  @@r1+, r2 ! initial SR
 ldc    r2, sr
 mov.l  @@r1+, r3 ! initial value
 rotcr  r3
 mov.l  @@r1+, r4 ! result SR
 mov.l  @@r1+, r5 ! result value
 stc    sr, r6
 cmp/eq r3, r5
 bt     .+6
 jmp    @@r13
 nop
 cmp/eq r4, r6
 bt     .+6
 jmp    @@r13
 nop
!----
 mov.l  @@r1+, r2 ! initial SR
 ldc    r2, sr
 mov.l  @@r1+, r3 ! initial value
 shll2  r3
 mov.l  @@r1+, r4 ! result SR
 mov.l  @@r1+, r5 ! result value
 stc    sr, r6
 cmp/eq r3, r5
 bt     .+6
 jmp    @@r13
 nop
 cmp/eq r4, r6
 bt     .+6
 jmp    @@r13
 nop
!----
 mov.l  @@r1+, r2 ! initial SR
 ldc    r2, sr
 mov.l  @@r1+, r3 ! initial value
 shll8  r3
 mov.l  @@r1+, r4 ! result SR
 mov.l  @@r1+, r5 ! result value
 stc    sr, r6
 cmp/eq r3, r5
 bt     .+6
 jmp    @@r13
 nop
 cmp/eq r4, r6
 bt     .+6
 jmp    @@r13
 nop
!----
 mov.l  @@r1+, r2 ! initial SR
 ldc    r2, sr
 mov.l  @@r1+, r3 ! initial value
 shll16 r3
 mov.l  @@r1+, r4 ! result SR
 mov.l  @@r1+, r5 ! result value
 stc    sr, r6
 cmp/eq r3, r5
 bt     .+6
 jmp    @@r13
 nop
 cmp/eq r4, r6
 bt     .+6
 jmp    @@r13
 nop
!----
 mov.l  @@r1+, r2 ! initial SR
 ldc    r2, sr
 mov.l  @@r1+, r3 ! initial value
 shlr2  r3
 mov.l  @@r1+, r4 ! result SR
 mov.l  @@r1+, r5 ! result value
 stc    sr, r6
 cmp/eq r3, r5
 bt     .+6
 jmp    @@r13
 nop
 cmp/eq r4, r6
 bt     .+6
 jmp    @@r13
 nop
!----
 mov.l  @@r1+, r2 ! initial SR
 ldc    r2, sr
 mov.l  @@r1+, r3 ! initial value
 shlr8  r3
 mov.l  @@r1+, r4 ! result SR
 mov.l  @@r1+, r5 ! result value
 stc    sr, r6
 cmp/eq r3, r5
 bt     .+6
 jmp    @@r13
 nop
 cmp/eq r4, r6
 bt     .+6
 jmp    @@r13
 nop
!----
 mov.l  @@r1+, r2 ! initial SR
 ldc    r2, sr
 mov.l  @@r1+, r3 ! initial value
 shlr16 r3
 mov.l  @@r1+, r4 ! result SR
 mov.l  @@r1+, r5 ! result value
 stc    sr, r6
 cmp/eq r3, r5
 bt     .+6
 jmp    @@r13
 nop
 cmp/eq r4, r6
 bt     .+6
 jmp    @@r13
 nop
!----
 bra    _testfinish
 nop
!----
 .align 4
_ptestvalue: .long _testvalue
_testvalue :
!----SHLL
 .long 0x00000000
 .long 0xaaaaaaab ! 1010....1011
 .long 0x00000001
 .long 0x55555556 ! 0101....0110
!----SHAL
 .long 0x00000001
 .long 0x55555557 ! 0101....0111
 .long 0x00000000
 .long 0xaaaaaaae ! 1010....1110
!----SHLR
 .long 0x00000001
 .long 0xeaaaaaaa ! 1110....1010
 .long 0x00000000
 .long 0x75555555 ! 0111....0101
!----SHAR
 .long 0x00000001
 .long 0xaaaaaaaa ! 1010....1010
 .long 0x00000000
 .long 0xd5555555 ! 1101....0101
!----ROTL
 .long 0x00000000
 .long 0xaaaaaaab ! 1010....1011
 .long 0x00000001
 .long 0x55555557 ! 0101....0111
!----ROTCL
 .long 0x00000000
 .long 0xaaaaaaab ! 1010....1011
 .long 0x00000001
 .long 0x55555556 ! 0101....0110
!----ROTR
 .long 0x00000000
 .long 0xd5555555 ! 1101....0101
 .long 0x00000001
 .long 0xeaaaaaaa ! 1110....1010
!----ROTCR
 .long 0x00000000
 .long 0xd5555555 ! 1101....0101
 .long 0x00000001
 .long 0x6aaaaaaa ! 0110....1010
!----SHLL2
 .long 0x00000001
 .long 0x12345678
 .long 0x00000001
 .long 0x48d159e0
!----SHLL8
 .long 0x00000001
 .long 0x12345678
 .long 0x00000001
 .long 0x34567800
!----SHLL16
 .long 0x00000001
 .long 0x12345678
 .long 0x00000001
 .long 0x56780000
!----SHLR2
 .long 0x00000000
 .long 0x12345678
 .long 0x00000000
 .long 0x048d159e
!----SHLR8
 .long 0x00000000
 .long 0x12345678
 .long 0x00000000
 .long 0x00123456
!----SHLR16
 .long 0x00000000
 .long 0x12345678
 .long 0x00000000
 .long 0x00001234

_testfinish:
/*********************************************************
 Move to another Next ROM area to check hardware operation
 *********************************************************/
 mov.l _pbranch_table, r13
 add r14, r13
 mov.l @@r13, r12
 jmp @@r12
 add #4, r14
.align 4
_pbranch_table: .long _branch_table
_branch_table:
 .long _rom1+_test
 .long _rom2+_test
 .long _rom3+_test
 .long _rom0+_pass

/**************
 Congraturation
 **************/
_pass:
 mov.l _ppass_value, r0
 mov.l _ppass_value, r1
 mov.l r0, @@r1
 bra   _pass
 nop
.align 4
_ppass_value: .long 0x12345678

/**********
 You Failed
 **********/
_fail:
 mov.l _pfail_value, r0
 mov.l _pfail_value, r1
 bra   _fail
 nop
.align 4
_pfail_value: .long 0x88888888

.end
@


1.1.1.1
log
@First Release
@
text
@@
