1# frv testcase for cswap @($GRi,$GRj),$GRk,$CCi,$cond 2# mach: all 3 4 .include "testutils.inc" 5 6 start 7 8 .global cswap 9cswap: 10 set_spr_immed 0x1b1b,cccr 11 12 set_gr_gr sp,gr20 13 set_mem_limmed 0xdead,0xbeef,sp 14 inc_gr_immed -4,sp 15 set_gr_gr sp,gr21 16 set_mem_limmed 0xbeef,0xdead,sp 17 inc_gr_immed -4,sp 18 set_gr_gr sp,gr22 19 set_mem_limmed 0xdead,0xbeef,sp 20 inc_gr_immed 4,sp 21 22 set_gr_limmed 0xbeef,0xdead,gr8 23 set_gr_immed -4,gr7 24 cswap @(sp,gr7),gr8,cc0,1 25 test_gr_limmed 0xdead,0xbeef,gr8 26 test_mem_limmed 0xbeef,0xdead,gr22 27 test_mem_limmed 0xbeef,0xdead,gr21 28 test_mem_limmed 0xdead,0xbeef,gr20 29 30 set_gr_immed 0,gr7 31 cswap @(sp,gr7),gr8,cc0,1 32 test_gr_limmed 0xbeef,0xdead,gr8 33 test_mem_limmed 0xbeef,0xdead,gr22 34 test_mem_limmed 0xdead,0xbeef,gr21 35 test_mem_limmed 0xdead,0xbeef,gr20 36 37 set_gr_immed 4,gr7 38 cswap @(sp,gr7),gr8,cc4,1 39 test_gr_limmed 0xdead,0xbeef,gr8 40 test_mem_limmed 0xbeef,0xdead,gr22 41 test_mem_limmed 0xdead,0xbeef,gr21 42 test_mem_limmed 0xbeef,0xdead,gr20 43 44 set_gr_gr gr20,sp 45 set_mem_limmed 0xdead,0xbeef,sp 46 inc_gr_immed -4,sp 47 set_gr_gr sp,gr21 48 set_mem_limmed 0xbeef,0xdead,sp 49 inc_gr_immed -4,sp 50 set_gr_gr sp,gr22 51 set_mem_limmed 0xdead,0xbeef,sp 52 inc_gr_immed 4,sp 53 54 set_gr_limmed 0xbeef,0xdead,gr8 55 set_gr_immed -4,gr7 56 cswap @(sp,gr7),gr8,cc0,0 57 test_gr_limmed 0xbeef,0xdead,gr8 58 test_mem_limmed 0xdead,0xbeef,gr22 59 test_mem_limmed 0xbeef,0xdead,gr21 60 test_mem_limmed 0xdead,0xbeef,gr20 61 62 set_gr_limmed 0xdead,0xbeef,gr8 63 set_gr_immed 0,gr7 64 cswap @(sp,gr7),gr8,cc0,0 65 test_gr_limmed 0xdead,0xbeef,gr8 66 test_mem_limmed 0xdead,0xbeef,gr22 67 test_mem_limmed 0xbeef,0xdead,gr21 68 test_mem_limmed 0xdead,0xbeef,gr20 69 70 set_gr_limmed 0xbeef,0xdead,gr8 71 set_gr_immed 4,gr7 72 cswap @(sp,gr7),gr8,cc4,0 73 test_gr_limmed 0xbeef,0xdead,gr8 74 test_mem_limmed 0xdead,0xbeef,gr22 75 test_mem_limmed 0xbeef,0xdead,gr21 76 test_mem_limmed 0xdead,0xbeef,gr20 77 78 set_gr_gr gr20,sp 79 set_mem_limmed 0xdead,0xbeef,sp 80 inc_gr_immed -4,sp 81 set_gr_gr sp,gr21 82 set_mem_limmed 0xbeef,0xdead,sp 83 inc_gr_immed -4,sp 84 set_gr_gr sp,gr22 85 set_mem_limmed 0xdead,0xbeef,sp 86 inc_gr_immed 4,sp 87 88 set_gr_limmed 0xbeef,0xdead,gr8 89 set_gr_immed -4,gr7 90 cswap @(sp,gr7),gr8,cc1,0 91 test_gr_limmed 0xdead,0xbeef,gr8 92 test_mem_limmed 0xbeef,0xdead,gr22 93 test_mem_limmed 0xbeef,0xdead,gr21 94 test_mem_limmed 0xdead,0xbeef,gr20 95 96 set_gr_immed 0,gr7 97 cswap @(sp,gr7),gr8,cc1,0 98 test_gr_limmed 0xbeef,0xdead,gr8 99 test_mem_limmed 0xbeef,0xdead,gr22 100 test_mem_limmed 0xdead,0xbeef,gr21 101 test_mem_limmed 0xdead,0xbeef,gr20 102 103 set_gr_immed 4,gr7 104 cswap @(sp,gr7),gr8,cc5,0 105 test_gr_limmed 0xdead,0xbeef,gr8 106 test_mem_limmed 0xbeef,0xdead,gr22 107 test_mem_limmed 0xdead,0xbeef,gr21 108 test_mem_limmed 0xbeef,0xdead,gr20 109 110 set_gr_gr gr20,sp 111 set_mem_limmed 0xdead,0xbeef,sp 112 inc_gr_immed -4,sp 113 set_gr_gr sp,gr21 114 set_mem_limmed 0xbeef,0xdead,sp 115 inc_gr_immed -4,sp 116 set_gr_gr sp,gr22 117 set_mem_limmed 0xdead,0xbeef,sp 118 inc_gr_immed 4,sp 119 120 set_gr_limmed 0xbeef,0xdead,gr8 121 set_gr_immed -4,gr7 122 cswap @(sp,gr7),gr8,cc1,1 123 test_gr_limmed 0xbeef,0xdead,gr8 124 test_mem_limmed 0xdead,0xbeef,gr22 125 test_mem_limmed 0xbeef,0xdead,gr21 126 test_mem_limmed 0xdead,0xbeef,gr20 127 128 set_gr_limmed 0xdead,0xbeef,gr8 129 set_gr_immed 0,gr7 130 cswap @(sp,gr7),gr8,cc1,1 131 test_gr_limmed 0xdead,0xbeef,gr8 132 test_mem_limmed 0xdead,0xbeef,gr22 133 test_mem_limmed 0xbeef,0xdead,gr21 134 test_mem_limmed 0xdead,0xbeef,gr20 135 136 set_gr_limmed 0xbeef,0xdead,gr8 137 set_gr_immed 4,gr7 138 cswap @(sp,gr7),gr8,cc5,1 139 test_gr_limmed 0xbeef,0xdead,gr8 140 test_mem_limmed 0xdead,0xbeef,gr22 141 test_mem_limmed 0xbeef,0xdead,gr21 142 test_mem_limmed 0xdead,0xbeef,gr20 143 144 set_gr_gr gr20,sp 145 set_mem_limmed 0xdead,0xbeef,sp 146 inc_gr_immed -4,sp 147 set_gr_gr sp,gr21 148 set_mem_limmed 0xbeef,0xdead,sp 149 inc_gr_immed -4,sp 150 set_gr_gr sp,gr22 151 set_mem_limmed 0xdead,0xbeef,sp 152 inc_gr_immed 4,sp 153 154 set_gr_limmed 0xbeef,0xdead,gr8 155 set_gr_immed -4,gr7 156 cswap @(sp,gr7),gr8,cc2,0 157 test_gr_limmed 0xbeef,0xdead,gr8 158 test_mem_limmed 0xdead,0xbeef,gr22 159 test_mem_limmed 0xbeef,0xdead,gr21 160 test_mem_limmed 0xdead,0xbeef,gr20 161 162 set_gr_limmed 0xdead,0xbeef,gr8 163 set_gr_immed 0,gr7 164 cswap @(sp,gr7),gr8,cc2,1 165 test_gr_limmed 0xdead,0xbeef,gr8 166 test_mem_limmed 0xdead,0xbeef,gr22 167 test_mem_limmed 0xbeef,0xdead,gr21 168 test_mem_limmed 0xdead,0xbeef,gr20 169 170 set_gr_limmed 0xbeef,0xdead,gr8 171 set_gr_immed 4,gr7 172 cswap @(sp,gr7),gr8,cc6,0 173 test_gr_limmed 0xbeef,0xdead,gr8 174 test_mem_limmed 0xdead,0xbeef,gr22 175 test_mem_limmed 0xbeef,0xdead,gr21 176 test_mem_limmed 0xdead,0xbeef,gr20 177 178 set_gr_gr gr20,sp 179 set_mem_limmed 0xdead,0xbeef,sp 180 inc_gr_immed -4,sp 181 set_gr_gr sp,gr21 182 set_mem_limmed 0xbeef,0xdead,sp 183 inc_gr_immed -4,sp 184 set_gr_gr sp,gr22 185 set_mem_limmed 0xdead,0xbeef,sp 186 inc_gr_immed 4,sp 187 188 set_gr_limmed 0xbeef,0xdead,gr8 189 set_gr_immed -4,gr7 190 cswap @(sp,gr7),gr8,cc3,1 191 test_gr_limmed 0xbeef,0xdead,gr8 192 test_mem_limmed 0xdead,0xbeef,gr22 193 test_mem_limmed 0xbeef,0xdead,gr21 194 test_mem_limmed 0xdead,0xbeef,gr20 195 196 set_gr_limmed 0xdead,0xbeef,gr8 197 set_gr_immed 0,gr7 198 cswap @(sp,gr7),gr8,cc3,0 199 test_gr_limmed 0xdead,0xbeef,gr8 200 test_mem_limmed 0xdead,0xbeef,gr22 201 test_mem_limmed 0xbeef,0xdead,gr21 202 test_mem_limmed 0xdead,0xbeef,gr20 203 204 set_gr_limmed 0xbeef,0xdead,gr8 205 set_gr_immed 4,gr7 206 cswap @(sp,gr7),gr8,cc7,1 207 test_gr_limmed 0xbeef,0xdead,gr8 208 test_mem_limmed 0xdead,0xbeef,gr22 209 test_mem_limmed 0xbeef,0xdead,gr21 210 test_mem_limmed 0xdead,0xbeef,gr20 211 212 pass 213