tc-i386.c fix for oss-fuzz gas fuzzing
[binutils-gdb.git] / sim / testsuite / sh / ldrc.s
blob444131302f4b67559a5113ce7172fce6c9689027
1 # sh testcase for ldrc, strc
2 # mach: shdsp
3 # as(shdsp): -defsym sim_cpu=1 -dsp
5 .include "testutils.inc"
7 start
9 setrc_imm:
10 set_grs_a5a5
11 # Test setrc
13 ldrs lstart
14 ldre lend
15 setrc #0xff
16 get_sr r1
17 shlr16 r1
18 set_greg 0xfff, r0
19 and r0, r1
20 assertreg 0xff, r1
22 stc rs, r0 ! rs unchanged
23 assertreg0 lstart
24 stc re, r0 ! re unchanged
25 assertreg0 lend
27 set_greg 0xa5a5a5a5, r0
28 set_greg 0xa5a5a5a5, r1
30 test_grs_a5a5
32 setrc_reg:
33 set_grs_a5a5
34 # Test setrc
36 ldrs lstart
37 ldre lend
38 set_greg 0xfff, r0
39 setrc r0
40 get_sr r1
41 shlr16 r1
42 set_greg 0xfff, r0
43 and r0, r1
44 assertreg 0xfff, r1
46 stc rs, r0 ! rs unchanged
47 assertreg0 lstart
48 stc re, r0 ! re unchanged
49 assertreg0 lend
51 set_greg 0xa5a5a5a5, r0
52 set_greg 0xa5a5a5a5, r1
54 test_grs_a5a5
56 bra ldrc_imm
58 .global lstart
59 .align 2
60 lstart: nop
61 nop
62 nop
63 nop
64 .global lend
65 .align 2
66 lend: nop
67 nop
68 nop
69 nop
71 ldrc_imm:
72 set_grs_a5a5
73 # Test ldrc
74 setrc #0x0 ! zero rc
75 ldrc #0xa5
76 get_sr r1
77 shlr16 r1
78 set_greg 0xfff, r0
79 and r0, r1
80 assertreg 0xa5, r1
81 stc rs, r0 ! rs unchanged
82 assertreg0 lstart
83 stc re, r0
84 assertreg0 lend+1 ! bit 0 set in re
86 # fix up re for next test
87 dt r0 ! Ugh! No DEC insn!
88 ldc r0, re
90 set_greg 0xa5a5a5a5, r0
91 set_greg 0xa5a5a5a5, r1
93 test_grs_a5a5
95 ldrc_reg:
96 set_grs_a5a5
97 # Test ldrc
98 setrc #0x0 ! zero rc
99 set_greg 0xa5a, r0
100 ldrc r0
101 get_sr r1
102 shlr16 r1
103 set_greg 0xfff, r0
104 and r0, r1
105 assertreg 0xa5a, r1
106 stc rs, r0 ! rs unchanged
107 assertreg0 lstart
108 stc re, r0
109 assertreg0 lend+1 ! bit 0 set in re
111 set_greg 0xa5a5a5a5, r0
112 set_greg 0xa5a5a5a5, r1
114 test_grs_a5a5
116 pass
117 exit 0