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

Subversion Repositories w11

[/] [w11/] [tags/] [w11a_V0.6/] [tools/] [tbench/] [test_w11a_srcr_word_flow.tcl] - Blame information for rev 24

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 22 wfjm
# $Id: test_w11a_srcr_word_flow.tcl 552 2014-03-02 23:02:00Z mueller $
2 19 wfjm
#
3
# Copyright 2013- by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
4
# License disclaimer see LICENSE_gpl_v2.txt in $RETROBASE directory
5
#
6
# Revision History:
7
# Date         Rev Version  Comment
8 22 wfjm
# 2014-03-01   552   1.0.1  check sp
9 19 wfjm
# 2013-03-31   502   1.0    Initial version
10
#
11
# Test srcr flow with mov ...,rx instructions for word access
12
#
13
 
14 22 wfjm
# ----------------------------------------------------------------------------
15 19 wfjm
rlc log "test_w11a_srcr_word_flow: test srcr flow for word with mov ...,rx"
16
rlc log "  r0 (mode=0)"
17 22 wfjm
 
18
# code register pre/post conditions beyond defaults
19
#   r0   01234   -> ..same
20
#   r1           -> 01234
21
#   r2           -> #stack
22
#   r3           -> #start
23 19 wfjm
$cpu ldasm -lst lst -sym sym {
24
        . = 1000
25
stack:
26
start:  mov     r0,r1
27
        mov     sp,r2
28
        mov     pc,r3
29
lpc:    halt
30
stop:
31
}
32
 
33 20 wfjm
rw11::asmrun  $cpu sym [list r0 01234]
34
rw11::asmwait $cpu sym 1.0
35
rw11::asmtreg $cpu [list r0 01234 \
36 19 wfjm
                          r1 01234 \
37
                          r2 $sym(stack) \
38
                          r3 $sym(lpc) \
39
                          r4 0 \
40 22 wfjm
                          r5 0 \
41
                          sp $sym(stack) ]
42 19 wfjm
 
43 22 wfjm
# ----------------------------------------------------------------------------
44 19 wfjm
rlc log "  (r0),(r0)+,-(r0) (mode=1,2,4)"
45 22 wfjm
 
46
# code register pre/post conditions beyond defaults
47
#   r0   #data   -> ..same
48
#   r1           -> 01001
49
#   r2           -> 01001
50
#   r3           -> 01002
51
#   r4           -> 01002
52
#   r5           -> 01001
53 19 wfjm
$cpu ldasm -lst lst -sym sym {
54
        . = 1000
55
start:  mov     (r0),r1
56
        mov     (r0)+,r2
57
        mov     (r0)+,r3
58
        mov     -(r0),r4
59
        mov     -(r0),r5
60
        halt
61
stop:
62 22 wfjm
;
63 19 wfjm
data:   .word   1001
64
        .word   1002
65
}
66
 
67 20 wfjm
rw11::asmrun  $cpu sym [list r0 $sym(data)]
68
rw11::asmwait $cpu sym 1.0
69
rw11::asmtreg $cpu [list r0 $sym(data) \
70
                         r1 001001 \
71
                         r2 001001 \
72
                         r3 001002 \
73
                         r4 001002 \
74 22 wfjm
                         r5 001001 ]
75 19 wfjm
 
76 22 wfjm
# ----------------------------------------------------------------------------
77 19 wfjm
rlc log "  @(r0)+,@-(r0)  (mode=3,5)"
78 22 wfjm
 
79
# code register pre/post conditions beyond defaults
80
#   r0   #pdata  -> ..same
81
#   r1           -> 02001
82
#   r2           -> 02002
83
#   r3           -> #pdata+4
84
#   r4           -> 02002
85
#   r5           -> 02001
86 19 wfjm
$cpu ldasm -lst lst -sym sym {
87
        . = 1000
88
start:  mov     @(r0)+,r1
89
        mov     @(r0)+,r2
90
        mov     r0,r3
91
        mov     @-(r0),r4
92
        mov     @-(r0),r5
93
        halt
94
stop:
95 22 wfjm
;
96 19 wfjm
pdata:  .word   data0
97
        .word   data1
98
data0:  .word   2001
99
        .word   0
100
data1:  .word   2002
101
}
102
 
103 20 wfjm
rw11::asmrun  $cpu sym [list r0 $sym(pdata)]
104
rw11::asmwait $cpu sym 1.0
105
rw11::asmtreg $cpu [list r0 $sym(pdata) \
106
                         r1 002001 \
107
                         r2 002002 \
108
                         r3 [expr {$sym(pdata)+4}] \
109
                         r4 002002 \
110 22 wfjm
                         r5 002001 ]
111 19 wfjm
 
112 22 wfjm
# ----------------------------------------------------------------------------
113 19 wfjm
rlc log "  nn(r0),@nn(r0)  (mode=6,7)"
114 22 wfjm
 
115
# code register pre/post conditions beyond defaults
116
#   r0   #data   -> ..same
117
#   r1           -> 03001
118
#   r2           -> 03002
119
#   r3           -> 03003
120
#   r4           -> 03004
121 19 wfjm
$cpu ldasm -lst lst -sym sym {
122
        . = 1000
123
start:  mov     2(r0),r1
124
        mov     @4(r0),r2
125
        mov     6(r0),r3
126
        mov     @10(r0),r4
127
        halt
128
stop:
129 22 wfjm
;
130 19 wfjm
data:   .word   177777
131
        .word   003001
132
        .word   data0
133
        .word   003003
134
        .word   data1
135
 
136
data0:  .word   003002
137
data1:  .word   003004
138
}
139
 
140 20 wfjm
rw11::asmrun  $cpu sym [list r0 $sym(data)]
141
rw11::asmwait $cpu sym 1.0
142
rw11::asmtreg $cpu [list r0 $sym(data) \
143
                         r1 003001 \
144
                         r2 003002 \
145
                         r3 003003 \
146
                         r4 003004 \
147 22 wfjm
                         r5 0 ]
148 19 wfjm
 
149 22 wfjm
# ----------------------------------------------------------------------------
150 19 wfjm
rlc log "  #nn,@#nn,var,@var  (mode=27,37,67,77)"
151 22 wfjm
 
152
# code register pre/post conditions beyond defaults
153
#   r1           -> 04001
154
#   r2           -> 04002
155
#   r3           -> 04003
156
#   r4           -> 04004
157 19 wfjm
$cpu ldasm -lst lst -sym sym {
158
        . = 1000
159
start:  mov     #004001,r1
160
        mov     @#data2,r2
161
        mov     data3,r3
162
        mov     @pdata4,r4
163
        halt
164
stop:
165 22 wfjm
;
166 19 wfjm
pdata4: .word   data4
167
 
168
data2:  .word   004002
169
data3:  .word   004003
170
data4:  .word   004004
171
}
172
 
173 20 wfjm
rw11::asmrun  $cpu sym {}
174
rw11::asmwait $cpu sym 1.0
175
rw11::asmtreg $cpu [list r0 0 \
176
                         r1 004001 \
177
                         r2 004002 \
178
                         r3 004003 \
179
                         r4 004004 \
180 22 wfjm
                         r5 0 ]

powered by: WebSVN 2.1.0

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