div.s revision 1.1.1.1
1# Hitachi H8 testcase 'divs', 'divu', 'divxs', 'divxu' 2# mach(): all 3# as(h8300): --defsym sim_cpu=0 4# as(h8300h): --defsym sim_cpu=1 5# as(h8300s): --defsym sim_cpu=2 6# as(h8sx): --defsym sim_cpu=3 7# ld(h8300h): -m h8300helf 8# ld(h8300s): -m h8300self 9# ld(h8sx): -m h8300sxelf 10 11 .include "testutils.inc" 12 13 start 14 15.if (sim_cpu == h8sx) 16divs_w_reg_reg: 17 set_grs_a5a5 18 19 ;; divs.w rs, rd 20 mov.w #32, r1 21 mov.w #-2, r2 22 set_ccr_zero 23 divs.w r2, r1 24 25 ;; test ccr ; H=0 N=1 Z=0 V=0 C=0 26 test_neg_set 27 test_carry_clear 28 test_zero_clear 29 test_ovf_clear 30 31 test_gr_a5a5 0 32 test_h_gr16 0xfff0 r1 33 test_h_gr32 0xa5a5fffe er2 34 test_gr_a5a5 3 35 test_gr_a5a5 4 36 test_gr_a5a5 5 37 test_gr_a5a5 6 38 test_gr_a5a5 7 39 40divs_w_imm4_reg: 41 set_grs_a5a5 42 43 ;; divs.w xx:4, rd 44 mov.w #-32, r1 45 set_ccr_zero 46 divs.w #2:4, r1 47 48 ;; test ccr ; H=0 N=1 Z=0 V=0 C=0 49 test_neg_set 50 test_carry_clear 51 test_zero_clear 52 test_ovf_clear 53 54 test_gr_a5a5 0 55 test_h_gr16 -16 r1 56 test_gr_a5a5 2 57 test_gr_a5a5 3 58 test_gr_a5a5 4 59 test_gr_a5a5 5 60 test_gr_a5a5 6 61 test_gr_a5a5 7 62 63divs_l_reg_reg: 64 set_grs_a5a5 65 66 ;; divs.l ers, erd 67 mov.l #320000, er1 68 mov.l #-2, er2 69 set_ccr_zero 70 divs.l er2, er1 71 72 ;; test ccr ; H=0 N=1 Z=0 V=0 C=0 73 test_neg_set 74 test_carry_clear 75 test_zero_clear 76 test_ovf_clear 77 78 test_gr_a5a5 0 79 test_h_gr32 -160000 er1 80 test_h_gr32 -2 er2 81 test_gr_a5a5 3 82 test_gr_a5a5 4 83 test_gr_a5a5 5 84 test_gr_a5a5 6 85 test_gr_a5a5 7 86 87divs_l_imm4_reg: 88 set_grs_a5a5 89 90 ;; divs.l xx:4, rd 91 mov.l #-320000, er1 92 set_ccr_zero 93 divs.l #2:4, er1 94 95 ;; test ccr ; H=0 N=1 Z=0 V=0 C=0 96 test_neg_set 97 test_carry_clear 98 test_zero_clear 99 test_ovf_clear 100 101 test_gr_a5a5 0 102 test_h_gr32 -160000 er1 103 test_gr_a5a5 2 104 test_gr_a5a5 3 105 test_gr_a5a5 4 106 test_gr_a5a5 5 107 test_gr_a5a5 6 108 test_gr_a5a5 7 109 110divu_w_reg_reg: 111 set_grs_a5a5 112 113 ;; divu.w rs, rd 114 mov.w #32, r1 115 mov.w #2, r2 116 set_ccr_zero 117 divu.w r2, r1 118 119 ;; test ccr ; H=0 N=0 Z=0 V=0 C=0 120 test_cc_clear 121 122 test_gr_a5a5 0 123 test_h_gr16 16 r1 124 test_h_gr32 0xa5a50002 er2 125 test_gr_a5a5 3 126 test_gr_a5a5 4 127 test_gr_a5a5 5 128 test_gr_a5a5 6 129 test_gr_a5a5 7 130 131divu_w_imm4_reg: 132 set_grs_a5a5 133 134 ;; divu.w xx:4, rd 135 mov.w #32, r1 136 set_ccr_zero 137 divu.w #2:4, r1 138 139 ;; test ccr ; H=0 N=0 Z=0 V=0 C=0 140 test_cc_clear 141 142 test_gr_a5a5 0 143 test_h_gr16 16 r1 144 test_gr_a5a5 2 145 test_gr_a5a5 3 146 test_gr_a5a5 4 147 test_gr_a5a5 5 148 test_gr_a5a5 6 149 test_gr_a5a5 7 150 151divu_l_reg_reg: 152 set_grs_a5a5 153 154 ;; divu.l ers, erd 155 mov.l #320000, er1 156 mov.l #2, er2 157 set_ccr_zero 158 divu.l er2, er1 159 160 ;; test ccr ; H=0 N=0 Z=0 V=0 C=0 161 test_cc_clear 162 163 test_gr_a5a5 0 164 test_h_gr32 160000 er1 165 test_h_gr32 2 er2 166 test_gr_a5a5 3 167 test_gr_a5a5 4 168 test_gr_a5a5 5 169 test_gr_a5a5 6 170 test_gr_a5a5 7 171 172divu_l_imm4_reg: 173 set_grs_a5a5 174 175 ;; divu.l xx:4, rd 176 mov.l #320000, er1 177 set_ccr_zero 178 divu.l #2:4, er1 179 180 ;; test ccr ; H=0 N=0 Z=0 V=0 C=0 181 test_cc_clear 182 183 test_gr_a5a5 0 184 test_h_gr32 160000 er1 185 test_gr_a5a5 2 186 test_gr_a5a5 3 187 test_gr_a5a5 4 188 test_gr_a5a5 5 189 test_gr_a5a5 6 190 test_gr_a5a5 7 191 192.endif 193 194.if (sim_cpu) ; not equal to zero ie. not h8 195divxs_b_reg_reg: 196 set_grs_a5a5 197 198 ;; divxs.b rs, rd 199 mov.w #32, r1 200 mov.b #-2, r2l 201 set_ccr_zero 202 divxs.b r2l, r1 203 204 ;; test ccr ; H=0 N=1 Z=0 V=0 C=0 205 test_neg_set 206 test_carry_clear 207 test_zero_clear 208 test_ovf_clear 209 210 test_gr_a5a5 0 211 test_h_gr16 0x00f0 r1 212 test_h_gr32 0xa5a5a5fe er2 213 test_gr_a5a5 3 214 test_gr_a5a5 4 215 test_gr_a5a5 5 216 test_gr_a5a5 6 217 test_gr_a5a5 7 218 219.if (sim_cpu == h8sx) 220divxs_b_imm4_reg: 221 set_grs_a5a5 222 223 ;; divxs.b xx:4, rd 224 mov.w #-32, r1 225 set_ccr_zero 226 divxs.b #2:4, r1 227 228 ;; test ccr ; H=0 N=1 Z=0 V=0 C=0 229 test_neg_set 230 test_carry_clear 231 test_zero_clear 232 test_ovf_clear 233 234 test_gr_a5a5 0 235 test_h_gr16 0x00f0 r1 236 test_gr_a5a5 2 237 test_gr_a5a5 3 238 test_gr_a5a5 4 239 test_gr_a5a5 5 240 test_gr_a5a5 6 241 test_gr_a5a5 7 242.endif ; h8sx 243 244divxs_w_reg_reg: 245 set_grs_a5a5 246 247 ;; divxs.w ers, erd 248 mov.l #0x1000, er1 249 mov.w #-0x1000, r2 250 set_ccr_zero 251 divxs.w r2, er1 252 253 ;; test ccr ; H=0 N=1 Z=0 V=0 C=0 254 test_neg_set 255 test_carry_clear 256 test_zero_clear 257 test_ovf_clear 258 259 test_gr_a5a5 0 260 test_h_gr32 0x0000ffff er1 261 test_h_gr32 0xa5a5f000 er2 262 test_gr_a5a5 3 263 test_gr_a5a5 4 264 test_gr_a5a5 5 265 test_gr_a5a5 6 266 test_gr_a5a5 7 267 268.if (sim_cpu == h8sx) 269divxs_w_imm4_reg: 270 set_grs_a5a5 271 272 ;; divxs.w xx:4, rd 273 mov.l #-4, er1 274 set_ccr_zero 275 divxs.w #2:4, er1 276 277 ;; test ccr ; H=0 N=1 Z=0 V=0 C=0 278 test_neg_set 279 test_carry_clear 280 test_zero_clear 281 test_ovf_clear 282 283 test_gr_a5a5 0 284 test_h_gr32 0x0000fffe er1 285 test_gr_a5a5 2 286 test_gr_a5a5 3 287 test_gr_a5a5 4 288 test_gr_a5a5 5 289 test_gr_a5a5 6 290 test_gr_a5a5 7 291.endif ; h8sx 292.endif ; not h8 293 294divxu_b_reg_reg: 295 set_grs_a5a5 296 297 ;; divxu.b rs, rd 298 mov.w #32, r1 299 mov.b #2, r2l 300 set_ccr_zero 301 divxu.b r2l, r1 302 303 ;; test ccr ; H=0 N=0 Z=0 V=0 C=0 304 test_cc_clear 305 306 test_gr_a5a5 0 307 test_h_gr16 0x0010 r1 308 test_h_gr16 0xa502 r2 309.if (sim_cpu) 310 test_h_gr32 0xa5a5a502 er2 311.endif 312 test_gr_a5a5 3 313 test_gr_a5a5 4 314 test_gr_a5a5 5 315 test_gr_a5a5 6 316 test_gr_a5a5 7 317 318.if (sim_cpu) ; not h8 319.if (sim_cpu == h8sx) 320divxu_b_imm4_reg: 321 set_grs_a5a5 322 323 ;; divxu.b xx:4, rd 324 mov.w #32, r1 325 set_ccr_zero 326 divxu.b #2:4, r1 327 328 ;; test ccr ; H=0 N=0 Z=0 V=0 C=0 329 test_cc_clear 330 331 test_gr_a5a5 0 332 test_h_gr16 0x0010 r1 333 test_gr_a5a5 2 334 test_gr_a5a5 3 335 test_gr_a5a5 4 336 test_gr_a5a5 5 337 test_gr_a5a5 6 338 test_gr_a5a5 7 339.endif ; h8sx 340 341divxu_w_reg_reg: 342 set_grs_a5a5 343 344 ;; divxu.w ers, erd 345 mov.l #0x1000, er1 346 mov.w #0x1000, r2 347 set_ccr_zero 348 divxu.w r2, er1 349 350 ;; test ccr ; H=0 N=0 Z=0 V=0 C=0 351 test_cc_clear 352 353 test_gr_a5a5 0 354 test_h_gr32 0x00000001 er1 355 test_h_gr32 0xa5a51000 er2 356 test_gr_a5a5 3 357 test_gr_a5a5 4 358 test_gr_a5a5 5 359 test_gr_a5a5 6 360 test_gr_a5a5 7 361 362.if (sim_cpu == h8sx) 363divxu_w_imm4_reg: 364 set_grs_a5a5 365 366 ;; divxu.w xx:4, rd 367 mov.l #0xffff, er1 368 set_ccr_zero 369 divxu.w #2:4, er1 370 371 ;; test ccr ; H=0 N=0 Z=0 V=0 C=0 372 test_cc_clear 373 374 test_gr_a5a5 0 375 test_h_gr32 0x00017fff er1 376 test_gr_a5a5 2 377 test_gr_a5a5 3 378 test_gr_a5a5 4 379 test_gr_a5a5 5 380 test_gr_a5a5 6 381 test_gr_a5a5 7 382.endif ; h8sx 383.endif ; not h8 384 385 pass 386 387 exit 0 388