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

Subversion Repositories w11

[/] [w11/] [tags/] [w11a_V0.61/] [tools/] [tbench/] [test_w11a_inst_traps.tcl] - Blame information for rev 40

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

Line No. Rev Author Line
1 25 wfjm
# $Id: test_w11a_inst_traps.tcl 575 2014-07-27 20:55:41Z mueller $
2 19 wfjm
#
3 22 wfjm
# Copyright 2013-2014 by Walter F.J. Mueller <W.F.J.Mueller@gsi.de>
4 19 wfjm
# License disclaimer see LICENSE_gpl_v2.txt in $RETROBASE directory
5
#
6
# Revision History:
7
# Date         Rev Version  Comment
8 25 wfjm
# 2014-07-27   575   1.0.2  drop tout value from asmwait, reply on asmwait_tout
9 22 wfjm
# 2014-03-01   552   1.0.1  check that unused regs stay 0; use stack:; check sp;
10 19 wfjm
# 2013-04-01   502   1.0    Initial version
11
#
12
# Test trap type instructions: bpt,iot, emt nn, trap nn
13
#
14
 
15 22 wfjm
# ----------------------------------------------------------------------------
16 19 wfjm
rlc log "test_w11a_inst_traps: test trap type instructions"
17 22 wfjm
 
18
# code register pre/post conditions beyond defaults
19
#   r5   #data   -> #data+6*5*2
20 19 wfjm
$cpu ldasm -lst lst -sym sym {
21
        . = 14
22
        .word   h.bpt           ; vec 14: bpt
23
        .word   340
24
        .word   h.iot           ; vec 20: iot
25
        .word   341
26
        . = 30
27
        .word   h.emt           ; vec 30: emt
28
        .word   342
29
        .word   h.trp           ; vec 34: trap
30
        .word   343
31
;
32
        psw = 177776
33
;
34
        . = 1000
35 22 wfjm
stack:
36 19 wfjm
start:  mov     #350,@#psw
37
        bpt
38
350$:   mov     #351,@#psw
39
        iot
40
351$:   mov     #352,@#psw
41
        emt     100
42
352$:   mov     #353,@#psw
43
        emt     200
44
353$:   mov     #354,@#psw
45
        trap    10
46
354$:   mov     #355,@#psw
47
        trap    20
48
355$:   halt
49
stop:
50
;
51 22 wfjm
h.bpt:  mov     @#psw,(r5)+             ; record psw
52
        mov     #1014,(r5)+             ; record trap id
53 19 wfjm
        br      iexit
54
h.iot:  mov     @#psw,(r5)+
55
        mov     #1020,(r5)+
56
        br      iexit
57
h.emt:  mov     @#psw,(r5)+
58
        mov     #1030,(r5)+
59
        br      iexit
60
h.trp:  mov     @#psw,(r5)+
61
        mov     #1034,(r5)+
62
;
63 22 wfjm
iexit:  mov     (sp),r4                 ; get stack PC
64
        mov     r4,(r5)+                ; record PC
65
        mov     2(sp),(r5)+             ; record stack PS
66
        mov     -2(r4),(r5)+            ; record opcode of trap
67 19 wfjm
        rti
68 22 wfjm
;
69 19 wfjm
data:   .blkw   6.*5.
70
        .word   177777
71
}
72
 
73 20 wfjm
rw11::asmrun  $cpu sym [list r5 $sym(data) ]
74 25 wfjm
rw11::asmwait $cpu sym
75 22 wfjm
rw11::asmtreg $cpu [list r0 0 \
76
                         r1 0 \
77
                         r2 0 \
78
                         r3 0 \
79
                         r5 [expr {$sym(data) + 6*5*2}] \
80
                         sp $sym(stack) ]
81
 
82 19 wfjm
# data: trap ps; trap id; stack-pc;    stack-ps   opcode
83 20 wfjm
rw11::asmtmem $cpu $sym(data) \
84 19 wfjm
  [list 000340   001014 $sym(start:350$) 000350   0000003 \
85
        000341   001020 $sym(start:351$) 000351   0000004 \
86
        000342   001030 $sym(start:352$) 000352   0104100 \
87
        000342   001030 $sym(start:353$) 000353   0104200 \
88
        000343   001034 $sym(start:354$) 000354   0104410 \
89
        000343   001034 $sym(start:355$) 000355   0104420 \
90
        0177777 ]

powered by: WebSVN 2.1.0

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