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

Subversion Repositories w11

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

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

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

powered by: WebSVN 2.1.0

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