Update thread_control_state::trap_expected comments
[deliverable/binutils-gdb.git] / sim / testsuite / frv-elf / cache.s
1 # run with --memory-region 0xff000000,4 --memory-region 0xfe000000,00404000
2 ; Exit with return code
3 .macro exit rc
4 setlos.p #1,gr7
5 setlos \rc,gr8
6 tira gr0,#0
7 .endm
8
9 ; Pass the test case
10 .macro pass
11 pass:
12 setlos.p #5,gr10
13 setlos #1,gr8
14 setlos #5,gr7
15 sethi.p %hi(passmsg),gr9
16 setlo %lo(passmsg),gr9
17 tira gr0,#0
18 exit #0
19 .endm
20
21 ; Fail the testcase
22 .macro fail
23 fail\@:
24 setlos.p #5,gr10
25 setlos #1,gr8
26 setlos #5,gr7
27 sethi.p %hi(failmsg),gr9
28 setlo %lo(failmsg),gr9
29 tira gr0,#0
30 exit #1
31 .endm
32
33 .data
34 failmsg:
35 .ascii "fail\n"
36 passmsg:
37 .ascii "pass\n"
38
39 .text
40 .global _start
41 _start:
42 movsg hsr0,gr10 ; enable insn and data caches
43 sethi.p 0xc800,gr11 ; in copy-back mode
44 setlo 0x0000,gr11
45 or gr10,gr11,gr10
46 movgs gr10,hsr0
47
48 sethi.p 0x7,sp
49 setlo 0x0000,sp
50
51 ; fill the cache
52 sethi.p %hi(done1),gr10
53 setlo %lo(done1),gr10
54 movgs gr10,lr
55 setlos.p 0x1000,gr10
56 setlos 0x0,gr11
57 movgs gr10,lcr
58 write1: st.p gr11,@(sp,gr11)
59 addi.p gr11,4,gr11
60 bctrlr.p 1,0
61 bra write1
62 done1:
63 ; read it back
64 sethi.p %hi(done2),gr10
65 setlo %lo(done2),gr10
66 movgs gr10,lr
67 setlos.p 0x1000,gr10
68 setlos 0x0,gr11
69 movgs gr10,lcr
70 read1: ld @(sp,gr11),gr12
71 cmp gr11,gr12,icc0
72 bne icc0,1,fail
73 addi.p gr11,4,gr11
74 bctrlr.p 1,0
75 bra read1
76 done2:
77
78 ; fill the cache twice
79 sethi.p %hi(done3),gr10
80 setlo %lo(done3),gr10
81 movgs gr10,lr
82 setlos.p 0x2000,gr10
83 setlos 0x0,gr11
84 movgs gr10,lcr
85 write3: st.p gr11,@(sp,gr11)
86 addi.p gr11,4,gr11
87 bctrlr.p 1,0
88 bra write3
89 done3:
90 ; read it back
91 sethi.p %hi(done4),gr10
92 setlo %lo(done4),gr10
93 movgs gr10,lr
94 setlos.p 0x2000,gr10
95 setlos 0x0,gr11
96 movgs gr10,lcr
97 read4: ld @(sp,gr11),gr12
98 cmp gr11,gr12,icc0
99 bne icc0,1,fail
100 addi.p gr11,4,gr11
101 bctrlr.p 1,0
102 bra read4
103 done4:
104 ; read it back in reverse
105 sethi.p %hi(done5),gr10
106 setlo %lo(done5),gr10
107 movgs gr10,lr
108 setlos.p 0x2000,gr10
109 setlos 0x7ffc,gr11
110 movgs gr10,lcr
111 read5: ld @(sp,gr11),gr12
112 cmp gr11,gr12,icc0
113 bne icc0,1,fail
114 subi.p gr11,4,gr11
115 bctrlr.p 1,0
116 bra read5
117 done5:
118
119 ; access data and insns in non-cache areas
120 sethi.p 0x8038,gr11 ; bctrlr 0,0
121 setlo 0x2000,gr11
122
123 sethi.p 0xff00,gr10 ; documented area
124 setlo 0x0000,gr10
125 sti gr11,@(gr10,0)
126 jmpl @(gr10,gr0)
127
128 ; enable RAM mode
129 movsg hsr0,gr10
130 sethi.p 0x0040,gr12
131 setlo 0x0000,gr12
132 or gr10,gr12,gr10
133 movgs gr10,hsr0
134
135 sethi.p 0xfe00,gr10 ; documented area
136 setlo 0x0400,gr10
137 sti gr11,@(gr10,0)
138 jmpl @(gr10,gr0)
139
140 sethi.p 0xfe40,gr10 ; documented area
141 setlo 0x0400,gr10
142 sti gr11,@(gr10,0)
143 dcf @(gr10,gr0)
144 jmpl @(gr10,gr0)
145
146 sethi.p 0x0007,gr10 ; non RAM area
147 setlo 0x0000,gr10
148 sti gr11,@(gr10,0)
149 jmpl @(gr10,gr0)
150
151 sethi.p 0xfe00,gr10 ; insn RAM area
152 setlo 0x0000,gr10
153 sti gr11,@(gr10,0)
154 jmpl @(gr10,gr0)
155
156 sethi.p 0xfe40,gr10 ; data RAM area
157 setlo 0x0000,gr10
158 sti gr11,@(gr10,0)
159 dcf @(gr10,gr0)
160 jmpl @(gr10,gr0)
161
162 pass
163 fail:
164 fail
This page took 0.034093 seconds and 4 git commands to generate.