irq1.ms revision 1.1 1 #progos: nowhere:disabled-due-to-randomness
2 #mach: crisv10 crisv32
3 #sim(crisv10): --hw-device "/rv/trace? true"
4 #sim(crisv32): --hw-device "/rv/trace? true"
5 #output: /rv: WD\n
6 #output: /rv: REG R 0xd0000032\n
7 #output: /rv: := 0xabcdef01\n
8 #output: /rv: IRQ 0x4\n
9 #output: /rv: REG R 0xd0000036\n
10 #output: /rv: := 0x76543210\n
11 #output: /rv: REG R 0xd0000036\n
12 #output: /rv: := 0x76543211\n
13 #output: /rv: REG R 0xd0000030\n
14 #output: /rv: IRQ 0x0\n
15 #output: /rv: := 0xeeff4455\n
16 #output: pass\n
17
18 # Trivial test of interrupts.
19 # Locations of IRQ notifiers above depend on when the simulator is
20 # polled; adjustments may be needed (after checking that no poll is
21 # gone due to a bug!)
22
23 #r W,
24 #r r,a8832,abcdef01
25 #r I,4
26 #r r,a8836,76543210
27 #r r,a8836,76543211
28 #r I,0
29 #r r,a8830,eeff4455
30
31 .lcomm dummy,4
32
33 .include "testutils.inc"
34 start
35 .if ..asm.arch.cris.v32
36 move irqvec1,$ebp
37 .else
38 move irqvec1,$ibr
39 .endif
40 test_h_mem 0xabcdef01 0xd0000032
41 nop
42 nop
43 test_h_mem 0x76543210 0xd0000036
44 ei
45 test_h_mem 0,dummy
46 wouldreturnhere:
47 nop
48 killme:
49 fail
50
51 returnhere:
52 test_h_mem 0x76543211 0xd0000036
53 test_h_mem 0xeeff4455 0xd0000030
54 pass
55
56 irq0x33:
57 .if ..asm.arch.cris.v32
58 test_h_dr wouldreturnhere,$erp
59 move returnhere,$erp
60 rete
61 rfe
62 .else
63 move $dccr,$r0
64 test_h_dr wouldreturnhere,$irp
65 move returnhere,$irp
66 reti
67 move $r0,$dccr
68 .endif
69
70 singlevec irqvec1,0x33,irq0x33
71