1 1.1 christos # frv testcase for maveh $FRi,$FRj,$FRj on fr400 machines 2 1.1 christos # mach: all 3 1.1 christos 4 1.1 christos .include "../testutils.inc" 5 1.1 christos 6 1.1 christos start 7 1.1 christos 8 1.1 christos .global maveh 9 1.1 christos maveh: 10 1.1 christos ; Test Rounding toward positive infinity via RDAV 11 1.1 christos or_spr_immed 0x20000000,msr0 12 1.1 christos and_spr_immed 0xefffffff,msr0 13 1.1 christos 14 1.1 christos set_fr_iimmed 0x0000,0x0000,fr10 15 1.1 christos set_fr_iimmed 0x0000,0x0000,fr11 16 1.1 christos maveh fr10,fr11,fr12 17 1.1 christos test_fr_limmed 0x0000,0x0000,fr12 18 1.1 christos 19 1.1 christos set_fr_iimmed 0x0001,0x0000,fr10 20 1.1 christos set_fr_iimmed 0x0002,0x0001,fr11 21 1.1 christos maveh fr10,fr11,fr12 22 1.1 christos test_fr_limmed 0x0002,0x0001,fr12 23 1.1 christos 24 1.1 christos set_fr_iimmed 0x0000,0xffff,fr10 25 1.1 christos set_fr_iimmed 0xffff,0xfffe,fr11 26 1.1 christos maveh fr10,fr11,fr12 27 1.1 christos test_fr_limmed 0x0000,0xffff,fr12 28 1.1 christos 29 1.1 christos set_fr_iimmed 0xdead,0x0000,fr10 30 1.1 christos set_fr_iimmed 0x0000,0xbeef,fr11 31 1.1 christos maveh fr10,fr11,fr12 32 1.1 christos test_fr_limmed 0xef57,0xdf78,fr12 33 1.1 christos 34 1.1 christos set_fr_iimmed 0x0000,0xdead,fr10 35 1.1 christos set_fr_iimmed 0xbeef,0x0000,fr11 36 1.1 christos maveh fr10,fr11,fr12 37 1.1 christos test_fr_limmed 0xdf78,0xef57,fr12 38 1.1 christos 39 1.1 christos set_fr_iimmed 0x1234,0x5678,fr10 40 1.1 christos set_fr_iimmed 0x1111,0x1111,fr11 41 1.1 christos maveh fr10,fr11,fr12 42 1.1 christos test_fr_limmed 0x11a3,0x33c5,fr12 43 1.1 christos 44 1.1 christos set_fr_iimmed 0x1234,0x5678,fr10 45 1.1 christos set_fr_iimmed 0xffff,0xffff,fr11 46 1.1 christos maveh fr10,fr11,fr12 47 1.1 christos test_fr_limmed 0x091a,0x2b3c,fr12 48 1.1 christos 49 1.1 christos set_fr_iimmed 0x7ffe,0x7ffe,fr10 50 1.1 christos set_fr_iimmed 0x0002,0x0001,fr11 51 1.1 christos maveh fr10,fr11,fr12 52 1.1 christos test_fr_limmed 0x4000,0x4000,fr12 53 1.1 christos 54 1.1 christos set_fr_iimmed 0x8001,0x8001,fr10 55 1.1 christos set_fr_iimmed 0xffff,0xfffe,fr11 56 1.1 christos maveh fr10,fr11,fr12 57 1.1 christos test_fr_limmed 0xc000,0xc000,fr12 58 1.1 christos 59 1.1 christos set_fr_iimmed 0x8001,0x8001,fr10 60 1.1 christos set_fr_iimmed 0xfffe,0xfffe,fr11 61 1.1 christos maveh fr10,fr11,fr12 62 1.1 christos test_fr_limmed 0xc000,0xc000,fr12 63 1.1 christos 64 1.1 christos set_fr_iimmed 0x8000,0x8000,fr10 65 1.1 christos set_fr_iimmed 0x7fff,0x7fff,fr11 66 1.1 christos maveh.p fr10,fr10,fr12 67 1.1 christos maveh fr11,fr11,fr13 68 1.1 christos test_fr_limmed 0x8000,0x8000,fr12 69 1.1 christos test_fr_limmed 0x7fff,0x7fff,fr13 70 1.1 christos 71 1.1 christos ; Test Rounding toward nearest via RD 72 1.1 christos or_spr_immed 0x10000000,msr0 73 1.1 christos and_spr_immed 0x3fffffff,msr0 74 1.1 christos 75 1.1 christos set_fr_iimmed 0x0000,0x0000,fr10 76 1.1 christos set_fr_iimmed 0x0000,0x0000,fr11 77 1.1 christos maveh fr10,fr11,fr12 78 1.1 christos test_fr_limmed 0x0000,0x0000,fr12 79 1.1 christos 80 1.1 christos set_fr_iimmed 0x0001,0x0000,fr10 81 1.1 christos set_fr_iimmed 0x0002,0x0001,fr11 82 1.1 christos maveh fr10,fr11,fr12 83 1.1 christos test_fr_limmed 0x0002,0x0001,fr12 84 1.1 christos 85 1.1 christos set_fr_iimmed 0x0000,0xffff,fr10 86 1.1 christos set_fr_iimmed 0xffff,0xfffe,fr11 87 1.1 christos maveh fr10,fr11,fr12 88 1.1 christos test_fr_limmed 0xffff,0xfffe,fr12 89 1.1 christos 90 1.1 christos set_fr_iimmed 0xdead,0x0000,fr10 91 1.1 christos set_fr_iimmed 0x0000,0xbeef,fr11 92 1.1 christos maveh fr10,fr11,fr12 93 1.1 christos test_fr_limmed 0xef56,0xdf77,fr12 94 1.1 christos 95 1.1 christos set_fr_iimmed 0x0000,0xdead,fr10 96 1.1 christos set_fr_iimmed 0xbeef,0x0000,fr11 97 1.1 christos maveh fr10,fr11,fr12 98 1.1 christos test_fr_limmed 0xdf77,0xef56,fr12 99 1.1 christos 100 1.1 christos set_fr_iimmed 0x1234,0x5678,fr10 101 1.1 christos set_fr_iimmed 0x1111,0x1111,fr11 102 1.1 christos maveh fr10,fr11,fr12 103 1.1 christos test_fr_limmed 0x11a3,0x33c5,fr12 104 1.1 christos 105 1.1 christos set_fr_iimmed 0x1234,0x5678,fr10 106 1.1 christos set_fr_iimmed 0xffff,0xffff,fr11 107 1.1 christos maveh fr10,fr11,fr12 108 1.1 christos test_fr_limmed 0x091a,0x2b3c,fr12 109 1.1 christos 110 1.1 christos set_fr_iimmed 0x7ffe,0x7ffe,fr10 111 1.1 christos set_fr_iimmed 0x0002,0x0001,fr11 112 1.1 christos maveh fr10,fr11,fr12 113 1.1 christos test_fr_limmed 0x4000,0x4000,fr12 114 1.1 christos 115 1.1 christos set_fr_iimmed 0x8001,0x8001,fr10 116 1.1 christos set_fr_iimmed 0xffff,0xfffe,fr11 117 1.1 christos maveh fr10,fr11,fr12 118 1.1 christos test_fr_limmed 0xc000,0xbfff,fr12 119 1.1 christos 120 1.1 christos set_fr_iimmed 0x8001,0x8001,fr10 121 1.1 christos set_fr_iimmed 0xfffe,0xfffe,fr11 122 1.1 christos maveh fr10,fr11,fr12 123 1.1 christos test_fr_limmed 0xbfff,0xbfff,fr12 124 1.1 christos 125 1.1 christos set_fr_iimmed 0x8000,0x8000,fr10 126 1.1 christos set_fr_iimmed 0x7fff,0x7fff,fr11 127 1.1 christos maveh.p fr10,fr10,fr12 128 1.1 christos maveh fr11,fr11,fr13 129 1.1 christos test_fr_limmed 0x8000,0x8000,fr12 130 1.1 christos test_fr_limmed 0x7fff,0x7fff,fr13 131 1.1 christos 132 1.1 christos ; Test Rounding toward zero via RD 133 1.1 christos or_spr_immed 0x50000000,msr0 134 1.1 christos and_spr_immed 0x7fffffff,msr0 135 1.1 christos 136 1.1 christos set_fr_iimmed 0x0000,0x0000,fr10 137 1.1 christos set_fr_iimmed 0x0000,0x0000,fr11 138 1.1 christos maveh fr10,fr11,fr12 139 1.1 christos test_fr_limmed 0x0000,0x0000,fr12 140 1.1 christos 141 1.1 christos set_fr_iimmed 0x0001,0x0000,fr10 142 1.1 christos set_fr_iimmed 0x0002,0x0001,fr11 143 1.1 christos maveh fr10,fr11,fr12 144 1.1 christos test_fr_limmed 0x0001,0x0000,fr12 145 1.1 christos 146 1.1 christos set_fr_iimmed 0x0000,0xffff,fr10 147 1.1 christos set_fr_iimmed 0xffff,0xfffe,fr11 148 1.1 christos maveh fr10,fr11,fr12 149 1.1 christos test_fr_limmed 0x0000,0xffff,fr12 150 1.1 christos 151 1.1 christos set_fr_iimmed 0xdead,0x0000,fr10 152 1.1 christos set_fr_iimmed 0x0000,0xbeef,fr11 153 1.1 christos maveh fr10,fr11,fr12 154 1.1 christos test_fr_limmed 0xef57,0xdf78,fr12 155 1.1 christos 156 1.1 christos set_fr_iimmed 0x0000,0xdead,fr10 157 1.1 christos set_fr_iimmed 0xbeef,0x0000,fr11 158 1.1 christos maveh fr10,fr11,fr12 159 1.1 christos test_fr_limmed 0xdf78,0xef57,fr12 160 1.1 christos 161 1.1 christos set_fr_iimmed 0x1234,0x5678,fr10 162 1.1 christos set_fr_iimmed 0x1111,0x1111,fr11 163 1.1 christos maveh fr10,fr11,fr12 164 1.1 christos test_fr_limmed 0x11a2,0x33c4,fr12 165 1.1 christos 166 1.1 christos set_fr_iimmed 0x1234,0x5678,fr10 167 1.1 christos set_fr_iimmed 0xffff,0xffff,fr11 168 1.1 christos maveh fr10,fr11,fr12 169 1.1 christos test_fr_limmed 0x0919,0x2b3b,fr12 170 1.1 christos 171 1.1 christos set_fr_iimmed 0x7ffe,0x7ffe,fr10 172 1.1 christos set_fr_iimmed 0x0002,0x0001,fr11 173 1.1 christos maveh fr10,fr11,fr12 174 1.1 christos test_fr_limmed 0x4000,0x3fff,fr12 175 1.1 christos 176 1.1 christos set_fr_iimmed 0x8001,0x8001,fr10 177 1.1 christos set_fr_iimmed 0xffff,0xfffe,fr11 178 1.1 christos maveh fr10,fr11,fr12 179 1.1 christos test_fr_limmed 0xc000,0xc000,fr12 180 1.1 christos 181 1.1 christos set_fr_iimmed 0x8001,0x8001,fr10 182 1.1 christos set_fr_iimmed 0xfffe,0xfffe,fr11 183 1.1 christos maveh fr10,fr11,fr12 184 1.1 christos test_fr_limmed 0xc000,0xc000,fr12 185 1.1 christos 186 1.1 christos set_fr_iimmed 0x8000,0x8000,fr10 187 1.1 christos set_fr_iimmed 0x7fff,0x7fff,fr11 188 1.1 christos maveh.p fr10,fr10,fr12 189 1.1 christos maveh fr11,fr11,fr13 190 1.1 christos test_fr_limmed 0x8000,0x8000,fr12 191 1.1 christos test_fr_limmed 0x7fff,0x7fff,fr13 192 1.1 christos 193 1.1 christos ; Test Rounding toward positive infinity via RD 194 1.1 christos or_spr_immed 0x90000000,msr0 195 1.1 christos and_spr_immed 0xbfffffff,msr0 196 1.1 christos 197 1.1 christos set_fr_iimmed 0x0000,0x0000,fr10 198 1.1 christos set_fr_iimmed 0x0000,0x0000,fr11 199 1.1 christos maveh fr10,fr11,fr12 200 1.1 christos test_fr_limmed 0x0000,0x0000,fr12 201 1.1 christos 202 1.1 christos set_fr_iimmed 0x0001,0x0000,fr10 203 1.1 christos set_fr_iimmed 0x0002,0x0001,fr11 204 1.1 christos maveh fr10,fr11,fr12 205 1.1 christos test_fr_limmed 0x0002,0x0001,fr12 206 1.1 christos 207 1.1 christos set_fr_iimmed 0x0000,0xffff,fr10 208 1.1 christos set_fr_iimmed 0xffff,0xfffe,fr11 209 1.1 christos maveh fr10,fr11,fr12 210 1.1 christos test_fr_limmed 0x0000,0xffff,fr12 211 1.1 christos 212 1.1 christos set_fr_iimmed 0xdead,0x0000,fr10 213 1.1 christos set_fr_iimmed 0x0000,0xbeef,fr11 214 1.1 christos maveh fr10,fr11,fr12 215 1.1 christos test_fr_limmed 0xef57,0xdf78,fr12 216 1.1 christos 217 1.1 christos set_fr_iimmed 0x0000,0xdead,fr10 218 1.1 christos set_fr_iimmed 0xbeef,0x0000,fr11 219 1.1 christos maveh fr10,fr11,fr12 220 1.1 christos test_fr_limmed 0xdf78,0xef57,fr12 221 1.1 christos 222 1.1 christos set_fr_iimmed 0x1234,0x5678,fr10 223 1.1 christos set_fr_iimmed 0x1111,0x1111,fr11 224 1.1 christos maveh fr10,fr11,fr12 225 1.1 christos test_fr_limmed 0x11a3,0x33c5,fr12 226 1.1 christos 227 1.1 christos set_fr_iimmed 0x1234,0x5678,fr10 228 1.1 christos set_fr_iimmed 0xffff,0xffff,fr11 229 1.1 christos maveh fr10,fr11,fr12 230 1.1 christos test_fr_limmed 0x091a,0x2b3c,fr12 231 1.1 christos 232 1.1 christos set_fr_iimmed 0x7ffe,0x7ffe,fr10 233 1.1 christos set_fr_iimmed 0x0002,0x0001,fr11 234 1.1 christos maveh fr10,fr11,fr12 235 1.1 christos test_fr_limmed 0x4000,0x4000,fr12 236 1.1 christos 237 1.1 christos set_fr_iimmed 0x8001,0x8001,fr10 238 1.1 christos set_fr_iimmed 0xffff,0xfffe,fr11 239 1.1 christos maveh fr10,fr11,fr12 240 1.1 christos test_fr_limmed 0xc000,0xc000,fr12 241 1.1 christos 242 1.1 christos set_fr_iimmed 0x8001,0x8001,fr10 243 1.1 christos set_fr_iimmed 0xfffe,0xfffe,fr11 244 1.1 christos maveh fr10,fr11,fr12 245 1.1 christos test_fr_limmed 0xc000,0xc000,fr12 246 1.1 christos 247 1.1 christos set_fr_iimmed 0x8000,0x8000,fr10 248 1.1 christos set_fr_iimmed 0x7fff,0x7fff,fr11 249 1.1 christos maveh.p fr10,fr10,fr12 250 1.1 christos maveh fr11,fr11,fr13 251 1.1 christos test_fr_limmed 0x8000,0x8000,fr12 252 1.1 christos test_fr_limmed 0x7fff,0x7fff,fr13 253 1.1 christos 254 1.1 christos ; Test Rounding toward negative infinity via RD 255 1.1 christos or_spr_immed 0xd0000000,msr0 256 1.1 christos 257 1.1 christos set_fr_iimmed 0x0000,0x0000,fr10 258 1.1 christos set_fr_iimmed 0x0000,0x0000,fr11 259 1.1 christos maveh fr10,fr11,fr12 260 1.1 christos test_fr_limmed 0x0000,0x0000,fr12 261 1.1 christos 262 1.1 christos set_fr_iimmed 0x0001,0x0000,fr10 263 1.1 christos set_fr_iimmed 0x0002,0x0001,fr11 264 1.1 christos maveh fr10,fr11,fr12 265 1.1 christos test_fr_limmed 0x0001,0x0000,fr12 266 1.1 christos 267 1.1 christos set_fr_iimmed 0x0000,0xffff,fr10 268 1.1 christos set_fr_iimmed 0xffff,0xfffe,fr11 269 1.1 christos maveh fr10,fr11,fr12 270 1.1 christos test_fr_limmed 0xffff,0xfffe,fr12 271 1.1 christos 272 1.1 christos set_fr_iimmed 0xdead,0x0000,fr10 273 1.1 christos set_fr_iimmed 0x0000,0xbeef,fr11 274 1.1 christos maveh fr10,fr11,fr12 275 1.1 christos test_fr_limmed 0xef56,0xdf77,fr12 276 1.1 christos 277 1.1 christos set_fr_iimmed 0x0000,0xdead,fr10 278 1.1 christos set_fr_iimmed 0xbeef,0x0000,fr11 279 1.1 christos maveh fr10,fr11,fr12 280 1.1 christos test_fr_limmed 0xdf77,0xef56,fr12 281 1.1 christos 282 1.1 christos set_fr_iimmed 0x1234,0x5678,fr10 283 1.1 christos set_fr_iimmed 0x1111,0x1111,fr11 284 1.1 christos maveh fr10,fr11,fr12 285 1.1 christos test_fr_limmed 0x11a2,0x33c4,fr12 286 1.1 christos 287 1.1 christos set_fr_iimmed 0x1234,0x5678,fr10 288 1.1 christos set_fr_iimmed 0xffff,0xffff,fr11 289 1.1 christos maveh fr10,fr11,fr12 290 1.1 christos test_fr_limmed 0x0919,0x2b3b,fr12 291 1.1 christos 292 1.1 christos set_spr_immed 0,msr0 293 1.1 christos set_fr_iimmed 0x7ffe,0x7ffe,fr10 294 1.1 christos set_fr_iimmed 0x0002,0x0001,fr11 295 1.1 christos maveh fr10,fr11,fr12 296 1.1 christos test_fr_limmed 0x4000,0x3fff,fr12 297 1.1 christos 298 1.1 christos set_spr_immed 0,msr0 299 1.1 christos set_fr_iimmed 0x8001,0x8001,fr10 300 1.1 christos set_fr_iimmed 0xffff,0xfffe,fr11 301 1.1 christos maveh fr10,fr11,fr12 302 1.1 christos test_fr_limmed 0xc000,0xbfff,fr12 303 1.1 christos 304 1.1 christos set_spr_immed 0,msr0 305 1.1 christos set_fr_iimmed 0x8001,0x8001,fr10 306 1.1 christos set_fr_iimmed 0xfffe,0xfffe,fr11 307 1.1 christos maveh fr10,fr11,fr12 308 1.1 christos test_fr_limmed 0xbfff,0xbfff,fr12 309 1.1 christos 310 1.1 christos set_spr_immed 0,msr0 311 1.1 christos set_spr_immed 0,msr1 312 1.1 christos set_fr_iimmed 0x8000,0x8000,fr10 313 1.1 christos set_fr_iimmed 0x7fff,0x7fff,fr11 314 1.1 christos maveh.p fr10,fr10,fr12 315 1.1 christos maveh fr11,fr11,fr13 316 1.1 christos test_fr_limmed 0x8000,0x8000,fr12 317 1.1 christos test_fr_limmed 0x7fff,0x7fff,fr13 318 1.1 christos 319 1.1 christos pass 320