1 /* Simulator model support for m32rbf. 2 3 THIS FILE IS MACHINE GENERATED WITH CGEN. 4 5 Copyright (C) 1996-2024 Free Software Foundation, Inc. 6 7 This file is part of the GNU simulators. 8 9 This file is free software; you can redistribute it and/or modify 10 it under the terms of the GNU General Public License as published by 11 the Free Software Foundation; either version 3, or (at your option) 12 any later version. 13 14 It is distributed in the hope that it will be useful, but WITHOUT 15 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 16 or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public 17 License for more details. 18 19 You should have received a copy of the GNU General Public License along 20 with this program; if not, write to the Free Software Foundation, Inc., 21 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. 22 23 */ 24 25 #define WANT_CPU m32rbf 26 #define WANT_CPU_M32RBF 27 28 #include "sim-main.h" 29 30 /* The profiling data is recorded here, but is accessed via the profiling 31 mechanism. After all, this is information for profiling. */ 32 33 #if WITH_PROFILE_MODEL_P 34 35 /* Model handlers for each insn. */ 36 37 static int 38 model_m32r_d_add (SIM_CPU *current_cpu, void *sem_arg) 39 { 40 #define FLD(f) abuf->fields.sfmt_add.f 41 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 42 const IDESC * UNUSED idesc = abuf->idesc; 43 int cycles = 0; 44 { 45 int referenced = 0; 46 int UNUSED insn_referenced = abuf->written; 47 INT in_sr = -1; 48 INT in_dr = -1; 49 INT out_dr = -1; 50 in_sr = FLD (in_sr); 51 in_dr = FLD (in_dr); 52 out_dr = FLD (out_dr); 53 referenced |= 1 << 0; 54 referenced |= 1 << 1; 55 referenced |= 1 << 2; 56 cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); 57 } 58 return cycles; 59 #undef FLD 60 } 61 62 static int 63 model_m32r_d_add3 (SIM_CPU *current_cpu, void *sem_arg) 64 { 65 #define FLD(f) abuf->fields.sfmt_add3.f 66 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 67 const IDESC * UNUSED idesc = abuf->idesc; 68 int cycles = 0; 69 { 70 int referenced = 0; 71 int UNUSED insn_referenced = abuf->written; 72 INT in_sr = -1; 73 INT in_dr = -1; 74 INT out_dr = -1; 75 in_sr = FLD (in_sr); 76 out_dr = FLD (out_dr); 77 referenced |= 1 << 0; 78 referenced |= 1 << 2; 79 cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); 80 } 81 return cycles; 82 #undef FLD 83 } 84 85 static int 86 model_m32r_d_and (SIM_CPU *current_cpu, void *sem_arg) 87 { 88 #define FLD(f) abuf->fields.sfmt_add.f 89 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 90 const IDESC * UNUSED idesc = abuf->idesc; 91 int cycles = 0; 92 { 93 int referenced = 0; 94 int UNUSED insn_referenced = abuf->written; 95 INT in_sr = -1; 96 INT in_dr = -1; 97 INT out_dr = -1; 98 in_sr = FLD (in_sr); 99 in_dr = FLD (in_dr); 100 out_dr = FLD (out_dr); 101 referenced |= 1 << 0; 102 referenced |= 1 << 1; 103 referenced |= 1 << 2; 104 cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); 105 } 106 return cycles; 107 #undef FLD 108 } 109 110 static int 111 model_m32r_d_and3 (SIM_CPU *current_cpu, void *sem_arg) 112 { 113 #define FLD(f) abuf->fields.sfmt_and3.f 114 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 115 const IDESC * UNUSED idesc = abuf->idesc; 116 int cycles = 0; 117 { 118 int referenced = 0; 119 int UNUSED insn_referenced = abuf->written; 120 INT in_sr = -1; 121 INT in_dr = -1; 122 INT out_dr = -1; 123 in_sr = FLD (in_sr); 124 out_dr = FLD (out_dr); 125 referenced |= 1 << 0; 126 referenced |= 1 << 2; 127 cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); 128 } 129 return cycles; 130 #undef FLD 131 } 132 133 static int 134 model_m32r_d_or (SIM_CPU *current_cpu, void *sem_arg) 135 { 136 #define FLD(f) abuf->fields.sfmt_add.f 137 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 138 const IDESC * UNUSED idesc = abuf->idesc; 139 int cycles = 0; 140 { 141 int referenced = 0; 142 int UNUSED insn_referenced = abuf->written; 143 INT in_sr = -1; 144 INT in_dr = -1; 145 INT out_dr = -1; 146 in_sr = FLD (in_sr); 147 in_dr = FLD (in_dr); 148 out_dr = FLD (out_dr); 149 referenced |= 1 << 0; 150 referenced |= 1 << 1; 151 referenced |= 1 << 2; 152 cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); 153 } 154 return cycles; 155 #undef FLD 156 } 157 158 static int 159 model_m32r_d_or3 (SIM_CPU *current_cpu, void *sem_arg) 160 { 161 #define FLD(f) abuf->fields.sfmt_and3.f 162 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 163 const IDESC * UNUSED idesc = abuf->idesc; 164 int cycles = 0; 165 { 166 int referenced = 0; 167 int UNUSED insn_referenced = abuf->written; 168 INT in_sr = -1; 169 INT in_dr = -1; 170 INT out_dr = -1; 171 in_sr = FLD (in_sr); 172 out_dr = FLD (out_dr); 173 referenced |= 1 << 0; 174 referenced |= 1 << 2; 175 cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); 176 } 177 return cycles; 178 #undef FLD 179 } 180 181 static int 182 model_m32r_d_xor (SIM_CPU *current_cpu, void *sem_arg) 183 { 184 #define FLD(f) abuf->fields.sfmt_add.f 185 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 186 const IDESC * UNUSED idesc = abuf->idesc; 187 int cycles = 0; 188 { 189 int referenced = 0; 190 int UNUSED insn_referenced = abuf->written; 191 INT in_sr = -1; 192 INT in_dr = -1; 193 INT out_dr = -1; 194 in_sr = FLD (in_sr); 195 in_dr = FLD (in_dr); 196 out_dr = FLD (out_dr); 197 referenced |= 1 << 0; 198 referenced |= 1 << 1; 199 referenced |= 1 << 2; 200 cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); 201 } 202 return cycles; 203 #undef FLD 204 } 205 206 static int 207 model_m32r_d_xor3 (SIM_CPU *current_cpu, void *sem_arg) 208 { 209 #define FLD(f) abuf->fields.sfmt_and3.f 210 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 211 const IDESC * UNUSED idesc = abuf->idesc; 212 int cycles = 0; 213 { 214 int referenced = 0; 215 int UNUSED insn_referenced = abuf->written; 216 INT in_sr = -1; 217 INT in_dr = -1; 218 INT out_dr = -1; 219 in_sr = FLD (in_sr); 220 out_dr = FLD (out_dr); 221 referenced |= 1 << 0; 222 referenced |= 1 << 2; 223 cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); 224 } 225 return cycles; 226 #undef FLD 227 } 228 229 static int 230 model_m32r_d_addi (SIM_CPU *current_cpu, void *sem_arg) 231 { 232 #define FLD(f) abuf->fields.sfmt_addi.f 233 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 234 const IDESC * UNUSED idesc = abuf->idesc; 235 int cycles = 0; 236 { 237 int referenced = 0; 238 int UNUSED insn_referenced = abuf->written; 239 INT in_sr = -1; 240 INT in_dr = -1; 241 INT out_dr = -1; 242 in_dr = FLD (in_dr); 243 out_dr = FLD (out_dr); 244 referenced |= 1 << 1; 245 referenced |= 1 << 2; 246 cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); 247 } 248 return cycles; 249 #undef FLD 250 } 251 252 static int 253 model_m32r_d_addv (SIM_CPU *current_cpu, void *sem_arg) 254 { 255 #define FLD(f) abuf->fields.sfmt_add.f 256 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 257 const IDESC * UNUSED idesc = abuf->idesc; 258 int cycles = 0; 259 { 260 int referenced = 0; 261 int UNUSED insn_referenced = abuf->written; 262 INT in_sr = -1; 263 INT in_dr = -1; 264 INT out_dr = -1; 265 in_sr = FLD (in_sr); 266 in_dr = FLD (in_dr); 267 out_dr = FLD (out_dr); 268 referenced |= 1 << 0; 269 referenced |= 1 << 1; 270 referenced |= 1 << 2; 271 cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); 272 } 273 return cycles; 274 #undef FLD 275 } 276 277 static int 278 model_m32r_d_addv3 (SIM_CPU *current_cpu, void *sem_arg) 279 { 280 #define FLD(f) abuf->fields.sfmt_add3.f 281 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 282 const IDESC * UNUSED idesc = abuf->idesc; 283 int cycles = 0; 284 { 285 int referenced = 0; 286 int UNUSED insn_referenced = abuf->written; 287 INT in_sr = -1; 288 INT in_dr = -1; 289 INT out_dr = -1; 290 in_sr = FLD (in_sr); 291 out_dr = FLD (out_dr); 292 referenced |= 1 << 0; 293 referenced |= 1 << 2; 294 cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); 295 } 296 return cycles; 297 #undef FLD 298 } 299 300 static int 301 model_m32r_d_addx (SIM_CPU *current_cpu, void *sem_arg) 302 { 303 #define FLD(f) abuf->fields.sfmt_add.f 304 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 305 const IDESC * UNUSED idesc = abuf->idesc; 306 int cycles = 0; 307 { 308 int referenced = 0; 309 int UNUSED insn_referenced = abuf->written; 310 INT in_sr = -1; 311 INT in_dr = -1; 312 INT out_dr = -1; 313 in_sr = FLD (in_sr); 314 in_dr = FLD (in_dr); 315 out_dr = FLD (out_dr); 316 referenced |= 1 << 0; 317 referenced |= 1 << 1; 318 referenced |= 1 << 2; 319 cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); 320 } 321 return cycles; 322 #undef FLD 323 } 324 325 static int 326 model_m32r_d_bc8 (SIM_CPU *current_cpu, void *sem_arg) 327 { 328 #define FLD(f) abuf->fields.sfmt_bl8.f 329 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 330 const IDESC * UNUSED idesc = abuf->idesc; 331 int cycles = 0; 332 { 333 int referenced = 0; 334 int UNUSED insn_referenced = abuf->written; 335 INT in_sr = -1; 336 if (insn_referenced & (1 << 2)) referenced |= 1 << 1; 337 cycles += m32rbf_model_m32r_d_u_cti (current_cpu, idesc, 0, referenced, in_sr); 338 } 339 return cycles; 340 #undef FLD 341 } 342 343 static int 344 model_m32r_d_bc24 (SIM_CPU *current_cpu, void *sem_arg) 345 { 346 #define FLD(f) abuf->fields.sfmt_bl24.f 347 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 348 const IDESC * UNUSED idesc = abuf->idesc; 349 int cycles = 0; 350 { 351 int referenced = 0; 352 int UNUSED insn_referenced = abuf->written; 353 INT in_sr = -1; 354 if (insn_referenced & (1 << 2)) referenced |= 1 << 1; 355 cycles += m32rbf_model_m32r_d_u_cti (current_cpu, idesc, 0, referenced, in_sr); 356 } 357 return cycles; 358 #undef FLD 359 } 360 361 static int 362 model_m32r_d_beq (SIM_CPU *current_cpu, void *sem_arg) 363 { 364 #define FLD(f) abuf->fields.sfmt_beq.f 365 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 366 const IDESC * UNUSED idesc = abuf->idesc; 367 int cycles = 0; 368 { 369 int referenced = 0; 370 int UNUSED insn_referenced = abuf->written; 371 INT in_sr = -1; 372 if (insn_referenced & (1 << 3)) referenced |= 1 << 1; 373 cycles += m32rbf_model_m32r_d_u_cti (current_cpu, idesc, 0, referenced, in_sr); 374 } 375 { 376 int referenced = 0; 377 int UNUSED insn_referenced = abuf->written; 378 INT in_src1 = -1; 379 INT in_src2 = -1; 380 in_src1 = FLD (in_src1); 381 in_src2 = FLD (in_src2); 382 referenced |= 1 << 0; 383 referenced |= 1 << 1; 384 cycles += m32rbf_model_m32r_d_u_cmp (current_cpu, idesc, 1, referenced, in_src1, in_src2); 385 } 386 return cycles; 387 #undef FLD 388 } 389 390 static int 391 model_m32r_d_beqz (SIM_CPU *current_cpu, void *sem_arg) 392 { 393 #define FLD(f) abuf->fields.sfmt_beq.f 394 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 395 const IDESC * UNUSED idesc = abuf->idesc; 396 int cycles = 0; 397 { 398 int referenced = 0; 399 int UNUSED insn_referenced = abuf->written; 400 INT in_sr = -1; 401 if (insn_referenced & (1 << 2)) referenced |= 1 << 1; 402 cycles += m32rbf_model_m32r_d_u_cti (current_cpu, idesc, 0, referenced, in_sr); 403 } 404 { 405 int referenced = 0; 406 int UNUSED insn_referenced = abuf->written; 407 INT in_src1 = -1; 408 INT in_src2 = -1; 409 in_src2 = FLD (in_src2); 410 referenced |= 1 << 1; 411 cycles += m32rbf_model_m32r_d_u_cmp (current_cpu, idesc, 1, referenced, in_src1, in_src2); 412 } 413 return cycles; 414 #undef FLD 415 } 416 417 static int 418 model_m32r_d_bgez (SIM_CPU *current_cpu, void *sem_arg) 419 { 420 #define FLD(f) abuf->fields.sfmt_beq.f 421 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 422 const IDESC * UNUSED idesc = abuf->idesc; 423 int cycles = 0; 424 { 425 int referenced = 0; 426 int UNUSED insn_referenced = abuf->written; 427 INT in_sr = -1; 428 if (insn_referenced & (1 << 2)) referenced |= 1 << 1; 429 cycles += m32rbf_model_m32r_d_u_cti (current_cpu, idesc, 0, referenced, in_sr); 430 } 431 { 432 int referenced = 0; 433 int UNUSED insn_referenced = abuf->written; 434 INT in_src1 = -1; 435 INT in_src2 = -1; 436 in_src2 = FLD (in_src2); 437 referenced |= 1 << 1; 438 cycles += m32rbf_model_m32r_d_u_cmp (current_cpu, idesc, 1, referenced, in_src1, in_src2); 439 } 440 return cycles; 441 #undef FLD 442 } 443 444 static int 445 model_m32r_d_bgtz (SIM_CPU *current_cpu, void *sem_arg) 446 { 447 #define FLD(f) abuf->fields.sfmt_beq.f 448 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 449 const IDESC * UNUSED idesc = abuf->idesc; 450 int cycles = 0; 451 { 452 int referenced = 0; 453 int UNUSED insn_referenced = abuf->written; 454 INT in_sr = -1; 455 if (insn_referenced & (1 << 2)) referenced |= 1 << 1; 456 cycles += m32rbf_model_m32r_d_u_cti (current_cpu, idesc, 0, referenced, in_sr); 457 } 458 { 459 int referenced = 0; 460 int UNUSED insn_referenced = abuf->written; 461 INT in_src1 = -1; 462 INT in_src2 = -1; 463 in_src2 = FLD (in_src2); 464 referenced |= 1 << 1; 465 cycles += m32rbf_model_m32r_d_u_cmp (current_cpu, idesc, 1, referenced, in_src1, in_src2); 466 } 467 return cycles; 468 #undef FLD 469 } 470 471 static int 472 model_m32r_d_blez (SIM_CPU *current_cpu, void *sem_arg) 473 { 474 #define FLD(f) abuf->fields.sfmt_beq.f 475 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 476 const IDESC * UNUSED idesc = abuf->idesc; 477 int cycles = 0; 478 { 479 int referenced = 0; 480 int UNUSED insn_referenced = abuf->written; 481 INT in_sr = -1; 482 if (insn_referenced & (1 << 2)) referenced |= 1 << 1; 483 cycles += m32rbf_model_m32r_d_u_cti (current_cpu, idesc, 0, referenced, in_sr); 484 } 485 { 486 int referenced = 0; 487 int UNUSED insn_referenced = abuf->written; 488 INT in_src1 = -1; 489 INT in_src2 = -1; 490 in_src2 = FLD (in_src2); 491 referenced |= 1 << 1; 492 cycles += m32rbf_model_m32r_d_u_cmp (current_cpu, idesc, 1, referenced, in_src1, in_src2); 493 } 494 return cycles; 495 #undef FLD 496 } 497 498 static int 499 model_m32r_d_bltz (SIM_CPU *current_cpu, void *sem_arg) 500 { 501 #define FLD(f) abuf->fields.sfmt_beq.f 502 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 503 const IDESC * UNUSED idesc = abuf->idesc; 504 int cycles = 0; 505 { 506 int referenced = 0; 507 int UNUSED insn_referenced = abuf->written; 508 INT in_sr = -1; 509 if (insn_referenced & (1 << 2)) referenced |= 1 << 1; 510 cycles += m32rbf_model_m32r_d_u_cti (current_cpu, idesc, 0, referenced, in_sr); 511 } 512 { 513 int referenced = 0; 514 int UNUSED insn_referenced = abuf->written; 515 INT in_src1 = -1; 516 INT in_src2 = -1; 517 in_src2 = FLD (in_src2); 518 referenced |= 1 << 1; 519 cycles += m32rbf_model_m32r_d_u_cmp (current_cpu, idesc, 1, referenced, in_src1, in_src2); 520 } 521 return cycles; 522 #undef FLD 523 } 524 525 static int 526 model_m32r_d_bnez (SIM_CPU *current_cpu, void *sem_arg) 527 { 528 #define FLD(f) abuf->fields.sfmt_beq.f 529 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 530 const IDESC * UNUSED idesc = abuf->idesc; 531 int cycles = 0; 532 { 533 int referenced = 0; 534 int UNUSED insn_referenced = abuf->written; 535 INT in_sr = -1; 536 if (insn_referenced & (1 << 2)) referenced |= 1 << 1; 537 cycles += m32rbf_model_m32r_d_u_cti (current_cpu, idesc, 0, referenced, in_sr); 538 } 539 { 540 int referenced = 0; 541 int UNUSED insn_referenced = abuf->written; 542 INT in_src1 = -1; 543 INT in_src2 = -1; 544 in_src2 = FLD (in_src2); 545 referenced |= 1 << 1; 546 cycles += m32rbf_model_m32r_d_u_cmp (current_cpu, idesc, 1, referenced, in_src1, in_src2); 547 } 548 return cycles; 549 #undef FLD 550 } 551 552 static int 553 model_m32r_d_bl8 (SIM_CPU *current_cpu, void *sem_arg) 554 { 555 #define FLD(f) abuf->fields.sfmt_bl8.f 556 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 557 const IDESC * UNUSED idesc = abuf->idesc; 558 int cycles = 0; 559 { 560 int referenced = 0; 561 int UNUSED insn_referenced = abuf->written; 562 INT in_sr = -1; 563 referenced |= 1 << 1; 564 cycles += m32rbf_model_m32r_d_u_cti (current_cpu, idesc, 0, referenced, in_sr); 565 } 566 return cycles; 567 #undef FLD 568 } 569 570 static int 571 model_m32r_d_bl24 (SIM_CPU *current_cpu, void *sem_arg) 572 { 573 #define FLD(f) abuf->fields.sfmt_bl24.f 574 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 575 const IDESC * UNUSED idesc = abuf->idesc; 576 int cycles = 0; 577 { 578 int referenced = 0; 579 int UNUSED insn_referenced = abuf->written; 580 INT in_sr = -1; 581 referenced |= 1 << 1; 582 cycles += m32rbf_model_m32r_d_u_cti (current_cpu, idesc, 0, referenced, in_sr); 583 } 584 return cycles; 585 #undef FLD 586 } 587 588 static int 589 model_m32r_d_bnc8 (SIM_CPU *current_cpu, void *sem_arg) 590 { 591 #define FLD(f) abuf->fields.sfmt_bl8.f 592 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 593 const IDESC * UNUSED idesc = abuf->idesc; 594 int cycles = 0; 595 { 596 int referenced = 0; 597 int UNUSED insn_referenced = abuf->written; 598 INT in_sr = -1; 599 if (insn_referenced & (1 << 2)) referenced |= 1 << 1; 600 cycles += m32rbf_model_m32r_d_u_cti (current_cpu, idesc, 0, referenced, in_sr); 601 } 602 return cycles; 603 #undef FLD 604 } 605 606 static int 607 model_m32r_d_bnc24 (SIM_CPU *current_cpu, void *sem_arg) 608 { 609 #define FLD(f) abuf->fields.sfmt_bl24.f 610 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 611 const IDESC * UNUSED idesc = abuf->idesc; 612 int cycles = 0; 613 { 614 int referenced = 0; 615 int UNUSED insn_referenced = abuf->written; 616 INT in_sr = -1; 617 if (insn_referenced & (1 << 2)) referenced |= 1 << 1; 618 cycles += m32rbf_model_m32r_d_u_cti (current_cpu, idesc, 0, referenced, in_sr); 619 } 620 return cycles; 621 #undef FLD 622 } 623 624 static int 625 model_m32r_d_bne (SIM_CPU *current_cpu, void *sem_arg) 626 { 627 #define FLD(f) abuf->fields.sfmt_beq.f 628 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 629 const IDESC * UNUSED idesc = abuf->idesc; 630 int cycles = 0; 631 { 632 int referenced = 0; 633 int UNUSED insn_referenced = abuf->written; 634 INT in_sr = -1; 635 if (insn_referenced & (1 << 3)) referenced |= 1 << 1; 636 cycles += m32rbf_model_m32r_d_u_cti (current_cpu, idesc, 0, referenced, in_sr); 637 } 638 { 639 int referenced = 0; 640 int UNUSED insn_referenced = abuf->written; 641 INT in_src1 = -1; 642 INT in_src2 = -1; 643 in_src1 = FLD (in_src1); 644 in_src2 = FLD (in_src2); 645 referenced |= 1 << 0; 646 referenced |= 1 << 1; 647 cycles += m32rbf_model_m32r_d_u_cmp (current_cpu, idesc, 1, referenced, in_src1, in_src2); 648 } 649 return cycles; 650 #undef FLD 651 } 652 653 static int 654 model_m32r_d_bra8 (SIM_CPU *current_cpu, void *sem_arg) 655 { 656 #define FLD(f) abuf->fields.sfmt_bl8.f 657 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 658 const IDESC * UNUSED idesc = abuf->idesc; 659 int cycles = 0; 660 { 661 int referenced = 0; 662 int UNUSED insn_referenced = abuf->written; 663 INT in_sr = -1; 664 referenced |= 1 << 1; 665 cycles += m32rbf_model_m32r_d_u_cti (current_cpu, idesc, 0, referenced, in_sr); 666 } 667 return cycles; 668 #undef FLD 669 } 670 671 static int 672 model_m32r_d_bra24 (SIM_CPU *current_cpu, void *sem_arg) 673 { 674 #define FLD(f) abuf->fields.sfmt_bl24.f 675 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 676 const IDESC * UNUSED idesc = abuf->idesc; 677 int cycles = 0; 678 { 679 int referenced = 0; 680 int UNUSED insn_referenced = abuf->written; 681 INT in_sr = -1; 682 referenced |= 1 << 1; 683 cycles += m32rbf_model_m32r_d_u_cti (current_cpu, idesc, 0, referenced, in_sr); 684 } 685 return cycles; 686 #undef FLD 687 } 688 689 static int 690 model_m32r_d_cmp (SIM_CPU *current_cpu, void *sem_arg) 691 { 692 #define FLD(f) abuf->fields.sfmt_st_plus.f 693 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 694 const IDESC * UNUSED idesc = abuf->idesc; 695 int cycles = 0; 696 { 697 int referenced = 0; 698 int UNUSED insn_referenced = abuf->written; 699 INT in_src1 = -1; 700 INT in_src2 = -1; 701 in_src1 = FLD (in_src1); 702 in_src2 = FLD (in_src2); 703 referenced |= 1 << 0; 704 referenced |= 1 << 1; 705 cycles += m32rbf_model_m32r_d_u_cmp (current_cpu, idesc, 0, referenced, in_src1, in_src2); 706 } 707 return cycles; 708 #undef FLD 709 } 710 711 static int 712 model_m32r_d_cmpi (SIM_CPU *current_cpu, void *sem_arg) 713 { 714 #define FLD(f) abuf->fields.sfmt_st_d.f 715 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 716 const IDESC * UNUSED idesc = abuf->idesc; 717 int cycles = 0; 718 { 719 int referenced = 0; 720 int UNUSED insn_referenced = abuf->written; 721 INT in_src1 = -1; 722 INT in_src2 = -1; 723 in_src2 = FLD (in_src2); 724 referenced |= 1 << 1; 725 cycles += m32rbf_model_m32r_d_u_cmp (current_cpu, idesc, 0, referenced, in_src1, in_src2); 726 } 727 return cycles; 728 #undef FLD 729 } 730 731 static int 732 model_m32r_d_cmpu (SIM_CPU *current_cpu, void *sem_arg) 733 { 734 #define FLD(f) abuf->fields.sfmt_st_plus.f 735 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 736 const IDESC * UNUSED idesc = abuf->idesc; 737 int cycles = 0; 738 { 739 int referenced = 0; 740 int UNUSED insn_referenced = abuf->written; 741 INT in_src1 = -1; 742 INT in_src2 = -1; 743 in_src1 = FLD (in_src1); 744 in_src2 = FLD (in_src2); 745 referenced |= 1 << 0; 746 referenced |= 1 << 1; 747 cycles += m32rbf_model_m32r_d_u_cmp (current_cpu, idesc, 0, referenced, in_src1, in_src2); 748 } 749 return cycles; 750 #undef FLD 751 } 752 753 static int 754 model_m32r_d_cmpui (SIM_CPU *current_cpu, void *sem_arg) 755 { 756 #define FLD(f) abuf->fields.sfmt_st_d.f 757 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 758 const IDESC * UNUSED idesc = abuf->idesc; 759 int cycles = 0; 760 { 761 int referenced = 0; 762 int UNUSED insn_referenced = abuf->written; 763 INT in_src1 = -1; 764 INT in_src2 = -1; 765 in_src2 = FLD (in_src2); 766 referenced |= 1 << 1; 767 cycles += m32rbf_model_m32r_d_u_cmp (current_cpu, idesc, 0, referenced, in_src1, in_src2); 768 } 769 return cycles; 770 #undef FLD 771 } 772 773 static int 774 model_m32r_d_div (SIM_CPU *current_cpu, void *sem_arg) 775 { 776 #define FLD(f) abuf->fields.sfmt_add.f 777 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 778 const IDESC * UNUSED idesc = abuf->idesc; 779 int cycles = 0; 780 { 781 int referenced = 0; 782 int UNUSED insn_referenced = abuf->written; 783 INT in_sr = -1; 784 INT in_dr = -1; 785 INT out_dr = -1; 786 in_sr = FLD (in_sr); 787 in_dr = FLD (in_dr); 788 out_dr = FLD (out_dr); 789 referenced |= 1 << 0; 790 if (insn_referenced & (1 << 0)) referenced |= 1 << 1; 791 if (insn_referenced & (1 << 2)) referenced |= 1 << 2; 792 cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); 793 } 794 return cycles; 795 #undef FLD 796 } 797 798 static int 799 model_m32r_d_divu (SIM_CPU *current_cpu, void *sem_arg) 800 { 801 #define FLD(f) abuf->fields.sfmt_add.f 802 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 803 const IDESC * UNUSED idesc = abuf->idesc; 804 int cycles = 0; 805 { 806 int referenced = 0; 807 int UNUSED insn_referenced = abuf->written; 808 INT in_sr = -1; 809 INT in_dr = -1; 810 INT out_dr = -1; 811 in_sr = FLD (in_sr); 812 in_dr = FLD (in_dr); 813 out_dr = FLD (out_dr); 814 referenced |= 1 << 0; 815 if (insn_referenced & (1 << 0)) referenced |= 1 << 1; 816 if (insn_referenced & (1 << 2)) referenced |= 1 << 2; 817 cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); 818 } 819 return cycles; 820 #undef FLD 821 } 822 823 static int 824 model_m32r_d_rem (SIM_CPU *current_cpu, void *sem_arg) 825 { 826 #define FLD(f) abuf->fields.sfmt_add.f 827 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 828 const IDESC * UNUSED idesc = abuf->idesc; 829 int cycles = 0; 830 { 831 int referenced = 0; 832 int UNUSED insn_referenced = abuf->written; 833 INT in_sr = -1; 834 INT in_dr = -1; 835 INT out_dr = -1; 836 in_sr = FLD (in_sr); 837 in_dr = FLD (in_dr); 838 out_dr = FLD (out_dr); 839 referenced |= 1 << 0; 840 if (insn_referenced & (1 << 0)) referenced |= 1 << 1; 841 if (insn_referenced & (1 << 2)) referenced |= 1 << 2; 842 cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); 843 } 844 return cycles; 845 #undef FLD 846 } 847 848 static int 849 model_m32r_d_remu (SIM_CPU *current_cpu, void *sem_arg) 850 { 851 #define FLD(f) abuf->fields.sfmt_add.f 852 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 853 const IDESC * UNUSED idesc = abuf->idesc; 854 int cycles = 0; 855 { 856 int referenced = 0; 857 int UNUSED insn_referenced = abuf->written; 858 INT in_sr = -1; 859 INT in_dr = -1; 860 INT out_dr = -1; 861 in_sr = FLD (in_sr); 862 in_dr = FLD (in_dr); 863 out_dr = FLD (out_dr); 864 referenced |= 1 << 0; 865 if (insn_referenced & (1 << 0)) referenced |= 1 << 1; 866 if (insn_referenced & (1 << 2)) referenced |= 1 << 2; 867 cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); 868 } 869 return cycles; 870 #undef FLD 871 } 872 873 static int 874 model_m32r_d_jl (SIM_CPU *current_cpu, void *sem_arg) 875 { 876 #define FLD(f) abuf->fields.sfmt_jl.f 877 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 878 const IDESC * UNUSED idesc = abuf->idesc; 879 int cycles = 0; 880 { 881 int referenced = 0; 882 int UNUSED insn_referenced = abuf->written; 883 INT in_sr = -1; 884 in_sr = FLD (in_sr); 885 referenced |= 1 << 0; 886 referenced |= 1 << 1; 887 cycles += m32rbf_model_m32r_d_u_cti (current_cpu, idesc, 0, referenced, in_sr); 888 } 889 return cycles; 890 #undef FLD 891 } 892 893 static int 894 model_m32r_d_jmp (SIM_CPU *current_cpu, void *sem_arg) 895 { 896 #define FLD(f) abuf->fields.sfmt_jl.f 897 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 898 const IDESC * UNUSED idesc = abuf->idesc; 899 int cycles = 0; 900 { 901 int referenced = 0; 902 int UNUSED insn_referenced = abuf->written; 903 INT in_sr = -1; 904 in_sr = FLD (in_sr); 905 referenced |= 1 << 0; 906 referenced |= 1 << 1; 907 cycles += m32rbf_model_m32r_d_u_cti (current_cpu, idesc, 0, referenced, in_sr); 908 } 909 return cycles; 910 #undef FLD 911 } 912 913 static int 914 model_m32r_d_ld (SIM_CPU *current_cpu, void *sem_arg) 915 { 916 #define FLD(f) abuf->fields.sfmt_ld_plus.f 917 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 918 const IDESC * UNUSED idesc = abuf->idesc; 919 int cycles = 0; 920 { 921 int referenced = 0; 922 int UNUSED insn_referenced = abuf->written; 923 INT in_sr = 0; 924 INT out_dr = 0; 925 in_sr = FLD (in_sr); 926 out_dr = FLD (out_dr); 927 referenced |= 1 << 0; 928 referenced |= 1 << 1; 929 cycles += m32rbf_model_m32r_d_u_load (current_cpu, idesc, 0, referenced, in_sr, out_dr); 930 } 931 return cycles; 932 #undef FLD 933 } 934 935 static int 936 model_m32r_d_ld_d (SIM_CPU *current_cpu, void *sem_arg) 937 { 938 #define FLD(f) abuf->fields.sfmt_add3.f 939 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 940 const IDESC * UNUSED idesc = abuf->idesc; 941 int cycles = 0; 942 { 943 int referenced = 0; 944 int UNUSED insn_referenced = abuf->written; 945 INT in_sr = 0; 946 INT out_dr = 0; 947 in_sr = FLD (in_sr); 948 out_dr = FLD (out_dr); 949 referenced |= 1 << 0; 950 referenced |= 1 << 1; 951 cycles += m32rbf_model_m32r_d_u_load (current_cpu, idesc, 0, referenced, in_sr, out_dr); 952 } 953 return cycles; 954 #undef FLD 955 } 956 957 static int 958 model_m32r_d_ldb (SIM_CPU *current_cpu, void *sem_arg) 959 { 960 #define FLD(f) abuf->fields.sfmt_ld_plus.f 961 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 962 const IDESC * UNUSED idesc = abuf->idesc; 963 int cycles = 0; 964 { 965 int referenced = 0; 966 int UNUSED insn_referenced = abuf->written; 967 INT in_sr = 0; 968 INT out_dr = 0; 969 in_sr = FLD (in_sr); 970 out_dr = FLD (out_dr); 971 referenced |= 1 << 0; 972 referenced |= 1 << 1; 973 cycles += m32rbf_model_m32r_d_u_load (current_cpu, idesc, 0, referenced, in_sr, out_dr); 974 } 975 return cycles; 976 #undef FLD 977 } 978 979 static int 980 model_m32r_d_ldb_d (SIM_CPU *current_cpu, void *sem_arg) 981 { 982 #define FLD(f) abuf->fields.sfmt_add3.f 983 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 984 const IDESC * UNUSED idesc = abuf->idesc; 985 int cycles = 0; 986 { 987 int referenced = 0; 988 int UNUSED insn_referenced = abuf->written; 989 INT in_sr = 0; 990 INT out_dr = 0; 991 in_sr = FLD (in_sr); 992 out_dr = FLD (out_dr); 993 referenced |= 1 << 0; 994 referenced |= 1 << 1; 995 cycles += m32rbf_model_m32r_d_u_load (current_cpu, idesc, 0, referenced, in_sr, out_dr); 996 } 997 return cycles; 998 #undef FLD 999 } 1000 1001 static int 1002 model_m32r_d_ldh (SIM_CPU *current_cpu, void *sem_arg) 1003 { 1004 #define FLD(f) abuf->fields.sfmt_ld_plus.f 1005 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1006 const IDESC * UNUSED idesc = abuf->idesc; 1007 int cycles = 0; 1008 { 1009 int referenced = 0; 1010 int UNUSED insn_referenced = abuf->written; 1011 INT in_sr = 0; 1012 INT out_dr = 0; 1013 in_sr = FLD (in_sr); 1014 out_dr = FLD (out_dr); 1015 referenced |= 1 << 0; 1016 referenced |= 1 << 1; 1017 cycles += m32rbf_model_m32r_d_u_load (current_cpu, idesc, 0, referenced, in_sr, out_dr); 1018 } 1019 return cycles; 1020 #undef FLD 1021 } 1022 1023 static int 1024 model_m32r_d_ldh_d (SIM_CPU *current_cpu, void *sem_arg) 1025 { 1026 #define FLD(f) abuf->fields.sfmt_add3.f 1027 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1028 const IDESC * UNUSED idesc = abuf->idesc; 1029 int cycles = 0; 1030 { 1031 int referenced = 0; 1032 int UNUSED insn_referenced = abuf->written; 1033 INT in_sr = 0; 1034 INT out_dr = 0; 1035 in_sr = FLD (in_sr); 1036 out_dr = FLD (out_dr); 1037 referenced |= 1 << 0; 1038 referenced |= 1 << 1; 1039 cycles += m32rbf_model_m32r_d_u_load (current_cpu, idesc, 0, referenced, in_sr, out_dr); 1040 } 1041 return cycles; 1042 #undef FLD 1043 } 1044 1045 static int 1046 model_m32r_d_ldub (SIM_CPU *current_cpu, void *sem_arg) 1047 { 1048 #define FLD(f) abuf->fields.sfmt_ld_plus.f 1049 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1050 const IDESC * UNUSED idesc = abuf->idesc; 1051 int cycles = 0; 1052 { 1053 int referenced = 0; 1054 int UNUSED insn_referenced = abuf->written; 1055 INT in_sr = 0; 1056 INT out_dr = 0; 1057 in_sr = FLD (in_sr); 1058 out_dr = FLD (out_dr); 1059 referenced |= 1 << 0; 1060 referenced |= 1 << 1; 1061 cycles += m32rbf_model_m32r_d_u_load (current_cpu, idesc, 0, referenced, in_sr, out_dr); 1062 } 1063 return cycles; 1064 #undef FLD 1065 } 1066 1067 static int 1068 model_m32r_d_ldub_d (SIM_CPU *current_cpu, void *sem_arg) 1069 { 1070 #define FLD(f) abuf->fields.sfmt_add3.f 1071 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1072 const IDESC * UNUSED idesc = abuf->idesc; 1073 int cycles = 0; 1074 { 1075 int referenced = 0; 1076 int UNUSED insn_referenced = abuf->written; 1077 INT in_sr = 0; 1078 INT out_dr = 0; 1079 in_sr = FLD (in_sr); 1080 out_dr = FLD (out_dr); 1081 referenced |= 1 << 0; 1082 referenced |= 1 << 1; 1083 cycles += m32rbf_model_m32r_d_u_load (current_cpu, idesc, 0, referenced, in_sr, out_dr); 1084 } 1085 return cycles; 1086 #undef FLD 1087 } 1088 1089 static int 1090 model_m32r_d_lduh (SIM_CPU *current_cpu, void *sem_arg) 1091 { 1092 #define FLD(f) abuf->fields.sfmt_ld_plus.f 1093 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1094 const IDESC * UNUSED idesc = abuf->idesc; 1095 int cycles = 0; 1096 { 1097 int referenced = 0; 1098 int UNUSED insn_referenced = abuf->written; 1099 INT in_sr = 0; 1100 INT out_dr = 0; 1101 in_sr = FLD (in_sr); 1102 out_dr = FLD (out_dr); 1103 referenced |= 1 << 0; 1104 referenced |= 1 << 1; 1105 cycles += m32rbf_model_m32r_d_u_load (current_cpu, idesc, 0, referenced, in_sr, out_dr); 1106 } 1107 return cycles; 1108 #undef FLD 1109 } 1110 1111 static int 1112 model_m32r_d_lduh_d (SIM_CPU *current_cpu, void *sem_arg) 1113 { 1114 #define FLD(f) abuf->fields.sfmt_add3.f 1115 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1116 const IDESC * UNUSED idesc = abuf->idesc; 1117 int cycles = 0; 1118 { 1119 int referenced = 0; 1120 int UNUSED insn_referenced = abuf->written; 1121 INT in_sr = 0; 1122 INT out_dr = 0; 1123 in_sr = FLD (in_sr); 1124 out_dr = FLD (out_dr); 1125 referenced |= 1 << 0; 1126 referenced |= 1 << 1; 1127 cycles += m32rbf_model_m32r_d_u_load (current_cpu, idesc, 0, referenced, in_sr, out_dr); 1128 } 1129 return cycles; 1130 #undef FLD 1131 } 1132 1133 static int 1134 model_m32r_d_ld_plus (SIM_CPU *current_cpu, void *sem_arg) 1135 { 1136 #define FLD(f) abuf->fields.sfmt_ld_plus.f 1137 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1138 const IDESC * UNUSED idesc = abuf->idesc; 1139 int cycles = 0; 1140 { 1141 int referenced = 0; 1142 int UNUSED insn_referenced = abuf->written; 1143 INT in_sr = 0; 1144 INT out_dr = 0; 1145 in_sr = FLD (in_sr); 1146 out_dr = FLD (out_dr); 1147 referenced |= 1 << 0; 1148 referenced |= 1 << 1; 1149 cycles += m32rbf_model_m32r_d_u_load (current_cpu, idesc, 0, referenced, in_sr, out_dr); 1150 } 1151 { 1152 int referenced = 0; 1153 int UNUSED insn_referenced = abuf->written; 1154 INT in_sr = -1; 1155 INT in_dr = -1; 1156 INT out_dr = -1; 1157 in_dr = FLD (in_sr); 1158 out_dr = FLD (out_sr); 1159 referenced |= 1 << 0; 1160 referenced |= 1 << 2; 1161 cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 1, referenced, in_sr, in_dr, out_dr); 1162 } 1163 return cycles; 1164 #undef FLD 1165 } 1166 1167 static int 1168 model_m32r_d_ld24 (SIM_CPU *current_cpu, void *sem_arg) 1169 { 1170 #define FLD(f) abuf->fields.sfmt_ld24.f 1171 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1172 const IDESC * UNUSED idesc = abuf->idesc; 1173 int cycles = 0; 1174 { 1175 int referenced = 0; 1176 int UNUSED insn_referenced = abuf->written; 1177 INT in_sr = -1; 1178 INT in_dr = -1; 1179 INT out_dr = -1; 1180 out_dr = FLD (out_dr); 1181 referenced |= 1 << 2; 1182 cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); 1183 } 1184 return cycles; 1185 #undef FLD 1186 } 1187 1188 static int 1189 model_m32r_d_ldi8 (SIM_CPU *current_cpu, void *sem_arg) 1190 { 1191 #define FLD(f) abuf->fields.sfmt_addi.f 1192 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1193 const IDESC * UNUSED idesc = abuf->idesc; 1194 int cycles = 0; 1195 { 1196 int referenced = 0; 1197 int UNUSED insn_referenced = abuf->written; 1198 INT in_sr = -1; 1199 INT in_dr = -1; 1200 INT out_dr = -1; 1201 out_dr = FLD (out_dr); 1202 referenced |= 1 << 2; 1203 cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); 1204 } 1205 return cycles; 1206 #undef FLD 1207 } 1208 1209 static int 1210 model_m32r_d_ldi16 (SIM_CPU *current_cpu, void *sem_arg) 1211 { 1212 #define FLD(f) abuf->fields.sfmt_add3.f 1213 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1214 const IDESC * UNUSED idesc = abuf->idesc; 1215 int cycles = 0; 1216 { 1217 int referenced = 0; 1218 int UNUSED insn_referenced = abuf->written; 1219 INT in_sr = -1; 1220 INT in_dr = -1; 1221 INT out_dr = -1; 1222 out_dr = FLD (out_dr); 1223 referenced |= 1 << 2; 1224 cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); 1225 } 1226 return cycles; 1227 #undef FLD 1228 } 1229 1230 static int 1231 model_m32r_d_lock (SIM_CPU *current_cpu, void *sem_arg) 1232 { 1233 #define FLD(f) abuf->fields.sfmt_ld_plus.f 1234 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1235 const IDESC * UNUSED idesc = abuf->idesc; 1236 int cycles = 0; 1237 { 1238 int referenced = 0; 1239 int UNUSED insn_referenced = abuf->written; 1240 INT in_sr = 0; 1241 INT out_dr = 0; 1242 in_sr = FLD (in_sr); 1243 out_dr = FLD (out_dr); 1244 referenced |= 1 << 0; 1245 referenced |= 1 << 1; 1246 cycles += m32rbf_model_m32r_d_u_load (current_cpu, idesc, 0, referenced, in_sr, out_dr); 1247 } 1248 return cycles; 1249 #undef FLD 1250 } 1251 1252 static int 1253 model_m32r_d_machi (SIM_CPU *current_cpu, void *sem_arg) 1254 { 1255 #define FLD(f) abuf->fields.sfmt_st_plus.f 1256 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1257 const IDESC * UNUSED idesc = abuf->idesc; 1258 int cycles = 0; 1259 { 1260 int referenced = 0; 1261 int UNUSED insn_referenced = abuf->written; 1262 INT in_src1 = -1; 1263 INT in_src2 = -1; 1264 in_src1 = FLD (in_src1); 1265 in_src2 = FLD (in_src2); 1266 referenced |= 1 << 0; 1267 referenced |= 1 << 1; 1268 cycles += m32rbf_model_m32r_d_u_mac (current_cpu, idesc, 0, referenced, in_src1, in_src2); 1269 } 1270 return cycles; 1271 #undef FLD 1272 } 1273 1274 static int 1275 model_m32r_d_maclo (SIM_CPU *current_cpu, void *sem_arg) 1276 { 1277 #define FLD(f) abuf->fields.sfmt_st_plus.f 1278 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1279 const IDESC * UNUSED idesc = abuf->idesc; 1280 int cycles = 0; 1281 { 1282 int referenced = 0; 1283 int UNUSED insn_referenced = abuf->written; 1284 INT in_src1 = -1; 1285 INT in_src2 = -1; 1286 in_src1 = FLD (in_src1); 1287 in_src2 = FLD (in_src2); 1288 referenced |= 1 << 0; 1289 referenced |= 1 << 1; 1290 cycles += m32rbf_model_m32r_d_u_mac (current_cpu, idesc, 0, referenced, in_src1, in_src2); 1291 } 1292 return cycles; 1293 #undef FLD 1294 } 1295 1296 static int 1297 model_m32r_d_macwhi (SIM_CPU *current_cpu, void *sem_arg) 1298 { 1299 #define FLD(f) abuf->fields.sfmt_st_plus.f 1300 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1301 const IDESC * UNUSED idesc = abuf->idesc; 1302 int cycles = 0; 1303 { 1304 int referenced = 0; 1305 int UNUSED insn_referenced = abuf->written; 1306 INT in_src1 = -1; 1307 INT in_src2 = -1; 1308 in_src1 = FLD (in_src1); 1309 in_src2 = FLD (in_src2); 1310 referenced |= 1 << 0; 1311 referenced |= 1 << 1; 1312 cycles += m32rbf_model_m32r_d_u_mac (current_cpu, idesc, 0, referenced, in_src1, in_src2); 1313 } 1314 return cycles; 1315 #undef FLD 1316 } 1317 1318 static int 1319 model_m32r_d_macwlo (SIM_CPU *current_cpu, void *sem_arg) 1320 { 1321 #define FLD(f) abuf->fields.sfmt_st_plus.f 1322 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1323 const IDESC * UNUSED idesc = abuf->idesc; 1324 int cycles = 0; 1325 { 1326 int referenced = 0; 1327 int UNUSED insn_referenced = abuf->written; 1328 INT in_src1 = -1; 1329 INT in_src2 = -1; 1330 in_src1 = FLD (in_src1); 1331 in_src2 = FLD (in_src2); 1332 referenced |= 1 << 0; 1333 referenced |= 1 << 1; 1334 cycles += m32rbf_model_m32r_d_u_mac (current_cpu, idesc, 0, referenced, in_src1, in_src2); 1335 } 1336 return cycles; 1337 #undef FLD 1338 } 1339 1340 static int 1341 model_m32r_d_mul (SIM_CPU *current_cpu, void *sem_arg) 1342 { 1343 #define FLD(f) abuf->fields.sfmt_add.f 1344 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1345 const IDESC * UNUSED idesc = abuf->idesc; 1346 int cycles = 0; 1347 { 1348 int referenced = 0; 1349 int UNUSED insn_referenced = abuf->written; 1350 INT in_sr = -1; 1351 INT in_dr = -1; 1352 INT out_dr = -1; 1353 in_sr = FLD (in_sr); 1354 in_dr = FLD (in_dr); 1355 out_dr = FLD (out_dr); 1356 referenced |= 1 << 0; 1357 referenced |= 1 << 1; 1358 referenced |= 1 << 2; 1359 cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); 1360 } 1361 return cycles; 1362 #undef FLD 1363 } 1364 1365 static int 1366 model_m32r_d_mulhi (SIM_CPU *current_cpu, void *sem_arg) 1367 { 1368 #define FLD(f) abuf->fields.sfmt_st_plus.f 1369 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1370 const IDESC * UNUSED idesc = abuf->idesc; 1371 int cycles = 0; 1372 { 1373 int referenced = 0; 1374 int UNUSED insn_referenced = abuf->written; 1375 INT in_src1 = -1; 1376 INT in_src2 = -1; 1377 in_src1 = FLD (in_src1); 1378 in_src2 = FLD (in_src2); 1379 referenced |= 1 << 0; 1380 referenced |= 1 << 1; 1381 cycles += m32rbf_model_m32r_d_u_mac (current_cpu, idesc, 0, referenced, in_src1, in_src2); 1382 } 1383 return cycles; 1384 #undef FLD 1385 } 1386 1387 static int 1388 model_m32r_d_mullo (SIM_CPU *current_cpu, void *sem_arg) 1389 { 1390 #define FLD(f) abuf->fields.sfmt_st_plus.f 1391 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1392 const IDESC * UNUSED idesc = abuf->idesc; 1393 int cycles = 0; 1394 { 1395 int referenced = 0; 1396 int UNUSED insn_referenced = abuf->written; 1397 INT in_src1 = -1; 1398 INT in_src2 = -1; 1399 in_src1 = FLD (in_src1); 1400 in_src2 = FLD (in_src2); 1401 referenced |= 1 << 0; 1402 referenced |= 1 << 1; 1403 cycles += m32rbf_model_m32r_d_u_mac (current_cpu, idesc, 0, referenced, in_src1, in_src2); 1404 } 1405 return cycles; 1406 #undef FLD 1407 } 1408 1409 static int 1410 model_m32r_d_mulwhi (SIM_CPU *current_cpu, void *sem_arg) 1411 { 1412 #define FLD(f) abuf->fields.sfmt_st_plus.f 1413 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1414 const IDESC * UNUSED idesc = abuf->idesc; 1415 int cycles = 0; 1416 { 1417 int referenced = 0; 1418 int UNUSED insn_referenced = abuf->written; 1419 INT in_src1 = -1; 1420 INT in_src2 = -1; 1421 in_src1 = FLD (in_src1); 1422 in_src2 = FLD (in_src2); 1423 referenced |= 1 << 0; 1424 referenced |= 1 << 1; 1425 cycles += m32rbf_model_m32r_d_u_mac (current_cpu, idesc, 0, referenced, in_src1, in_src2); 1426 } 1427 return cycles; 1428 #undef FLD 1429 } 1430 1431 static int 1432 model_m32r_d_mulwlo (SIM_CPU *current_cpu, void *sem_arg) 1433 { 1434 #define FLD(f) abuf->fields.sfmt_st_plus.f 1435 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1436 const IDESC * UNUSED idesc = abuf->idesc; 1437 int cycles = 0; 1438 { 1439 int referenced = 0; 1440 int UNUSED insn_referenced = abuf->written; 1441 INT in_src1 = -1; 1442 INT in_src2 = -1; 1443 in_src1 = FLD (in_src1); 1444 in_src2 = FLD (in_src2); 1445 referenced |= 1 << 0; 1446 referenced |= 1 << 1; 1447 cycles += m32rbf_model_m32r_d_u_mac (current_cpu, idesc, 0, referenced, in_src1, in_src2); 1448 } 1449 return cycles; 1450 #undef FLD 1451 } 1452 1453 static int 1454 model_m32r_d_mv (SIM_CPU *current_cpu, void *sem_arg) 1455 { 1456 #define FLD(f) abuf->fields.sfmt_ld_plus.f 1457 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1458 const IDESC * UNUSED idesc = abuf->idesc; 1459 int cycles = 0; 1460 { 1461 int referenced = 0; 1462 int UNUSED insn_referenced = abuf->written; 1463 INT in_sr = -1; 1464 INT in_dr = -1; 1465 INT out_dr = -1; 1466 in_sr = FLD (in_sr); 1467 out_dr = FLD (out_dr); 1468 referenced |= 1 << 0; 1469 referenced |= 1 << 2; 1470 cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); 1471 } 1472 return cycles; 1473 #undef FLD 1474 } 1475 1476 static int 1477 model_m32r_d_mvfachi (SIM_CPU *current_cpu, void *sem_arg) 1478 { 1479 #define FLD(f) abuf->fields.sfmt_seth.f 1480 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1481 const IDESC * UNUSED idesc = abuf->idesc; 1482 int cycles = 0; 1483 { 1484 int referenced = 0; 1485 int UNUSED insn_referenced = abuf->written; 1486 INT in_sr = -1; 1487 INT in_dr = -1; 1488 INT out_dr = -1; 1489 out_dr = FLD (out_dr); 1490 referenced |= 1 << 2; 1491 cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); 1492 } 1493 return cycles; 1494 #undef FLD 1495 } 1496 1497 static int 1498 model_m32r_d_mvfaclo (SIM_CPU *current_cpu, void *sem_arg) 1499 { 1500 #define FLD(f) abuf->fields.sfmt_seth.f 1501 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1502 const IDESC * UNUSED idesc = abuf->idesc; 1503 int cycles = 0; 1504 { 1505 int referenced = 0; 1506 int UNUSED insn_referenced = abuf->written; 1507 INT in_sr = -1; 1508 INT in_dr = -1; 1509 INT out_dr = -1; 1510 out_dr = FLD (out_dr); 1511 referenced |= 1 << 2; 1512 cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); 1513 } 1514 return cycles; 1515 #undef FLD 1516 } 1517 1518 static int 1519 model_m32r_d_mvfacmi (SIM_CPU *current_cpu, void *sem_arg) 1520 { 1521 #define FLD(f) abuf->fields.sfmt_seth.f 1522 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1523 const IDESC * UNUSED idesc = abuf->idesc; 1524 int cycles = 0; 1525 { 1526 int referenced = 0; 1527 int UNUSED insn_referenced = abuf->written; 1528 INT in_sr = -1; 1529 INT in_dr = -1; 1530 INT out_dr = -1; 1531 out_dr = FLD (out_dr); 1532 referenced |= 1 << 2; 1533 cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); 1534 } 1535 return cycles; 1536 #undef FLD 1537 } 1538 1539 static int 1540 model_m32r_d_mvfc (SIM_CPU *current_cpu, void *sem_arg) 1541 { 1542 #define FLD(f) abuf->fields.sfmt_ld_plus.f 1543 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1544 const IDESC * UNUSED idesc = abuf->idesc; 1545 int cycles = 0; 1546 { 1547 int referenced = 0; 1548 int UNUSED insn_referenced = abuf->written; 1549 INT in_sr = -1; 1550 INT in_dr = -1; 1551 INT out_dr = -1; 1552 out_dr = FLD (out_dr); 1553 referenced |= 1 << 2; 1554 cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); 1555 } 1556 return cycles; 1557 #undef FLD 1558 } 1559 1560 static int 1561 model_m32r_d_mvtachi (SIM_CPU *current_cpu, void *sem_arg) 1562 { 1563 #define FLD(f) abuf->fields.sfmt_st_plus.f 1564 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1565 const IDESC * UNUSED idesc = abuf->idesc; 1566 int cycles = 0; 1567 { 1568 int referenced = 0; 1569 int UNUSED insn_referenced = abuf->written; 1570 INT in_sr = -1; 1571 INT in_dr = -1; 1572 INT out_dr = -1; 1573 in_sr = FLD (in_src1); 1574 cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); 1575 } 1576 return cycles; 1577 #undef FLD 1578 } 1579 1580 static int 1581 model_m32r_d_mvtaclo (SIM_CPU *current_cpu, void *sem_arg) 1582 { 1583 #define FLD(f) abuf->fields.sfmt_st_plus.f 1584 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1585 const IDESC * UNUSED idesc = abuf->idesc; 1586 int cycles = 0; 1587 { 1588 int referenced = 0; 1589 int UNUSED insn_referenced = abuf->written; 1590 INT in_sr = -1; 1591 INT in_dr = -1; 1592 INT out_dr = -1; 1593 in_sr = FLD (in_src1); 1594 cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); 1595 } 1596 return cycles; 1597 #undef FLD 1598 } 1599 1600 static int 1601 model_m32r_d_mvtc (SIM_CPU *current_cpu, void *sem_arg) 1602 { 1603 #define FLD(f) abuf->fields.sfmt_ld_plus.f 1604 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1605 const IDESC * UNUSED idesc = abuf->idesc; 1606 int cycles = 0; 1607 { 1608 int referenced = 0; 1609 int UNUSED insn_referenced = abuf->written; 1610 INT in_sr = -1; 1611 INT in_dr = -1; 1612 INT out_dr = -1; 1613 in_sr = FLD (in_sr); 1614 referenced |= 1 << 0; 1615 cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); 1616 } 1617 return cycles; 1618 #undef FLD 1619 } 1620 1621 static int 1622 model_m32r_d_neg (SIM_CPU *current_cpu, void *sem_arg) 1623 { 1624 #define FLD(f) abuf->fields.sfmt_ld_plus.f 1625 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1626 const IDESC * UNUSED idesc = abuf->idesc; 1627 int cycles = 0; 1628 { 1629 int referenced = 0; 1630 int UNUSED insn_referenced = abuf->written; 1631 INT in_sr = -1; 1632 INT in_dr = -1; 1633 INT out_dr = -1; 1634 in_sr = FLD (in_sr); 1635 out_dr = FLD (out_dr); 1636 referenced |= 1 << 0; 1637 referenced |= 1 << 2; 1638 cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); 1639 } 1640 return cycles; 1641 #undef FLD 1642 } 1643 1644 static int 1645 model_m32r_d_nop (SIM_CPU *current_cpu, void *sem_arg) 1646 { 1647 #define FLD(f) abuf->fields.sfmt_empty.f 1648 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1649 const IDESC * UNUSED idesc = abuf->idesc; 1650 int cycles = 0; 1651 { 1652 int referenced = 0; 1653 int UNUSED insn_referenced = abuf->written; 1654 INT in_sr = -1; 1655 INT in_dr = -1; 1656 INT out_dr = -1; 1657 cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); 1658 } 1659 return cycles; 1660 #undef FLD 1661 } 1662 1663 static int 1664 model_m32r_d_not (SIM_CPU *current_cpu, void *sem_arg) 1665 { 1666 #define FLD(f) abuf->fields.sfmt_ld_plus.f 1667 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1668 const IDESC * UNUSED idesc = abuf->idesc; 1669 int cycles = 0; 1670 { 1671 int referenced = 0; 1672 int UNUSED insn_referenced = abuf->written; 1673 INT in_sr = -1; 1674 INT in_dr = -1; 1675 INT out_dr = -1; 1676 in_sr = FLD (in_sr); 1677 out_dr = FLD (out_dr); 1678 referenced |= 1 << 0; 1679 referenced |= 1 << 2; 1680 cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); 1681 } 1682 return cycles; 1683 #undef FLD 1684 } 1685 1686 static int 1687 model_m32r_d_rac (SIM_CPU *current_cpu, void *sem_arg) 1688 { 1689 #define FLD(f) abuf->fields.sfmt_empty.f 1690 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1691 const IDESC * UNUSED idesc = abuf->idesc; 1692 int cycles = 0; 1693 { 1694 int referenced = 0; 1695 int UNUSED insn_referenced = abuf->written; 1696 INT in_src1 = -1; 1697 INT in_src2 = -1; 1698 cycles += m32rbf_model_m32r_d_u_mac (current_cpu, idesc, 0, referenced, in_src1, in_src2); 1699 } 1700 return cycles; 1701 #undef FLD 1702 } 1703 1704 static int 1705 model_m32r_d_rach (SIM_CPU *current_cpu, void *sem_arg) 1706 { 1707 #define FLD(f) abuf->fields.sfmt_empty.f 1708 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1709 const IDESC * UNUSED idesc = abuf->idesc; 1710 int cycles = 0; 1711 { 1712 int referenced = 0; 1713 int UNUSED insn_referenced = abuf->written; 1714 INT in_src1 = -1; 1715 INT in_src2 = -1; 1716 cycles += m32rbf_model_m32r_d_u_mac (current_cpu, idesc, 0, referenced, in_src1, in_src2); 1717 } 1718 return cycles; 1719 #undef FLD 1720 } 1721 1722 static int 1723 model_m32r_d_rte (SIM_CPU *current_cpu, void *sem_arg) 1724 { 1725 #define FLD(f) abuf->fields.sfmt_empty.f 1726 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1727 const IDESC * UNUSED idesc = abuf->idesc; 1728 int cycles = 0; 1729 { 1730 int referenced = 0; 1731 int UNUSED insn_referenced = abuf->written; 1732 INT in_sr = -1; 1733 INT in_dr = -1; 1734 INT out_dr = -1; 1735 cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); 1736 } 1737 return cycles; 1738 #undef FLD 1739 } 1740 1741 static int 1742 model_m32r_d_seth (SIM_CPU *current_cpu, void *sem_arg) 1743 { 1744 #define FLD(f) abuf->fields.sfmt_seth.f 1745 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1746 const IDESC * UNUSED idesc = abuf->idesc; 1747 int cycles = 0; 1748 { 1749 int referenced = 0; 1750 int UNUSED insn_referenced = abuf->written; 1751 INT in_sr = -1; 1752 INT in_dr = -1; 1753 INT out_dr = -1; 1754 out_dr = FLD (out_dr); 1755 referenced |= 1 << 2; 1756 cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); 1757 } 1758 return cycles; 1759 #undef FLD 1760 } 1761 1762 static int 1763 model_m32r_d_sll (SIM_CPU *current_cpu, void *sem_arg) 1764 { 1765 #define FLD(f) abuf->fields.sfmt_add.f 1766 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1767 const IDESC * UNUSED idesc = abuf->idesc; 1768 int cycles = 0; 1769 { 1770 int referenced = 0; 1771 int UNUSED insn_referenced = abuf->written; 1772 INT in_sr = -1; 1773 INT in_dr = -1; 1774 INT out_dr = -1; 1775 in_sr = FLD (in_sr); 1776 in_dr = FLD (in_dr); 1777 out_dr = FLD (out_dr); 1778 referenced |= 1 << 0; 1779 referenced |= 1 << 1; 1780 referenced |= 1 << 2; 1781 cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); 1782 } 1783 return cycles; 1784 #undef FLD 1785 } 1786 1787 static int 1788 model_m32r_d_sll3 (SIM_CPU *current_cpu, void *sem_arg) 1789 { 1790 #define FLD(f) abuf->fields.sfmt_add3.f 1791 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1792 const IDESC * UNUSED idesc = abuf->idesc; 1793 int cycles = 0; 1794 { 1795 int referenced = 0; 1796 int UNUSED insn_referenced = abuf->written; 1797 INT in_sr = -1; 1798 INT in_dr = -1; 1799 INT out_dr = -1; 1800 in_sr = FLD (in_sr); 1801 out_dr = FLD (out_dr); 1802 referenced |= 1 << 0; 1803 referenced |= 1 << 2; 1804 cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); 1805 } 1806 return cycles; 1807 #undef FLD 1808 } 1809 1810 static int 1811 model_m32r_d_slli (SIM_CPU *current_cpu, void *sem_arg) 1812 { 1813 #define FLD(f) abuf->fields.sfmt_slli.f 1814 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1815 const IDESC * UNUSED idesc = abuf->idesc; 1816 int cycles = 0; 1817 { 1818 int referenced = 0; 1819 int UNUSED insn_referenced = abuf->written; 1820 INT in_sr = -1; 1821 INT in_dr = -1; 1822 INT out_dr = -1; 1823 in_dr = FLD (in_dr); 1824 out_dr = FLD (out_dr); 1825 referenced |= 1 << 1; 1826 referenced |= 1 << 2; 1827 cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); 1828 } 1829 return cycles; 1830 #undef FLD 1831 } 1832 1833 static int 1834 model_m32r_d_sra (SIM_CPU *current_cpu, void *sem_arg) 1835 { 1836 #define FLD(f) abuf->fields.sfmt_add.f 1837 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1838 const IDESC * UNUSED idesc = abuf->idesc; 1839 int cycles = 0; 1840 { 1841 int referenced = 0; 1842 int UNUSED insn_referenced = abuf->written; 1843 INT in_sr = -1; 1844 INT in_dr = -1; 1845 INT out_dr = -1; 1846 in_sr = FLD (in_sr); 1847 in_dr = FLD (in_dr); 1848 out_dr = FLD (out_dr); 1849 referenced |= 1 << 0; 1850 referenced |= 1 << 1; 1851 referenced |= 1 << 2; 1852 cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); 1853 } 1854 return cycles; 1855 #undef FLD 1856 } 1857 1858 static int 1859 model_m32r_d_sra3 (SIM_CPU *current_cpu, void *sem_arg) 1860 { 1861 #define FLD(f) abuf->fields.sfmt_add3.f 1862 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1863 const IDESC * UNUSED idesc = abuf->idesc; 1864 int cycles = 0; 1865 { 1866 int referenced = 0; 1867 int UNUSED insn_referenced = abuf->written; 1868 INT in_sr = -1; 1869 INT in_dr = -1; 1870 INT out_dr = -1; 1871 in_sr = FLD (in_sr); 1872 out_dr = FLD (out_dr); 1873 referenced |= 1 << 0; 1874 referenced |= 1 << 2; 1875 cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); 1876 } 1877 return cycles; 1878 #undef FLD 1879 } 1880 1881 static int 1882 model_m32r_d_srai (SIM_CPU *current_cpu, void *sem_arg) 1883 { 1884 #define FLD(f) abuf->fields.sfmt_slli.f 1885 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1886 const IDESC * UNUSED idesc = abuf->idesc; 1887 int cycles = 0; 1888 { 1889 int referenced = 0; 1890 int UNUSED insn_referenced = abuf->written; 1891 INT in_sr = -1; 1892 INT in_dr = -1; 1893 INT out_dr = -1; 1894 in_dr = FLD (in_dr); 1895 out_dr = FLD (out_dr); 1896 referenced |= 1 << 1; 1897 referenced |= 1 << 2; 1898 cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); 1899 } 1900 return cycles; 1901 #undef FLD 1902 } 1903 1904 static int 1905 model_m32r_d_srl (SIM_CPU *current_cpu, void *sem_arg) 1906 { 1907 #define FLD(f) abuf->fields.sfmt_add.f 1908 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1909 const IDESC * UNUSED idesc = abuf->idesc; 1910 int cycles = 0; 1911 { 1912 int referenced = 0; 1913 int UNUSED insn_referenced = abuf->written; 1914 INT in_sr = -1; 1915 INT in_dr = -1; 1916 INT out_dr = -1; 1917 in_sr = FLD (in_sr); 1918 in_dr = FLD (in_dr); 1919 out_dr = FLD (out_dr); 1920 referenced |= 1 << 0; 1921 referenced |= 1 << 1; 1922 referenced |= 1 << 2; 1923 cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); 1924 } 1925 return cycles; 1926 #undef FLD 1927 } 1928 1929 static int 1930 model_m32r_d_srl3 (SIM_CPU *current_cpu, void *sem_arg) 1931 { 1932 #define FLD(f) abuf->fields.sfmt_add3.f 1933 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1934 const IDESC * UNUSED idesc = abuf->idesc; 1935 int cycles = 0; 1936 { 1937 int referenced = 0; 1938 int UNUSED insn_referenced = abuf->written; 1939 INT in_sr = -1; 1940 INT in_dr = -1; 1941 INT out_dr = -1; 1942 in_sr = FLD (in_sr); 1943 out_dr = FLD (out_dr); 1944 referenced |= 1 << 0; 1945 referenced |= 1 << 2; 1946 cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); 1947 } 1948 return cycles; 1949 #undef FLD 1950 } 1951 1952 static int 1953 model_m32r_d_srli (SIM_CPU *current_cpu, void *sem_arg) 1954 { 1955 #define FLD(f) abuf->fields.sfmt_slli.f 1956 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1957 const IDESC * UNUSED idesc = abuf->idesc; 1958 int cycles = 0; 1959 { 1960 int referenced = 0; 1961 int UNUSED insn_referenced = abuf->written; 1962 INT in_sr = -1; 1963 INT in_dr = -1; 1964 INT out_dr = -1; 1965 in_dr = FLD (in_dr); 1966 out_dr = FLD (out_dr); 1967 referenced |= 1 << 1; 1968 referenced |= 1 << 2; 1969 cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); 1970 } 1971 return cycles; 1972 #undef FLD 1973 } 1974 1975 static int 1976 model_m32r_d_st (SIM_CPU *current_cpu, void *sem_arg) 1977 { 1978 #define FLD(f) abuf->fields.sfmt_st_plus.f 1979 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1980 const IDESC * UNUSED idesc = abuf->idesc; 1981 int cycles = 0; 1982 { 1983 int referenced = 0; 1984 int UNUSED insn_referenced = abuf->written; 1985 INT in_src1 = 0; 1986 INT in_src2 = 0; 1987 in_src1 = FLD (in_src1); 1988 in_src2 = FLD (in_src2); 1989 referenced |= 1 << 0; 1990 referenced |= 1 << 1; 1991 cycles += m32rbf_model_m32r_d_u_store (current_cpu, idesc, 0, referenced, in_src1, in_src2); 1992 } 1993 return cycles; 1994 #undef FLD 1995 } 1996 1997 static int 1998 model_m32r_d_st_d (SIM_CPU *current_cpu, void *sem_arg) 1999 { 2000 #define FLD(f) abuf->fields.sfmt_st_d.f 2001 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2002 const IDESC * UNUSED idesc = abuf->idesc; 2003 int cycles = 0; 2004 { 2005 int referenced = 0; 2006 int UNUSED insn_referenced = abuf->written; 2007 INT in_src1 = 0; 2008 INT in_src2 = 0; 2009 in_src1 = FLD (in_src1); 2010 in_src2 = FLD (in_src2); 2011 referenced |= 1 << 0; 2012 referenced |= 1 << 1; 2013 cycles += m32rbf_model_m32r_d_u_store (current_cpu, idesc, 0, referenced, in_src1, in_src2); 2014 } 2015 return cycles; 2016 #undef FLD 2017 } 2018 2019 static int 2020 model_m32r_d_stb (SIM_CPU *current_cpu, void *sem_arg) 2021 { 2022 #define FLD(f) abuf->fields.sfmt_st_plus.f 2023 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2024 const IDESC * UNUSED idesc = abuf->idesc; 2025 int cycles = 0; 2026 { 2027 int referenced = 0; 2028 int UNUSED insn_referenced = abuf->written; 2029 INT in_src1 = 0; 2030 INT in_src2 = 0; 2031 in_src1 = FLD (in_src1); 2032 in_src2 = FLD (in_src2); 2033 referenced |= 1 << 0; 2034 referenced |= 1 << 1; 2035 cycles += m32rbf_model_m32r_d_u_store (current_cpu, idesc, 0, referenced, in_src1, in_src2); 2036 } 2037 return cycles; 2038 #undef FLD 2039 } 2040 2041 static int 2042 model_m32r_d_stb_d (SIM_CPU *current_cpu, void *sem_arg) 2043 { 2044 #define FLD(f) abuf->fields.sfmt_st_d.f 2045 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2046 const IDESC * UNUSED idesc = abuf->idesc; 2047 int cycles = 0; 2048 { 2049 int referenced = 0; 2050 int UNUSED insn_referenced = abuf->written; 2051 INT in_src1 = 0; 2052 INT in_src2 = 0; 2053 in_src1 = FLD (in_src1); 2054 in_src2 = FLD (in_src2); 2055 referenced |= 1 << 0; 2056 referenced |= 1 << 1; 2057 cycles += m32rbf_model_m32r_d_u_store (current_cpu, idesc, 0, referenced, in_src1, in_src2); 2058 } 2059 return cycles; 2060 #undef FLD 2061 } 2062 2063 static int 2064 model_m32r_d_sth (SIM_CPU *current_cpu, void *sem_arg) 2065 { 2066 #define FLD(f) abuf->fields.sfmt_st_plus.f 2067 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2068 const IDESC * UNUSED idesc = abuf->idesc; 2069 int cycles = 0; 2070 { 2071 int referenced = 0; 2072 int UNUSED insn_referenced = abuf->written; 2073 INT in_src1 = 0; 2074 INT in_src2 = 0; 2075 in_src1 = FLD (in_src1); 2076 in_src2 = FLD (in_src2); 2077 referenced |= 1 << 0; 2078 referenced |= 1 << 1; 2079 cycles += m32rbf_model_m32r_d_u_store (current_cpu, idesc, 0, referenced, in_src1, in_src2); 2080 } 2081 return cycles; 2082 #undef FLD 2083 } 2084 2085 static int 2086 model_m32r_d_sth_d (SIM_CPU *current_cpu, void *sem_arg) 2087 { 2088 #define FLD(f) abuf->fields.sfmt_st_d.f 2089 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2090 const IDESC * UNUSED idesc = abuf->idesc; 2091 int cycles = 0; 2092 { 2093 int referenced = 0; 2094 int UNUSED insn_referenced = abuf->written; 2095 INT in_src1 = 0; 2096 INT in_src2 = 0; 2097 in_src1 = FLD (in_src1); 2098 in_src2 = FLD (in_src2); 2099 referenced |= 1 << 0; 2100 referenced |= 1 << 1; 2101 cycles += m32rbf_model_m32r_d_u_store (current_cpu, idesc, 0, referenced, in_src1, in_src2); 2102 } 2103 return cycles; 2104 #undef FLD 2105 } 2106 2107 static int 2108 model_m32r_d_st_plus (SIM_CPU *current_cpu, void *sem_arg) 2109 { 2110 #define FLD(f) abuf->fields.sfmt_st_plus.f 2111 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2112 const IDESC * UNUSED idesc = abuf->idesc; 2113 int cycles = 0; 2114 { 2115 int referenced = 0; 2116 int UNUSED insn_referenced = abuf->written; 2117 INT in_src1 = 0; 2118 INT in_src2 = 0; 2119 in_src1 = FLD (in_src1); 2120 in_src2 = FLD (in_src2); 2121 referenced |= 1 << 0; 2122 referenced |= 1 << 1; 2123 cycles += m32rbf_model_m32r_d_u_store (current_cpu, idesc, 0, referenced, in_src1, in_src2); 2124 } 2125 { 2126 int referenced = 0; 2127 int UNUSED insn_referenced = abuf->written; 2128 INT in_sr = -1; 2129 INT in_dr = -1; 2130 INT out_dr = -1; 2131 in_dr = FLD (in_src2); 2132 out_dr = FLD (out_src2); 2133 cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 1, referenced, in_sr, in_dr, out_dr); 2134 } 2135 return cycles; 2136 #undef FLD 2137 } 2138 2139 static int 2140 model_m32r_d_st_minus (SIM_CPU *current_cpu, void *sem_arg) 2141 { 2142 #define FLD(f) abuf->fields.sfmt_st_plus.f 2143 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2144 const IDESC * UNUSED idesc = abuf->idesc; 2145 int cycles = 0; 2146 { 2147 int referenced = 0; 2148 int UNUSED insn_referenced = abuf->written; 2149 INT in_src1 = 0; 2150 INT in_src2 = 0; 2151 in_src1 = FLD (in_src1); 2152 in_src2 = FLD (in_src2); 2153 referenced |= 1 << 0; 2154 referenced |= 1 << 1; 2155 cycles += m32rbf_model_m32r_d_u_store (current_cpu, idesc, 0, referenced, in_src1, in_src2); 2156 } 2157 { 2158 int referenced = 0; 2159 int UNUSED insn_referenced = abuf->written; 2160 INT in_sr = -1; 2161 INT in_dr = -1; 2162 INT out_dr = -1; 2163 in_dr = FLD (in_src2); 2164 out_dr = FLD (out_src2); 2165 cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 1, referenced, in_sr, in_dr, out_dr); 2166 } 2167 return cycles; 2168 #undef FLD 2169 } 2170 2171 static int 2172 model_m32r_d_sub (SIM_CPU *current_cpu, void *sem_arg) 2173 { 2174 #define FLD(f) abuf->fields.sfmt_add.f 2175 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2176 const IDESC * UNUSED idesc = abuf->idesc; 2177 int cycles = 0; 2178 { 2179 int referenced = 0; 2180 int UNUSED insn_referenced = abuf->written; 2181 INT in_sr = -1; 2182 INT in_dr = -1; 2183 INT out_dr = -1; 2184 in_sr = FLD (in_sr); 2185 in_dr = FLD (in_dr); 2186 out_dr = FLD (out_dr); 2187 referenced |= 1 << 0; 2188 referenced |= 1 << 1; 2189 referenced |= 1 << 2; 2190 cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); 2191 } 2192 return cycles; 2193 #undef FLD 2194 } 2195 2196 static int 2197 model_m32r_d_subv (SIM_CPU *current_cpu, void *sem_arg) 2198 { 2199 #define FLD(f) abuf->fields.sfmt_add.f 2200 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2201 const IDESC * UNUSED idesc = abuf->idesc; 2202 int cycles = 0; 2203 { 2204 int referenced = 0; 2205 int UNUSED insn_referenced = abuf->written; 2206 INT in_sr = -1; 2207 INT in_dr = -1; 2208 INT out_dr = -1; 2209 in_sr = FLD (in_sr); 2210 in_dr = FLD (in_dr); 2211 out_dr = FLD (out_dr); 2212 referenced |= 1 << 0; 2213 referenced |= 1 << 1; 2214 referenced |= 1 << 2; 2215 cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); 2216 } 2217 return cycles; 2218 #undef FLD 2219 } 2220 2221 static int 2222 model_m32r_d_subx (SIM_CPU *current_cpu, void *sem_arg) 2223 { 2224 #define FLD(f) abuf->fields.sfmt_add.f 2225 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2226 const IDESC * UNUSED idesc = abuf->idesc; 2227 int cycles = 0; 2228 { 2229 int referenced = 0; 2230 int UNUSED insn_referenced = abuf->written; 2231 INT in_sr = -1; 2232 INT in_dr = -1; 2233 INT out_dr = -1; 2234 in_sr = FLD (in_sr); 2235 in_dr = FLD (in_dr); 2236 out_dr = FLD (out_dr); 2237 referenced |= 1 << 0; 2238 referenced |= 1 << 1; 2239 referenced |= 1 << 2; 2240 cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); 2241 } 2242 return cycles; 2243 #undef FLD 2244 } 2245 2246 static int 2247 model_m32r_d_trap (SIM_CPU *current_cpu, void *sem_arg) 2248 { 2249 #define FLD(f) abuf->fields.sfmt_trap.f 2250 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2251 const IDESC * UNUSED idesc = abuf->idesc; 2252 int cycles = 0; 2253 { 2254 int referenced = 0; 2255 int UNUSED insn_referenced = abuf->written; 2256 INT in_sr = -1; 2257 INT in_dr = -1; 2258 INT out_dr = -1; 2259 cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); 2260 } 2261 return cycles; 2262 #undef FLD 2263 } 2264 2265 static int 2266 model_m32r_d_unlock (SIM_CPU *current_cpu, void *sem_arg) 2267 { 2268 #define FLD(f) abuf->fields.sfmt_st_plus.f 2269 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2270 const IDESC * UNUSED idesc = abuf->idesc; 2271 int cycles = 0; 2272 { 2273 int referenced = 0; 2274 int UNUSED insn_referenced = abuf->written; 2275 INT in_sr = 0; 2276 INT out_dr = 0; 2277 cycles += m32rbf_model_m32r_d_u_load (current_cpu, idesc, 0, referenced, in_sr, out_dr); 2278 } 2279 return cycles; 2280 #undef FLD 2281 } 2282 2283 static int 2284 model_m32r_d_clrpsw (SIM_CPU *current_cpu, void *sem_arg) 2285 { 2286 #define FLD(f) abuf->fields.sfmt_clrpsw.f 2287 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2288 const IDESC * UNUSED idesc = abuf->idesc; 2289 int cycles = 0; 2290 { 2291 int referenced = 0; 2292 int UNUSED insn_referenced = abuf->written; 2293 INT in_sr = -1; 2294 INT in_dr = -1; 2295 INT out_dr = -1; 2296 cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); 2297 } 2298 return cycles; 2299 #undef FLD 2300 } 2301 2302 static int 2303 model_m32r_d_setpsw (SIM_CPU *current_cpu, void *sem_arg) 2304 { 2305 #define FLD(f) abuf->fields.sfmt_clrpsw.f 2306 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2307 const IDESC * UNUSED idesc = abuf->idesc; 2308 int cycles = 0; 2309 { 2310 int referenced = 0; 2311 int UNUSED insn_referenced = abuf->written; 2312 INT in_sr = -1; 2313 INT in_dr = -1; 2314 INT out_dr = -1; 2315 cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); 2316 } 2317 return cycles; 2318 #undef FLD 2319 } 2320 2321 static int 2322 model_m32r_d_bset (SIM_CPU *current_cpu, void *sem_arg) 2323 { 2324 #define FLD(f) abuf->fields.sfmt_bset.f 2325 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2326 const IDESC * UNUSED idesc = abuf->idesc; 2327 int cycles = 0; 2328 { 2329 int referenced = 0; 2330 int UNUSED insn_referenced = abuf->written; 2331 INT in_sr = -1; 2332 INT in_dr = -1; 2333 INT out_dr = -1; 2334 in_sr = FLD (in_sr); 2335 referenced |= 1 << 0; 2336 cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); 2337 } 2338 return cycles; 2339 #undef FLD 2340 } 2341 2342 static int 2343 model_m32r_d_bclr (SIM_CPU *current_cpu, void *sem_arg) 2344 { 2345 #define FLD(f) abuf->fields.sfmt_bset.f 2346 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2347 const IDESC * UNUSED idesc = abuf->idesc; 2348 int cycles = 0; 2349 { 2350 int referenced = 0; 2351 int UNUSED insn_referenced = abuf->written; 2352 INT in_sr = -1; 2353 INT in_dr = -1; 2354 INT out_dr = -1; 2355 in_sr = FLD (in_sr); 2356 referenced |= 1 << 0; 2357 cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); 2358 } 2359 return cycles; 2360 #undef FLD 2361 } 2362 2363 static int 2364 model_m32r_d_btst (SIM_CPU *current_cpu, void *sem_arg) 2365 { 2366 #define FLD(f) abuf->fields.sfmt_bset.f 2367 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2368 const IDESC * UNUSED idesc = abuf->idesc; 2369 int cycles = 0; 2370 { 2371 int referenced = 0; 2372 int UNUSED insn_referenced = abuf->written; 2373 INT in_sr = -1; 2374 INT in_dr = -1; 2375 INT out_dr = -1; 2376 in_sr = FLD (in_sr); 2377 referenced |= 1 << 0; 2378 cycles += m32rbf_model_m32r_d_u_exec (current_cpu, idesc, 0, referenced, in_sr, in_dr, out_dr); 2379 } 2380 return cycles; 2381 #undef FLD 2382 } 2383 2384 static int 2385 model_test_add (SIM_CPU *current_cpu, void *sem_arg) 2386 { 2387 #define FLD(f) abuf->fields.sfmt_add.f 2388 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2389 const IDESC * UNUSED idesc = abuf->idesc; 2390 int cycles = 0; 2391 { 2392 int referenced = 0; 2393 int UNUSED insn_referenced = abuf->written; 2394 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); 2395 } 2396 return cycles; 2397 #undef FLD 2398 } 2399 2400 static int 2401 model_test_add3 (SIM_CPU *current_cpu, void *sem_arg) 2402 { 2403 #define FLD(f) abuf->fields.sfmt_add3.f 2404 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2405 const IDESC * UNUSED idesc = abuf->idesc; 2406 int cycles = 0; 2407 { 2408 int referenced = 0; 2409 int UNUSED insn_referenced = abuf->written; 2410 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); 2411 } 2412 return cycles; 2413 #undef FLD 2414 } 2415 2416 static int 2417 model_test_and (SIM_CPU *current_cpu, void *sem_arg) 2418 { 2419 #define FLD(f) abuf->fields.sfmt_add.f 2420 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2421 const IDESC * UNUSED idesc = abuf->idesc; 2422 int cycles = 0; 2423 { 2424 int referenced = 0; 2425 int UNUSED insn_referenced = abuf->written; 2426 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); 2427 } 2428 return cycles; 2429 #undef FLD 2430 } 2431 2432 static int 2433 model_test_and3 (SIM_CPU *current_cpu, void *sem_arg) 2434 { 2435 #define FLD(f) abuf->fields.sfmt_and3.f 2436 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2437 const IDESC * UNUSED idesc = abuf->idesc; 2438 int cycles = 0; 2439 { 2440 int referenced = 0; 2441 int UNUSED insn_referenced = abuf->written; 2442 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); 2443 } 2444 return cycles; 2445 #undef FLD 2446 } 2447 2448 static int 2449 model_test_or (SIM_CPU *current_cpu, void *sem_arg) 2450 { 2451 #define FLD(f) abuf->fields.sfmt_add.f 2452 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2453 const IDESC * UNUSED idesc = abuf->idesc; 2454 int cycles = 0; 2455 { 2456 int referenced = 0; 2457 int UNUSED insn_referenced = abuf->written; 2458 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); 2459 } 2460 return cycles; 2461 #undef FLD 2462 } 2463 2464 static int 2465 model_test_or3 (SIM_CPU *current_cpu, void *sem_arg) 2466 { 2467 #define FLD(f) abuf->fields.sfmt_and3.f 2468 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2469 const IDESC * UNUSED idesc = abuf->idesc; 2470 int cycles = 0; 2471 { 2472 int referenced = 0; 2473 int UNUSED insn_referenced = abuf->written; 2474 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); 2475 } 2476 return cycles; 2477 #undef FLD 2478 } 2479 2480 static int 2481 model_test_xor (SIM_CPU *current_cpu, void *sem_arg) 2482 { 2483 #define FLD(f) abuf->fields.sfmt_add.f 2484 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2485 const IDESC * UNUSED idesc = abuf->idesc; 2486 int cycles = 0; 2487 { 2488 int referenced = 0; 2489 int UNUSED insn_referenced = abuf->written; 2490 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); 2491 } 2492 return cycles; 2493 #undef FLD 2494 } 2495 2496 static int 2497 model_test_xor3 (SIM_CPU *current_cpu, void *sem_arg) 2498 { 2499 #define FLD(f) abuf->fields.sfmt_and3.f 2500 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2501 const IDESC * UNUSED idesc = abuf->idesc; 2502 int cycles = 0; 2503 { 2504 int referenced = 0; 2505 int UNUSED insn_referenced = abuf->written; 2506 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); 2507 } 2508 return cycles; 2509 #undef FLD 2510 } 2511 2512 static int 2513 model_test_addi (SIM_CPU *current_cpu, void *sem_arg) 2514 { 2515 #define FLD(f) abuf->fields.sfmt_addi.f 2516 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2517 const IDESC * UNUSED idesc = abuf->idesc; 2518 int cycles = 0; 2519 { 2520 int referenced = 0; 2521 int UNUSED insn_referenced = abuf->written; 2522 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); 2523 } 2524 return cycles; 2525 #undef FLD 2526 } 2527 2528 static int 2529 model_test_addv (SIM_CPU *current_cpu, void *sem_arg) 2530 { 2531 #define FLD(f) abuf->fields.sfmt_add.f 2532 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2533 const IDESC * UNUSED idesc = abuf->idesc; 2534 int cycles = 0; 2535 { 2536 int referenced = 0; 2537 int UNUSED insn_referenced = abuf->written; 2538 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); 2539 } 2540 return cycles; 2541 #undef FLD 2542 } 2543 2544 static int 2545 model_test_addv3 (SIM_CPU *current_cpu, void *sem_arg) 2546 { 2547 #define FLD(f) abuf->fields.sfmt_add3.f 2548 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2549 const IDESC * UNUSED idesc = abuf->idesc; 2550 int cycles = 0; 2551 { 2552 int referenced = 0; 2553 int UNUSED insn_referenced = abuf->written; 2554 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); 2555 } 2556 return cycles; 2557 #undef FLD 2558 } 2559 2560 static int 2561 model_test_addx (SIM_CPU *current_cpu, void *sem_arg) 2562 { 2563 #define FLD(f) abuf->fields.sfmt_add.f 2564 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2565 const IDESC * UNUSED idesc = abuf->idesc; 2566 int cycles = 0; 2567 { 2568 int referenced = 0; 2569 int UNUSED insn_referenced = abuf->written; 2570 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); 2571 } 2572 return cycles; 2573 #undef FLD 2574 } 2575 2576 static int 2577 model_test_bc8 (SIM_CPU *current_cpu, void *sem_arg) 2578 { 2579 #define FLD(f) abuf->fields.sfmt_bl8.f 2580 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2581 const IDESC * UNUSED idesc = abuf->idesc; 2582 int cycles = 0; 2583 { 2584 int referenced = 0; 2585 int UNUSED insn_referenced = abuf->written; 2586 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); 2587 } 2588 return cycles; 2589 #undef FLD 2590 } 2591 2592 static int 2593 model_test_bc24 (SIM_CPU *current_cpu, void *sem_arg) 2594 { 2595 #define FLD(f) abuf->fields.sfmt_bl24.f 2596 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2597 const IDESC * UNUSED idesc = abuf->idesc; 2598 int cycles = 0; 2599 { 2600 int referenced = 0; 2601 int UNUSED insn_referenced = abuf->written; 2602 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); 2603 } 2604 return cycles; 2605 #undef FLD 2606 } 2607 2608 static int 2609 model_test_beq (SIM_CPU *current_cpu, void *sem_arg) 2610 { 2611 #define FLD(f) abuf->fields.sfmt_beq.f 2612 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2613 const IDESC * UNUSED idesc = abuf->idesc; 2614 int cycles = 0; 2615 { 2616 int referenced = 0; 2617 int UNUSED insn_referenced = abuf->written; 2618 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); 2619 } 2620 return cycles; 2621 #undef FLD 2622 } 2623 2624 static int 2625 model_test_beqz (SIM_CPU *current_cpu, void *sem_arg) 2626 { 2627 #define FLD(f) abuf->fields.sfmt_beq.f 2628 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2629 const IDESC * UNUSED idesc = abuf->idesc; 2630 int cycles = 0; 2631 { 2632 int referenced = 0; 2633 int UNUSED insn_referenced = abuf->written; 2634 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); 2635 } 2636 return cycles; 2637 #undef FLD 2638 } 2639 2640 static int 2641 model_test_bgez (SIM_CPU *current_cpu, void *sem_arg) 2642 { 2643 #define FLD(f) abuf->fields.sfmt_beq.f 2644 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2645 const IDESC * UNUSED idesc = abuf->idesc; 2646 int cycles = 0; 2647 { 2648 int referenced = 0; 2649 int UNUSED insn_referenced = abuf->written; 2650 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); 2651 } 2652 return cycles; 2653 #undef FLD 2654 } 2655 2656 static int 2657 model_test_bgtz (SIM_CPU *current_cpu, void *sem_arg) 2658 { 2659 #define FLD(f) abuf->fields.sfmt_beq.f 2660 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2661 const IDESC * UNUSED idesc = abuf->idesc; 2662 int cycles = 0; 2663 { 2664 int referenced = 0; 2665 int UNUSED insn_referenced = abuf->written; 2666 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); 2667 } 2668 return cycles; 2669 #undef FLD 2670 } 2671 2672 static int 2673 model_test_blez (SIM_CPU *current_cpu, void *sem_arg) 2674 { 2675 #define FLD(f) abuf->fields.sfmt_beq.f 2676 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2677 const IDESC * UNUSED idesc = abuf->idesc; 2678 int cycles = 0; 2679 { 2680 int referenced = 0; 2681 int UNUSED insn_referenced = abuf->written; 2682 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); 2683 } 2684 return cycles; 2685 #undef FLD 2686 } 2687 2688 static int 2689 model_test_bltz (SIM_CPU *current_cpu, void *sem_arg) 2690 { 2691 #define FLD(f) abuf->fields.sfmt_beq.f 2692 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2693 const IDESC * UNUSED idesc = abuf->idesc; 2694 int cycles = 0; 2695 { 2696 int referenced = 0; 2697 int UNUSED insn_referenced = abuf->written; 2698 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); 2699 } 2700 return cycles; 2701 #undef FLD 2702 } 2703 2704 static int 2705 model_test_bnez (SIM_CPU *current_cpu, void *sem_arg) 2706 { 2707 #define FLD(f) abuf->fields.sfmt_beq.f 2708 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2709 const IDESC * UNUSED idesc = abuf->idesc; 2710 int cycles = 0; 2711 { 2712 int referenced = 0; 2713 int UNUSED insn_referenced = abuf->written; 2714 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); 2715 } 2716 return cycles; 2717 #undef FLD 2718 } 2719 2720 static int 2721 model_test_bl8 (SIM_CPU *current_cpu, void *sem_arg) 2722 { 2723 #define FLD(f) abuf->fields.sfmt_bl8.f 2724 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2725 const IDESC * UNUSED idesc = abuf->idesc; 2726 int cycles = 0; 2727 { 2728 int referenced = 0; 2729 int UNUSED insn_referenced = abuf->written; 2730 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); 2731 } 2732 return cycles; 2733 #undef FLD 2734 } 2735 2736 static int 2737 model_test_bl24 (SIM_CPU *current_cpu, void *sem_arg) 2738 { 2739 #define FLD(f) abuf->fields.sfmt_bl24.f 2740 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2741 const IDESC * UNUSED idesc = abuf->idesc; 2742 int cycles = 0; 2743 { 2744 int referenced = 0; 2745 int UNUSED insn_referenced = abuf->written; 2746 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); 2747 } 2748 return cycles; 2749 #undef FLD 2750 } 2751 2752 static int 2753 model_test_bnc8 (SIM_CPU *current_cpu, void *sem_arg) 2754 { 2755 #define FLD(f) abuf->fields.sfmt_bl8.f 2756 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2757 const IDESC * UNUSED idesc = abuf->idesc; 2758 int cycles = 0; 2759 { 2760 int referenced = 0; 2761 int UNUSED insn_referenced = abuf->written; 2762 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); 2763 } 2764 return cycles; 2765 #undef FLD 2766 } 2767 2768 static int 2769 model_test_bnc24 (SIM_CPU *current_cpu, void *sem_arg) 2770 { 2771 #define FLD(f) abuf->fields.sfmt_bl24.f 2772 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2773 const IDESC * UNUSED idesc = abuf->idesc; 2774 int cycles = 0; 2775 { 2776 int referenced = 0; 2777 int UNUSED insn_referenced = abuf->written; 2778 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); 2779 } 2780 return cycles; 2781 #undef FLD 2782 } 2783 2784 static int 2785 model_test_bne (SIM_CPU *current_cpu, void *sem_arg) 2786 { 2787 #define FLD(f) abuf->fields.sfmt_beq.f 2788 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2789 const IDESC * UNUSED idesc = abuf->idesc; 2790 int cycles = 0; 2791 { 2792 int referenced = 0; 2793 int UNUSED insn_referenced = abuf->written; 2794 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); 2795 } 2796 return cycles; 2797 #undef FLD 2798 } 2799 2800 static int 2801 model_test_bra8 (SIM_CPU *current_cpu, void *sem_arg) 2802 { 2803 #define FLD(f) abuf->fields.sfmt_bl8.f 2804 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2805 const IDESC * UNUSED idesc = abuf->idesc; 2806 int cycles = 0; 2807 { 2808 int referenced = 0; 2809 int UNUSED insn_referenced = abuf->written; 2810 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); 2811 } 2812 return cycles; 2813 #undef FLD 2814 } 2815 2816 static int 2817 model_test_bra24 (SIM_CPU *current_cpu, void *sem_arg) 2818 { 2819 #define FLD(f) abuf->fields.sfmt_bl24.f 2820 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2821 const IDESC * UNUSED idesc = abuf->idesc; 2822 int cycles = 0; 2823 { 2824 int referenced = 0; 2825 int UNUSED insn_referenced = abuf->written; 2826 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); 2827 } 2828 return cycles; 2829 #undef FLD 2830 } 2831 2832 static int 2833 model_test_cmp (SIM_CPU *current_cpu, void *sem_arg) 2834 { 2835 #define FLD(f) abuf->fields.sfmt_st_plus.f 2836 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2837 const IDESC * UNUSED idesc = abuf->idesc; 2838 int cycles = 0; 2839 { 2840 int referenced = 0; 2841 int UNUSED insn_referenced = abuf->written; 2842 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); 2843 } 2844 return cycles; 2845 #undef FLD 2846 } 2847 2848 static int 2849 model_test_cmpi (SIM_CPU *current_cpu, void *sem_arg) 2850 { 2851 #define FLD(f) abuf->fields.sfmt_st_d.f 2852 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2853 const IDESC * UNUSED idesc = abuf->idesc; 2854 int cycles = 0; 2855 { 2856 int referenced = 0; 2857 int UNUSED insn_referenced = abuf->written; 2858 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); 2859 } 2860 return cycles; 2861 #undef FLD 2862 } 2863 2864 static int 2865 model_test_cmpu (SIM_CPU *current_cpu, void *sem_arg) 2866 { 2867 #define FLD(f) abuf->fields.sfmt_st_plus.f 2868 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2869 const IDESC * UNUSED idesc = abuf->idesc; 2870 int cycles = 0; 2871 { 2872 int referenced = 0; 2873 int UNUSED insn_referenced = abuf->written; 2874 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); 2875 } 2876 return cycles; 2877 #undef FLD 2878 } 2879 2880 static int 2881 model_test_cmpui (SIM_CPU *current_cpu, void *sem_arg) 2882 { 2883 #define FLD(f) abuf->fields.sfmt_st_d.f 2884 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2885 const IDESC * UNUSED idesc = abuf->idesc; 2886 int cycles = 0; 2887 { 2888 int referenced = 0; 2889 int UNUSED insn_referenced = abuf->written; 2890 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); 2891 } 2892 return cycles; 2893 #undef FLD 2894 } 2895 2896 static int 2897 model_test_div (SIM_CPU *current_cpu, void *sem_arg) 2898 { 2899 #define FLD(f) abuf->fields.sfmt_add.f 2900 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2901 const IDESC * UNUSED idesc = abuf->idesc; 2902 int cycles = 0; 2903 { 2904 int referenced = 0; 2905 int UNUSED insn_referenced = abuf->written; 2906 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); 2907 } 2908 return cycles; 2909 #undef FLD 2910 } 2911 2912 static int 2913 model_test_divu (SIM_CPU *current_cpu, void *sem_arg) 2914 { 2915 #define FLD(f) abuf->fields.sfmt_add.f 2916 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2917 const IDESC * UNUSED idesc = abuf->idesc; 2918 int cycles = 0; 2919 { 2920 int referenced = 0; 2921 int UNUSED insn_referenced = abuf->written; 2922 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); 2923 } 2924 return cycles; 2925 #undef FLD 2926 } 2927 2928 static int 2929 model_test_rem (SIM_CPU *current_cpu, void *sem_arg) 2930 { 2931 #define FLD(f) abuf->fields.sfmt_add.f 2932 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2933 const IDESC * UNUSED idesc = abuf->idesc; 2934 int cycles = 0; 2935 { 2936 int referenced = 0; 2937 int UNUSED insn_referenced = abuf->written; 2938 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); 2939 } 2940 return cycles; 2941 #undef FLD 2942 } 2943 2944 static int 2945 model_test_remu (SIM_CPU *current_cpu, void *sem_arg) 2946 { 2947 #define FLD(f) abuf->fields.sfmt_add.f 2948 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2949 const IDESC * UNUSED idesc = abuf->idesc; 2950 int cycles = 0; 2951 { 2952 int referenced = 0; 2953 int UNUSED insn_referenced = abuf->written; 2954 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); 2955 } 2956 return cycles; 2957 #undef FLD 2958 } 2959 2960 static int 2961 model_test_jl (SIM_CPU *current_cpu, void *sem_arg) 2962 { 2963 #define FLD(f) abuf->fields.sfmt_jl.f 2964 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2965 const IDESC * UNUSED idesc = abuf->idesc; 2966 int cycles = 0; 2967 { 2968 int referenced = 0; 2969 int UNUSED insn_referenced = abuf->written; 2970 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); 2971 } 2972 return cycles; 2973 #undef FLD 2974 } 2975 2976 static int 2977 model_test_jmp (SIM_CPU *current_cpu, void *sem_arg) 2978 { 2979 #define FLD(f) abuf->fields.sfmt_jl.f 2980 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2981 const IDESC * UNUSED idesc = abuf->idesc; 2982 int cycles = 0; 2983 { 2984 int referenced = 0; 2985 int UNUSED insn_referenced = abuf->written; 2986 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); 2987 } 2988 return cycles; 2989 #undef FLD 2990 } 2991 2992 static int 2993 model_test_ld (SIM_CPU *current_cpu, void *sem_arg) 2994 { 2995 #define FLD(f) abuf->fields.sfmt_ld_plus.f 2996 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2997 const IDESC * UNUSED idesc = abuf->idesc; 2998 int cycles = 0; 2999 { 3000 int referenced = 0; 3001 int UNUSED insn_referenced = abuf->written; 3002 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); 3003 } 3004 return cycles; 3005 #undef FLD 3006 } 3007 3008 static int 3009 model_test_ld_d (SIM_CPU *current_cpu, void *sem_arg) 3010 { 3011 #define FLD(f) abuf->fields.sfmt_add3.f 3012 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 3013 const IDESC * UNUSED idesc = abuf->idesc; 3014 int cycles = 0; 3015 { 3016 int referenced = 0; 3017 int UNUSED insn_referenced = abuf->written; 3018 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); 3019 } 3020 return cycles; 3021 #undef FLD 3022 } 3023 3024 static int 3025 model_test_ldb (SIM_CPU *current_cpu, void *sem_arg) 3026 { 3027 #define FLD(f) abuf->fields.sfmt_ld_plus.f 3028 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 3029 const IDESC * UNUSED idesc = abuf->idesc; 3030 int cycles = 0; 3031 { 3032 int referenced = 0; 3033 int UNUSED insn_referenced = abuf->written; 3034 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); 3035 } 3036 return cycles; 3037 #undef FLD 3038 } 3039 3040 static int 3041 model_test_ldb_d (SIM_CPU *current_cpu, void *sem_arg) 3042 { 3043 #define FLD(f) abuf->fields.sfmt_add3.f 3044 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 3045 const IDESC * UNUSED idesc = abuf->idesc; 3046 int cycles = 0; 3047 { 3048 int referenced = 0; 3049 int UNUSED insn_referenced = abuf->written; 3050 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); 3051 } 3052 return cycles; 3053 #undef FLD 3054 } 3055 3056 static int 3057 model_test_ldh (SIM_CPU *current_cpu, void *sem_arg) 3058 { 3059 #define FLD(f) abuf->fields.sfmt_ld_plus.f 3060 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 3061 const IDESC * UNUSED idesc = abuf->idesc; 3062 int cycles = 0; 3063 { 3064 int referenced = 0; 3065 int UNUSED insn_referenced = abuf->written; 3066 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); 3067 } 3068 return cycles; 3069 #undef FLD 3070 } 3071 3072 static int 3073 model_test_ldh_d (SIM_CPU *current_cpu, void *sem_arg) 3074 { 3075 #define FLD(f) abuf->fields.sfmt_add3.f 3076 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 3077 const IDESC * UNUSED idesc = abuf->idesc; 3078 int cycles = 0; 3079 { 3080 int referenced = 0; 3081 int UNUSED insn_referenced = abuf->written; 3082 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); 3083 } 3084 return cycles; 3085 #undef FLD 3086 } 3087 3088 static int 3089 model_test_ldub (SIM_CPU *current_cpu, void *sem_arg) 3090 { 3091 #define FLD(f) abuf->fields.sfmt_ld_plus.f 3092 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 3093 const IDESC * UNUSED idesc = abuf->idesc; 3094 int cycles = 0; 3095 { 3096 int referenced = 0; 3097 int UNUSED insn_referenced = abuf->written; 3098 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); 3099 } 3100 return cycles; 3101 #undef FLD 3102 } 3103 3104 static int 3105 model_test_ldub_d (SIM_CPU *current_cpu, void *sem_arg) 3106 { 3107 #define FLD(f) abuf->fields.sfmt_add3.f 3108 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 3109 const IDESC * UNUSED idesc = abuf->idesc; 3110 int cycles = 0; 3111 { 3112 int referenced = 0; 3113 int UNUSED insn_referenced = abuf->written; 3114 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); 3115 } 3116 return cycles; 3117 #undef FLD 3118 } 3119 3120 static int 3121 model_test_lduh (SIM_CPU *current_cpu, void *sem_arg) 3122 { 3123 #define FLD(f) abuf->fields.sfmt_ld_plus.f 3124 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 3125 const IDESC * UNUSED idesc = abuf->idesc; 3126 int cycles = 0; 3127 { 3128 int referenced = 0; 3129 int UNUSED insn_referenced = abuf->written; 3130 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); 3131 } 3132 return cycles; 3133 #undef FLD 3134 } 3135 3136 static int 3137 model_test_lduh_d (SIM_CPU *current_cpu, void *sem_arg) 3138 { 3139 #define FLD(f) abuf->fields.sfmt_add3.f 3140 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 3141 const IDESC * UNUSED idesc = abuf->idesc; 3142 int cycles = 0; 3143 { 3144 int referenced = 0; 3145 int UNUSED insn_referenced = abuf->written; 3146 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); 3147 } 3148 return cycles; 3149 #undef FLD 3150 } 3151 3152 static int 3153 model_test_ld_plus (SIM_CPU *current_cpu, void *sem_arg) 3154 { 3155 #define FLD(f) abuf->fields.sfmt_ld_plus.f 3156 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 3157 const IDESC * UNUSED idesc = abuf->idesc; 3158 int cycles = 0; 3159 { 3160 int referenced = 0; 3161 int UNUSED insn_referenced = abuf->written; 3162 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); 3163 } 3164 return cycles; 3165 #undef FLD 3166 } 3167 3168 static int 3169 model_test_ld24 (SIM_CPU *current_cpu, void *sem_arg) 3170 { 3171 #define FLD(f) abuf->fields.sfmt_ld24.f 3172 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 3173 const IDESC * UNUSED idesc = abuf->idesc; 3174 int cycles = 0; 3175 { 3176 int referenced = 0; 3177 int UNUSED insn_referenced = abuf->written; 3178 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); 3179 } 3180 return cycles; 3181 #undef FLD 3182 } 3183 3184 static int 3185 model_test_ldi8 (SIM_CPU *current_cpu, void *sem_arg) 3186 { 3187 #define FLD(f) abuf->fields.sfmt_addi.f 3188 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 3189 const IDESC * UNUSED idesc = abuf->idesc; 3190 int cycles = 0; 3191 { 3192 int referenced = 0; 3193 int UNUSED insn_referenced = abuf->written; 3194 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); 3195 } 3196 return cycles; 3197 #undef FLD 3198 } 3199 3200 static int 3201 model_test_ldi16 (SIM_CPU *current_cpu, void *sem_arg) 3202 { 3203 #define FLD(f) abuf->fields.sfmt_add3.f 3204 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 3205 const IDESC * UNUSED idesc = abuf->idesc; 3206 int cycles = 0; 3207 { 3208 int referenced = 0; 3209 int UNUSED insn_referenced = abuf->written; 3210 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); 3211 } 3212 return cycles; 3213 #undef FLD 3214 } 3215 3216 static int 3217 model_test_lock (SIM_CPU *current_cpu, void *sem_arg) 3218 { 3219 #define FLD(f) abuf->fields.sfmt_ld_plus.f 3220 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 3221 const IDESC * UNUSED idesc = abuf->idesc; 3222 int cycles = 0; 3223 { 3224 int referenced = 0; 3225 int UNUSED insn_referenced = abuf->written; 3226 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); 3227 } 3228 return cycles; 3229 #undef FLD 3230 } 3231 3232 static int 3233 model_test_machi (SIM_CPU *current_cpu, void *sem_arg) 3234 { 3235 #define FLD(f) abuf->fields.sfmt_st_plus.f 3236 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 3237 const IDESC * UNUSED idesc = abuf->idesc; 3238 int cycles = 0; 3239 { 3240 int referenced = 0; 3241 int UNUSED insn_referenced = abuf->written; 3242 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); 3243 } 3244 return cycles; 3245 #undef FLD 3246 } 3247 3248 static int 3249 model_test_maclo (SIM_CPU *current_cpu, void *sem_arg) 3250 { 3251 #define FLD(f) abuf->fields.sfmt_st_plus.f 3252 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 3253 const IDESC * UNUSED idesc = abuf->idesc; 3254 int cycles = 0; 3255 { 3256 int referenced = 0; 3257 int UNUSED insn_referenced = abuf->written; 3258 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); 3259 } 3260 return cycles; 3261 #undef FLD 3262 } 3263 3264 static int 3265 model_test_macwhi (SIM_CPU *current_cpu, void *sem_arg) 3266 { 3267 #define FLD(f) abuf->fields.sfmt_st_plus.f 3268 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 3269 const IDESC * UNUSED idesc = abuf->idesc; 3270 int cycles = 0; 3271 { 3272 int referenced = 0; 3273 int UNUSED insn_referenced = abuf->written; 3274 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); 3275 } 3276 return cycles; 3277 #undef FLD 3278 } 3279 3280 static int 3281 model_test_macwlo (SIM_CPU *current_cpu, void *sem_arg) 3282 { 3283 #define FLD(f) abuf->fields.sfmt_st_plus.f 3284 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 3285 const IDESC * UNUSED idesc = abuf->idesc; 3286 int cycles = 0; 3287 { 3288 int referenced = 0; 3289 int UNUSED insn_referenced = abuf->written; 3290 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); 3291 } 3292 return cycles; 3293 #undef FLD 3294 } 3295 3296 static int 3297 model_test_mul (SIM_CPU *current_cpu, void *sem_arg) 3298 { 3299 #define FLD(f) abuf->fields.sfmt_add.f 3300 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 3301 const IDESC * UNUSED idesc = abuf->idesc; 3302 int cycles = 0; 3303 { 3304 int referenced = 0; 3305 int UNUSED insn_referenced = abuf->written; 3306 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); 3307 } 3308 return cycles; 3309 #undef FLD 3310 } 3311 3312 static int 3313 model_test_mulhi (SIM_CPU *current_cpu, void *sem_arg) 3314 { 3315 #define FLD(f) abuf->fields.sfmt_st_plus.f 3316 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 3317 const IDESC * UNUSED idesc = abuf->idesc; 3318 int cycles = 0; 3319 { 3320 int referenced = 0; 3321 int UNUSED insn_referenced = abuf->written; 3322 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); 3323 } 3324 return cycles; 3325 #undef FLD 3326 } 3327 3328 static int 3329 model_test_mullo (SIM_CPU *current_cpu, void *sem_arg) 3330 { 3331 #define FLD(f) abuf->fields.sfmt_st_plus.f 3332 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 3333 const IDESC * UNUSED idesc = abuf->idesc; 3334 int cycles = 0; 3335 { 3336 int referenced = 0; 3337 int UNUSED insn_referenced = abuf->written; 3338 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); 3339 } 3340 return cycles; 3341 #undef FLD 3342 } 3343 3344 static int 3345 model_test_mulwhi (SIM_CPU *current_cpu, void *sem_arg) 3346 { 3347 #define FLD(f) abuf->fields.sfmt_st_plus.f 3348 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 3349 const IDESC * UNUSED idesc = abuf->idesc; 3350 int cycles = 0; 3351 { 3352 int referenced = 0; 3353 int UNUSED insn_referenced = abuf->written; 3354 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); 3355 } 3356 return cycles; 3357 #undef FLD 3358 } 3359 3360 static int 3361 model_test_mulwlo (SIM_CPU *current_cpu, void *sem_arg) 3362 { 3363 #define FLD(f) abuf->fields.sfmt_st_plus.f 3364 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 3365 const IDESC * UNUSED idesc = abuf->idesc; 3366 int cycles = 0; 3367 { 3368 int referenced = 0; 3369 int UNUSED insn_referenced = abuf->written; 3370 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); 3371 } 3372 return cycles; 3373 #undef FLD 3374 } 3375 3376 static int 3377 model_test_mv (SIM_CPU *current_cpu, void *sem_arg) 3378 { 3379 #define FLD(f) abuf->fields.sfmt_ld_plus.f 3380 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 3381 const IDESC * UNUSED idesc = abuf->idesc; 3382 int cycles = 0; 3383 { 3384 int referenced = 0; 3385 int UNUSED insn_referenced = abuf->written; 3386 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); 3387 } 3388 return cycles; 3389 #undef FLD 3390 } 3391 3392 static int 3393 model_test_mvfachi (SIM_CPU *current_cpu, void *sem_arg) 3394 { 3395 #define FLD(f) abuf->fields.sfmt_seth.f 3396 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 3397 const IDESC * UNUSED idesc = abuf->idesc; 3398 int cycles = 0; 3399 { 3400 int referenced = 0; 3401 int UNUSED insn_referenced = abuf->written; 3402 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); 3403 } 3404 return cycles; 3405 #undef FLD 3406 } 3407 3408 static int 3409 model_test_mvfaclo (SIM_CPU *current_cpu, void *sem_arg) 3410 { 3411 #define FLD(f) abuf->fields.sfmt_seth.f 3412 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 3413 const IDESC * UNUSED idesc = abuf->idesc; 3414 int cycles = 0; 3415 { 3416 int referenced = 0; 3417 int UNUSED insn_referenced = abuf->written; 3418 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); 3419 } 3420 return cycles; 3421 #undef FLD 3422 } 3423 3424 static int 3425 model_test_mvfacmi (SIM_CPU *current_cpu, void *sem_arg) 3426 { 3427 #define FLD(f) abuf->fields.sfmt_seth.f 3428 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 3429 const IDESC * UNUSED idesc = abuf->idesc; 3430 int cycles = 0; 3431 { 3432 int referenced = 0; 3433 int UNUSED insn_referenced = abuf->written; 3434 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); 3435 } 3436 return cycles; 3437 #undef FLD 3438 } 3439 3440 static int 3441 model_test_mvfc (SIM_CPU *current_cpu, void *sem_arg) 3442 { 3443 #define FLD(f) abuf->fields.sfmt_ld_plus.f 3444 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 3445 const IDESC * UNUSED idesc = abuf->idesc; 3446 int cycles = 0; 3447 { 3448 int referenced = 0; 3449 int UNUSED insn_referenced = abuf->written; 3450 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); 3451 } 3452 return cycles; 3453 #undef FLD 3454 } 3455 3456 static int 3457 model_test_mvtachi (SIM_CPU *current_cpu, void *sem_arg) 3458 { 3459 #define FLD(f) abuf->fields.sfmt_st_plus.f 3460 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 3461 const IDESC * UNUSED idesc = abuf->idesc; 3462 int cycles = 0; 3463 { 3464 int referenced = 0; 3465 int UNUSED insn_referenced = abuf->written; 3466 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); 3467 } 3468 return cycles; 3469 #undef FLD 3470 } 3471 3472 static int 3473 model_test_mvtaclo (SIM_CPU *current_cpu, void *sem_arg) 3474 { 3475 #define FLD(f) abuf->fields.sfmt_st_plus.f 3476 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 3477 const IDESC * UNUSED idesc = abuf->idesc; 3478 int cycles = 0; 3479 { 3480 int referenced = 0; 3481 int UNUSED insn_referenced = abuf->written; 3482 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); 3483 } 3484 return cycles; 3485 #undef FLD 3486 } 3487 3488 static int 3489 model_test_mvtc (SIM_CPU *current_cpu, void *sem_arg) 3490 { 3491 #define FLD(f) abuf->fields.sfmt_ld_plus.f 3492 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 3493 const IDESC * UNUSED idesc = abuf->idesc; 3494 int cycles = 0; 3495 { 3496 int referenced = 0; 3497 int UNUSED insn_referenced = abuf->written; 3498 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); 3499 } 3500 return cycles; 3501 #undef FLD 3502 } 3503 3504 static int 3505 model_test_neg (SIM_CPU *current_cpu, void *sem_arg) 3506 { 3507 #define FLD(f) abuf->fields.sfmt_ld_plus.f 3508 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 3509 const IDESC * UNUSED idesc = abuf->idesc; 3510 int cycles = 0; 3511 { 3512 int referenced = 0; 3513 int UNUSED insn_referenced = abuf->written; 3514 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); 3515 } 3516 return cycles; 3517 #undef FLD 3518 } 3519 3520 static int 3521 model_test_nop (SIM_CPU *current_cpu, void *sem_arg) 3522 { 3523 #define FLD(f) abuf->fields.sfmt_empty.f 3524 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 3525 const IDESC * UNUSED idesc = abuf->idesc; 3526 int cycles = 0; 3527 { 3528 int referenced = 0; 3529 int UNUSED insn_referenced = abuf->written; 3530 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); 3531 } 3532 return cycles; 3533 #undef FLD 3534 } 3535 3536 static int 3537 model_test_not (SIM_CPU *current_cpu, void *sem_arg) 3538 { 3539 #define FLD(f) abuf->fields.sfmt_ld_plus.f 3540 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 3541 const IDESC * UNUSED idesc = abuf->idesc; 3542 int cycles = 0; 3543 { 3544 int referenced = 0; 3545 int UNUSED insn_referenced = abuf->written; 3546 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); 3547 } 3548 return cycles; 3549 #undef FLD 3550 } 3551 3552 static int 3553 model_test_rac (SIM_CPU *current_cpu, void *sem_arg) 3554 { 3555 #define FLD(f) abuf->fields.sfmt_empty.f 3556 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 3557 const IDESC * UNUSED idesc = abuf->idesc; 3558 int cycles = 0; 3559 { 3560 int referenced = 0; 3561 int UNUSED insn_referenced = abuf->written; 3562 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); 3563 } 3564 return cycles; 3565 #undef FLD 3566 } 3567 3568 static int 3569 model_test_rach (SIM_CPU *current_cpu, void *sem_arg) 3570 { 3571 #define FLD(f) abuf->fields.sfmt_empty.f 3572 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 3573 const IDESC * UNUSED idesc = abuf->idesc; 3574 int cycles = 0; 3575 { 3576 int referenced = 0; 3577 int UNUSED insn_referenced = abuf->written; 3578 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); 3579 } 3580 return cycles; 3581 #undef FLD 3582 } 3583 3584 static int 3585 model_test_rte (SIM_CPU *current_cpu, void *sem_arg) 3586 { 3587 #define FLD(f) abuf->fields.sfmt_empty.f 3588 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 3589 const IDESC * UNUSED idesc = abuf->idesc; 3590 int cycles = 0; 3591 { 3592 int referenced = 0; 3593 int UNUSED insn_referenced = abuf->written; 3594 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); 3595 } 3596 return cycles; 3597 #undef FLD 3598 } 3599 3600 static int 3601 model_test_seth (SIM_CPU *current_cpu, void *sem_arg) 3602 { 3603 #define FLD(f) abuf->fields.sfmt_seth.f 3604 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 3605 const IDESC * UNUSED idesc = abuf->idesc; 3606 int cycles = 0; 3607 { 3608 int referenced = 0; 3609 int UNUSED insn_referenced = abuf->written; 3610 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); 3611 } 3612 return cycles; 3613 #undef FLD 3614 } 3615 3616 static int 3617 model_test_sll (SIM_CPU *current_cpu, void *sem_arg) 3618 { 3619 #define FLD(f) abuf->fields.sfmt_add.f 3620 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 3621 const IDESC * UNUSED idesc = abuf->idesc; 3622 int cycles = 0; 3623 { 3624 int referenced = 0; 3625 int UNUSED insn_referenced = abuf->written; 3626 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); 3627 } 3628 return cycles; 3629 #undef FLD 3630 } 3631 3632 static int 3633 model_test_sll3 (SIM_CPU *current_cpu, void *sem_arg) 3634 { 3635 #define FLD(f) abuf->fields.sfmt_add3.f 3636 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 3637 const IDESC * UNUSED idesc = abuf->idesc; 3638 int cycles = 0; 3639 { 3640 int referenced = 0; 3641 int UNUSED insn_referenced = abuf->written; 3642 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); 3643 } 3644 return cycles; 3645 #undef FLD 3646 } 3647 3648 static int 3649 model_test_slli (SIM_CPU *current_cpu, void *sem_arg) 3650 { 3651 #define FLD(f) abuf->fields.sfmt_slli.f 3652 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 3653 const IDESC * UNUSED idesc = abuf->idesc; 3654 int cycles = 0; 3655 { 3656 int referenced = 0; 3657 int UNUSED insn_referenced = abuf->written; 3658 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); 3659 } 3660 return cycles; 3661 #undef FLD 3662 } 3663 3664 static int 3665 model_test_sra (SIM_CPU *current_cpu, void *sem_arg) 3666 { 3667 #define FLD(f) abuf->fields.sfmt_add.f 3668 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 3669 const IDESC * UNUSED idesc = abuf->idesc; 3670 int cycles = 0; 3671 { 3672 int referenced = 0; 3673 int UNUSED insn_referenced = abuf->written; 3674 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); 3675 } 3676 return cycles; 3677 #undef FLD 3678 } 3679 3680 static int 3681 model_test_sra3 (SIM_CPU *current_cpu, void *sem_arg) 3682 { 3683 #define FLD(f) abuf->fields.sfmt_add3.f 3684 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 3685 const IDESC * UNUSED idesc = abuf->idesc; 3686 int cycles = 0; 3687 { 3688 int referenced = 0; 3689 int UNUSED insn_referenced = abuf->written; 3690 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); 3691 } 3692 return cycles; 3693 #undef FLD 3694 } 3695 3696 static int 3697 model_test_srai (SIM_CPU *current_cpu, void *sem_arg) 3698 { 3699 #define FLD(f) abuf->fields.sfmt_slli.f 3700 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 3701 const IDESC * UNUSED idesc = abuf->idesc; 3702 int cycles = 0; 3703 { 3704 int referenced = 0; 3705 int UNUSED insn_referenced = abuf->written; 3706 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); 3707 } 3708 return cycles; 3709 #undef FLD 3710 } 3711 3712 static int 3713 model_test_srl (SIM_CPU *current_cpu, void *sem_arg) 3714 { 3715 #define FLD(f) abuf->fields.sfmt_add.f 3716 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 3717 const IDESC * UNUSED idesc = abuf->idesc; 3718 int cycles = 0; 3719 { 3720 int referenced = 0; 3721 int UNUSED insn_referenced = abuf->written; 3722 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); 3723 } 3724 return cycles; 3725 #undef FLD 3726 } 3727 3728 static int 3729 model_test_srl3 (SIM_CPU *current_cpu, void *sem_arg) 3730 { 3731 #define FLD(f) abuf->fields.sfmt_add3.f 3732 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 3733 const IDESC * UNUSED idesc = abuf->idesc; 3734 int cycles = 0; 3735 { 3736 int referenced = 0; 3737 int UNUSED insn_referenced = abuf->written; 3738 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); 3739 } 3740 return cycles; 3741 #undef FLD 3742 } 3743 3744 static int 3745 model_test_srli (SIM_CPU *current_cpu, void *sem_arg) 3746 { 3747 #define FLD(f) abuf->fields.sfmt_slli.f 3748 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 3749 const IDESC * UNUSED idesc = abuf->idesc; 3750 int cycles = 0; 3751 { 3752 int referenced = 0; 3753 int UNUSED insn_referenced = abuf->written; 3754 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); 3755 } 3756 return cycles; 3757 #undef FLD 3758 } 3759 3760 static int 3761 model_test_st (SIM_CPU *current_cpu, void *sem_arg) 3762 { 3763 #define FLD(f) abuf->fields.sfmt_st_plus.f 3764 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 3765 const IDESC * UNUSED idesc = abuf->idesc; 3766 int cycles = 0; 3767 { 3768 int referenced = 0; 3769 int UNUSED insn_referenced = abuf->written; 3770 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); 3771 } 3772 return cycles; 3773 #undef FLD 3774 } 3775 3776 static int 3777 model_test_st_d (SIM_CPU *current_cpu, void *sem_arg) 3778 { 3779 #define FLD(f) abuf->fields.sfmt_st_d.f 3780 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 3781 const IDESC * UNUSED idesc = abuf->idesc; 3782 int cycles = 0; 3783 { 3784 int referenced = 0; 3785 int UNUSED insn_referenced = abuf->written; 3786 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); 3787 } 3788 return cycles; 3789 #undef FLD 3790 } 3791 3792 static int 3793 model_test_stb (SIM_CPU *current_cpu, void *sem_arg) 3794 { 3795 #define FLD(f) abuf->fields.sfmt_st_plus.f 3796 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 3797 const IDESC * UNUSED idesc = abuf->idesc; 3798 int cycles = 0; 3799 { 3800 int referenced = 0; 3801 int UNUSED insn_referenced = abuf->written; 3802 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); 3803 } 3804 return cycles; 3805 #undef FLD 3806 } 3807 3808 static int 3809 model_test_stb_d (SIM_CPU *current_cpu, void *sem_arg) 3810 { 3811 #define FLD(f) abuf->fields.sfmt_st_d.f 3812 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 3813 const IDESC * UNUSED idesc = abuf->idesc; 3814 int cycles = 0; 3815 { 3816 int referenced = 0; 3817 int UNUSED insn_referenced = abuf->written; 3818 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); 3819 } 3820 return cycles; 3821 #undef FLD 3822 } 3823 3824 static int 3825 model_test_sth (SIM_CPU *current_cpu, void *sem_arg) 3826 { 3827 #define FLD(f) abuf->fields.sfmt_st_plus.f 3828 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 3829 const IDESC * UNUSED idesc = abuf->idesc; 3830 int cycles = 0; 3831 { 3832 int referenced = 0; 3833 int UNUSED insn_referenced = abuf->written; 3834 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); 3835 } 3836 return cycles; 3837 #undef FLD 3838 } 3839 3840 static int 3841 model_test_sth_d (SIM_CPU *current_cpu, void *sem_arg) 3842 { 3843 #define FLD(f) abuf->fields.sfmt_st_d.f 3844 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 3845 const IDESC * UNUSED idesc = abuf->idesc; 3846 int cycles = 0; 3847 { 3848 int referenced = 0; 3849 int UNUSED insn_referenced = abuf->written; 3850 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); 3851 } 3852 return cycles; 3853 #undef FLD 3854 } 3855 3856 static int 3857 model_test_st_plus (SIM_CPU *current_cpu, void *sem_arg) 3858 { 3859 #define FLD(f) abuf->fields.sfmt_st_plus.f 3860 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 3861 const IDESC * UNUSED idesc = abuf->idesc; 3862 int cycles = 0; 3863 { 3864 int referenced = 0; 3865 int UNUSED insn_referenced = abuf->written; 3866 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); 3867 } 3868 return cycles; 3869 #undef FLD 3870 } 3871 3872 static int 3873 model_test_st_minus (SIM_CPU *current_cpu, void *sem_arg) 3874 { 3875 #define FLD(f) abuf->fields.sfmt_st_plus.f 3876 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 3877 const IDESC * UNUSED idesc = abuf->idesc; 3878 int cycles = 0; 3879 { 3880 int referenced = 0; 3881 int UNUSED insn_referenced = abuf->written; 3882 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); 3883 } 3884 return cycles; 3885 #undef FLD 3886 } 3887 3888 static int 3889 model_test_sub (SIM_CPU *current_cpu, void *sem_arg) 3890 { 3891 #define FLD(f) abuf->fields.sfmt_add.f 3892 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 3893 const IDESC * UNUSED idesc = abuf->idesc; 3894 int cycles = 0; 3895 { 3896 int referenced = 0; 3897 int UNUSED insn_referenced = abuf->written; 3898 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); 3899 } 3900 return cycles; 3901 #undef FLD 3902 } 3903 3904 static int 3905 model_test_subv (SIM_CPU *current_cpu, void *sem_arg) 3906 { 3907 #define FLD(f) abuf->fields.sfmt_add.f 3908 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 3909 const IDESC * UNUSED idesc = abuf->idesc; 3910 int cycles = 0; 3911 { 3912 int referenced = 0; 3913 int UNUSED insn_referenced = abuf->written; 3914 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); 3915 } 3916 return cycles; 3917 #undef FLD 3918 } 3919 3920 static int 3921 model_test_subx (SIM_CPU *current_cpu, void *sem_arg) 3922 { 3923 #define FLD(f) abuf->fields.sfmt_add.f 3924 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 3925 const IDESC * UNUSED idesc = abuf->idesc; 3926 int cycles = 0; 3927 { 3928 int referenced = 0; 3929 int UNUSED insn_referenced = abuf->written; 3930 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); 3931 } 3932 return cycles; 3933 #undef FLD 3934 } 3935 3936 static int 3937 model_test_trap (SIM_CPU *current_cpu, void *sem_arg) 3938 { 3939 #define FLD(f) abuf->fields.sfmt_trap.f 3940 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 3941 const IDESC * UNUSED idesc = abuf->idesc; 3942 int cycles = 0; 3943 { 3944 int referenced = 0; 3945 int UNUSED insn_referenced = abuf->written; 3946 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); 3947 } 3948 return cycles; 3949 #undef FLD 3950 } 3951 3952 static int 3953 model_test_unlock (SIM_CPU *current_cpu, void *sem_arg) 3954 { 3955 #define FLD(f) abuf->fields.sfmt_st_plus.f 3956 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 3957 const IDESC * UNUSED idesc = abuf->idesc; 3958 int cycles = 0; 3959 { 3960 int referenced = 0; 3961 int UNUSED insn_referenced = abuf->written; 3962 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); 3963 } 3964 return cycles; 3965 #undef FLD 3966 } 3967 3968 static int 3969 model_test_clrpsw (SIM_CPU *current_cpu, void *sem_arg) 3970 { 3971 #define FLD(f) abuf->fields.sfmt_clrpsw.f 3972 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 3973 const IDESC * UNUSED idesc = abuf->idesc; 3974 int cycles = 0; 3975 { 3976 int referenced = 0; 3977 int UNUSED insn_referenced = abuf->written; 3978 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); 3979 } 3980 return cycles; 3981 #undef FLD 3982 } 3983 3984 static int 3985 model_test_setpsw (SIM_CPU *current_cpu, void *sem_arg) 3986 { 3987 #define FLD(f) abuf->fields.sfmt_clrpsw.f 3988 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 3989 const IDESC * UNUSED idesc = abuf->idesc; 3990 int cycles = 0; 3991 { 3992 int referenced = 0; 3993 int UNUSED insn_referenced = abuf->written; 3994 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); 3995 } 3996 return cycles; 3997 #undef FLD 3998 } 3999 4000 static int 4001 model_test_bset (SIM_CPU *current_cpu, void *sem_arg) 4002 { 4003 #define FLD(f) abuf->fields.sfmt_bset.f 4004 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 4005 const IDESC * UNUSED idesc = abuf->idesc; 4006 int cycles = 0; 4007 { 4008 int referenced = 0; 4009 int UNUSED insn_referenced = abuf->written; 4010 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); 4011 } 4012 return cycles; 4013 #undef FLD 4014 } 4015 4016 static int 4017 model_test_bclr (SIM_CPU *current_cpu, void *sem_arg) 4018 { 4019 #define FLD(f) abuf->fields.sfmt_bset.f 4020 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 4021 const IDESC * UNUSED idesc = abuf->idesc; 4022 int cycles = 0; 4023 { 4024 int referenced = 0; 4025 int UNUSED insn_referenced = abuf->written; 4026 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); 4027 } 4028 return cycles; 4029 #undef FLD 4030 } 4031 4032 static int 4033 model_test_btst (SIM_CPU *current_cpu, void *sem_arg) 4034 { 4035 #define FLD(f) abuf->fields.sfmt_bset.f 4036 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 4037 const IDESC * UNUSED idesc = abuf->idesc; 4038 int cycles = 0; 4039 { 4040 int referenced = 0; 4041 int UNUSED insn_referenced = abuf->written; 4042 cycles += m32rbf_model_test_u_exec (current_cpu, idesc, 0, referenced); 4043 } 4044 return cycles; 4045 #undef FLD 4046 } 4047 4048 /* We assume UNIT_NONE == 0 because the tables don't always terminate 4049 entries with it. */ 4050 4051 /* Model timing data for `m32r/d'. */ 4052 4053 static const INSN_TIMING m32r_d_timing[] = { 4054 { M32RBF_INSN_X_INVALID, 0, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } }, 4055 { M32RBF_INSN_X_AFTER, 0, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } }, 4056 { M32RBF_INSN_X_BEFORE, 0, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } }, 4057 { M32RBF_INSN_X_CTI_CHAIN, 0, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } }, 4058 { M32RBF_INSN_X_CHAIN, 0, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } }, 4059 { M32RBF_INSN_X_BEGIN, 0, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } }, 4060 { M32RBF_INSN_ADD, model_m32r_d_add, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } }, 4061 { M32RBF_INSN_ADD3, model_m32r_d_add3, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } }, 4062 { M32RBF_INSN_AND, model_m32r_d_and, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } }, 4063 { M32RBF_INSN_AND3, model_m32r_d_and3, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } }, 4064 { M32RBF_INSN_OR, model_m32r_d_or, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } }, 4065 { M32RBF_INSN_OR3, model_m32r_d_or3, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } }, 4066 { M32RBF_INSN_XOR, model_m32r_d_xor, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } }, 4067 { M32RBF_INSN_XOR3, model_m32r_d_xor3, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } }, 4068 { M32RBF_INSN_ADDI, model_m32r_d_addi, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } }, 4069 { M32RBF_INSN_ADDV, model_m32r_d_addv, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } }, 4070 { M32RBF_INSN_ADDV3, model_m32r_d_addv3, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } }, 4071 { M32RBF_INSN_ADDX, model_m32r_d_addx, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } }, 4072 { M32RBF_INSN_BC8, model_m32r_d_bc8, { { (int) UNIT_M32R_D_U_CTI, 1, 1 } } }, 4073 { M32RBF_INSN_BC24, model_m32r_d_bc24, { { (int) UNIT_M32R_D_U_CTI, 1, 1 } } }, 4074 { M32RBF_INSN_BEQ, model_m32r_d_beq, { { (int) UNIT_M32R_D_U_CTI, 1, 1 }, { (int) UNIT_M32R_D_U_CMP, 1, 0 } } }, 4075 { M32RBF_INSN_BEQZ, model_m32r_d_beqz, { { (int) UNIT_M32R_D_U_CTI, 1, 1 }, { (int) UNIT_M32R_D_U_CMP, 1, 0 } } }, 4076 { M32RBF_INSN_BGEZ, model_m32r_d_bgez, { { (int) UNIT_M32R_D_U_CTI, 1, 1 }, { (int) UNIT_M32R_D_U_CMP, 1, 0 } } }, 4077 { M32RBF_INSN_BGTZ, model_m32r_d_bgtz, { { (int) UNIT_M32R_D_U_CTI, 1, 1 }, { (int) UNIT_M32R_D_U_CMP, 1, 0 } } }, 4078 { M32RBF_INSN_BLEZ, model_m32r_d_blez, { { (int) UNIT_M32R_D_U_CTI, 1, 1 }, { (int) UNIT_M32R_D_U_CMP, 1, 0 } } }, 4079 { M32RBF_INSN_BLTZ, model_m32r_d_bltz, { { (int) UNIT_M32R_D_U_CTI, 1, 1 }, { (int) UNIT_M32R_D_U_CMP, 1, 0 } } }, 4080 { M32RBF_INSN_BNEZ, model_m32r_d_bnez, { { (int) UNIT_M32R_D_U_CTI, 1, 1 }, { (int) UNIT_M32R_D_U_CMP, 1, 0 } } }, 4081 { M32RBF_INSN_BL8, model_m32r_d_bl8, { { (int) UNIT_M32R_D_U_CTI, 1, 1 } } }, 4082 { M32RBF_INSN_BL24, model_m32r_d_bl24, { { (int) UNIT_M32R_D_U_CTI, 1, 1 } } }, 4083 { M32RBF_INSN_BNC8, model_m32r_d_bnc8, { { (int) UNIT_M32R_D_U_CTI, 1, 1 } } }, 4084 { M32RBF_INSN_BNC24, model_m32r_d_bnc24, { { (int) UNIT_M32R_D_U_CTI, 1, 1 } } }, 4085 { M32RBF_INSN_BNE, model_m32r_d_bne, { { (int) UNIT_M32R_D_U_CTI, 1, 1 }, { (int) UNIT_M32R_D_U_CMP, 1, 0 } } }, 4086 { M32RBF_INSN_BRA8, model_m32r_d_bra8, { { (int) UNIT_M32R_D_U_CTI, 1, 1 } } }, 4087 { M32RBF_INSN_BRA24, model_m32r_d_bra24, { { (int) UNIT_M32R_D_U_CTI, 1, 1 } } }, 4088 { M32RBF_INSN_CMP, model_m32r_d_cmp, { { (int) UNIT_M32R_D_U_CMP, 1, 1 } } }, 4089 { M32RBF_INSN_CMPI, model_m32r_d_cmpi, { { (int) UNIT_M32R_D_U_CMP, 1, 1 } } }, 4090 { M32RBF_INSN_CMPU, model_m32r_d_cmpu, { { (int) UNIT_M32R_D_U_CMP, 1, 1 } } }, 4091 { M32RBF_INSN_CMPUI, model_m32r_d_cmpui, { { (int) UNIT_M32R_D_U_CMP, 1, 1 } } }, 4092 { M32RBF_INSN_DIV, model_m32r_d_div, { { (int) UNIT_M32R_D_U_EXEC, 1, 37 } } }, 4093 { M32RBF_INSN_DIVU, model_m32r_d_divu, { { (int) UNIT_M32R_D_U_EXEC, 1, 37 } } }, 4094 { M32RBF_INSN_REM, model_m32r_d_rem, { { (int) UNIT_M32R_D_U_EXEC, 1, 37 } } }, 4095 { M32RBF_INSN_REMU, model_m32r_d_remu, { { (int) UNIT_M32R_D_U_EXEC, 1, 37 } } }, 4096 { M32RBF_INSN_JL, model_m32r_d_jl, { { (int) UNIT_M32R_D_U_CTI, 1, 1 } } }, 4097 { M32RBF_INSN_JMP, model_m32r_d_jmp, { { (int) UNIT_M32R_D_U_CTI, 1, 1 } } }, 4098 { M32RBF_INSN_LD, model_m32r_d_ld, { { (int) UNIT_M32R_D_U_LOAD, 1, 1 } } }, 4099 { M32RBF_INSN_LD_D, model_m32r_d_ld_d, { { (int) UNIT_M32R_D_U_LOAD, 1, 2 } } }, 4100 { M32RBF_INSN_LDB, model_m32r_d_ldb, { { (int) UNIT_M32R_D_U_LOAD, 1, 1 } } }, 4101 { M32RBF_INSN_LDB_D, model_m32r_d_ldb_d, { { (int) UNIT_M32R_D_U_LOAD, 1, 2 } } }, 4102 { M32RBF_INSN_LDH, model_m32r_d_ldh, { { (int) UNIT_M32R_D_U_LOAD, 1, 1 } } }, 4103 { M32RBF_INSN_LDH_D, model_m32r_d_ldh_d, { { (int) UNIT_M32R_D_U_LOAD, 1, 2 } } }, 4104 { M32RBF_INSN_LDUB, model_m32r_d_ldub, { { (int) UNIT_M32R_D_U_LOAD, 1, 1 } } }, 4105 { M32RBF_INSN_LDUB_D, model_m32r_d_ldub_d, { { (int) UNIT_M32R_D_U_LOAD, 1, 2 } } }, 4106 { M32RBF_INSN_LDUH, model_m32r_d_lduh, { { (int) UNIT_M32R_D_U_LOAD, 1, 1 } } }, 4107 { M32RBF_INSN_LDUH_D, model_m32r_d_lduh_d, { { (int) UNIT_M32R_D_U_LOAD, 1, 2 } } }, 4108 { M32RBF_INSN_LD_PLUS, model_m32r_d_ld_plus, { { (int) UNIT_M32R_D_U_LOAD, 1, 1 }, { (int) UNIT_M32R_D_U_EXEC, 1, 0 } } }, 4109 { M32RBF_INSN_LD24, model_m32r_d_ld24, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } }, 4110 { M32RBF_INSN_LDI8, model_m32r_d_ldi8, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } }, 4111 { M32RBF_INSN_LDI16, model_m32r_d_ldi16, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } }, 4112 { M32RBF_INSN_LOCK, model_m32r_d_lock, { { (int) UNIT_M32R_D_U_LOAD, 1, 1 } } }, 4113 { M32RBF_INSN_MACHI, model_m32r_d_machi, { { (int) UNIT_M32R_D_U_MAC, 1, 1 } } }, 4114 { M32RBF_INSN_MACLO, model_m32r_d_maclo, { { (int) UNIT_M32R_D_U_MAC, 1, 1 } } }, 4115 { M32RBF_INSN_MACWHI, model_m32r_d_macwhi, { { (int) UNIT_M32R_D_U_MAC, 1, 1 } } }, 4116 { M32RBF_INSN_MACWLO, model_m32r_d_macwlo, { { (int) UNIT_M32R_D_U_MAC, 1, 1 } } }, 4117 { M32RBF_INSN_MUL, model_m32r_d_mul, { { (int) UNIT_M32R_D_U_EXEC, 1, 4 } } }, 4118 { M32RBF_INSN_MULHI, model_m32r_d_mulhi, { { (int) UNIT_M32R_D_U_MAC, 1, 1 } } }, 4119 { M32RBF_INSN_MULLO, model_m32r_d_mullo, { { (int) UNIT_M32R_D_U_MAC, 1, 1 } } }, 4120 { M32RBF_INSN_MULWHI, model_m32r_d_mulwhi, { { (int) UNIT_M32R_D_U_MAC, 1, 1 } } }, 4121 { M32RBF_INSN_MULWLO, model_m32r_d_mulwlo, { { (int) UNIT_M32R_D_U_MAC, 1, 1 } } }, 4122 { M32RBF_INSN_MV, model_m32r_d_mv, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } }, 4123 { M32RBF_INSN_MVFACHI, model_m32r_d_mvfachi, { { (int) UNIT_M32R_D_U_EXEC, 1, 2 } } }, 4124 { M32RBF_INSN_MVFACLO, model_m32r_d_mvfaclo, { { (int) UNIT_M32R_D_U_EXEC, 1, 2 } } }, 4125 { M32RBF_INSN_MVFACMI, model_m32r_d_mvfacmi, { { (int) UNIT_M32R_D_U_EXEC, 1, 2 } } }, 4126 { M32RBF_INSN_MVFC, model_m32r_d_mvfc, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } }, 4127 { M32RBF_INSN_MVTACHI, model_m32r_d_mvtachi, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } }, 4128 { M32RBF_INSN_MVTACLO, model_m32r_d_mvtaclo, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } }, 4129 { M32RBF_INSN_MVTC, model_m32r_d_mvtc, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } }, 4130 { M32RBF_INSN_NEG, model_m32r_d_neg, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } }, 4131 { M32RBF_INSN_NOP, model_m32r_d_nop, { { (int) UNIT_M32R_D_U_EXEC, 1, 0 } } }, 4132 { M32RBF_INSN_NOT, model_m32r_d_not, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } }, 4133 { M32RBF_INSN_RAC, model_m32r_d_rac, { { (int) UNIT_M32R_D_U_MAC, 1, 1 } } }, 4134 { M32RBF_INSN_RACH, model_m32r_d_rach, { { (int) UNIT_M32R_D_U_MAC, 1, 1 } } }, 4135 { M32RBF_INSN_RTE, model_m32r_d_rte, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } }, 4136 { M32RBF_INSN_SETH, model_m32r_d_seth, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } }, 4137 { M32RBF_INSN_SLL, model_m32r_d_sll, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } }, 4138 { M32RBF_INSN_SLL3, model_m32r_d_sll3, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } }, 4139 { M32RBF_INSN_SLLI, model_m32r_d_slli, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } }, 4140 { M32RBF_INSN_SRA, model_m32r_d_sra, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } }, 4141 { M32RBF_INSN_SRA3, model_m32r_d_sra3, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } }, 4142 { M32RBF_INSN_SRAI, model_m32r_d_srai, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } }, 4143 { M32RBF_INSN_SRL, model_m32r_d_srl, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } }, 4144 { M32RBF_INSN_SRL3, model_m32r_d_srl3, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } }, 4145 { M32RBF_INSN_SRLI, model_m32r_d_srli, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } }, 4146 { M32RBF_INSN_ST, model_m32r_d_st, { { (int) UNIT_M32R_D_U_STORE, 1, 1 } } }, 4147 { M32RBF_INSN_ST_D, model_m32r_d_st_d, { { (int) UNIT_M32R_D_U_STORE, 1, 2 } } }, 4148 { M32RBF_INSN_STB, model_m32r_d_stb, { { (int) UNIT_M32R_D_U_STORE, 1, 1 } } }, 4149 { M32RBF_INSN_STB_D, model_m32r_d_stb_d, { { (int) UNIT_M32R_D_U_STORE, 1, 2 } } }, 4150 { M32RBF_INSN_STH, model_m32r_d_sth, { { (int) UNIT_M32R_D_U_STORE, 1, 1 } } }, 4151 { M32RBF_INSN_STH_D, model_m32r_d_sth_d, { { (int) UNIT_M32R_D_U_STORE, 1, 2 } } }, 4152 { M32RBF_INSN_ST_PLUS, model_m32r_d_st_plus, { { (int) UNIT_M32R_D_U_STORE, 1, 1 }, { (int) UNIT_M32R_D_U_EXEC, 1, 0 } } }, 4153 { M32RBF_INSN_ST_MINUS, model_m32r_d_st_minus, { { (int) UNIT_M32R_D_U_STORE, 1, 1 }, { (int) UNIT_M32R_D_U_EXEC, 1, 0 } } }, 4154 { M32RBF_INSN_SUB, model_m32r_d_sub, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } }, 4155 { M32RBF_INSN_SUBV, model_m32r_d_subv, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } }, 4156 { M32RBF_INSN_SUBX, model_m32r_d_subx, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } }, 4157 { M32RBF_INSN_TRAP, model_m32r_d_trap, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } }, 4158 { M32RBF_INSN_UNLOCK, model_m32r_d_unlock, { { (int) UNIT_M32R_D_U_LOAD, 1, 1 } } }, 4159 { M32RBF_INSN_CLRPSW, model_m32r_d_clrpsw, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } }, 4160 { M32RBF_INSN_SETPSW, model_m32r_d_setpsw, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } }, 4161 { M32RBF_INSN_BSET, model_m32r_d_bset, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } }, 4162 { M32RBF_INSN_BCLR, model_m32r_d_bclr, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } }, 4163 { M32RBF_INSN_BTST, model_m32r_d_btst, { { (int) UNIT_M32R_D_U_EXEC, 1, 1 } } }, 4164 }; 4165 4166 /* Model timing data for `test'. */ 4167 4168 static const INSN_TIMING test_timing[] = { 4169 { M32RBF_INSN_X_INVALID, 0, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, 4170 { M32RBF_INSN_X_AFTER, 0, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, 4171 { M32RBF_INSN_X_BEFORE, 0, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, 4172 { M32RBF_INSN_X_CTI_CHAIN, 0, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, 4173 { M32RBF_INSN_X_CHAIN, 0, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, 4174 { M32RBF_INSN_X_BEGIN, 0, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, 4175 { M32RBF_INSN_ADD, model_test_add, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, 4176 { M32RBF_INSN_ADD3, model_test_add3, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, 4177 { M32RBF_INSN_AND, model_test_and, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, 4178 { M32RBF_INSN_AND3, model_test_and3, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, 4179 { M32RBF_INSN_OR, model_test_or, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, 4180 { M32RBF_INSN_OR3, model_test_or3, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, 4181 { M32RBF_INSN_XOR, model_test_xor, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, 4182 { M32RBF_INSN_XOR3, model_test_xor3, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, 4183 { M32RBF_INSN_ADDI, model_test_addi, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, 4184 { M32RBF_INSN_ADDV, model_test_addv, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, 4185 { M32RBF_INSN_ADDV3, model_test_addv3, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, 4186 { M32RBF_INSN_ADDX, model_test_addx, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, 4187 { M32RBF_INSN_BC8, model_test_bc8, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, 4188 { M32RBF_INSN_BC24, model_test_bc24, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, 4189 { M32RBF_INSN_BEQ, model_test_beq, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, 4190 { M32RBF_INSN_BEQZ, model_test_beqz, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, 4191 { M32RBF_INSN_BGEZ, model_test_bgez, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, 4192 { M32RBF_INSN_BGTZ, model_test_bgtz, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, 4193 { M32RBF_INSN_BLEZ, model_test_blez, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, 4194 { M32RBF_INSN_BLTZ, model_test_bltz, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, 4195 { M32RBF_INSN_BNEZ, model_test_bnez, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, 4196 { M32RBF_INSN_BL8, model_test_bl8, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, 4197 { M32RBF_INSN_BL24, model_test_bl24, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, 4198 { M32RBF_INSN_BNC8, model_test_bnc8, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, 4199 { M32RBF_INSN_BNC24, model_test_bnc24, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, 4200 { M32RBF_INSN_BNE, model_test_bne, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, 4201 { M32RBF_INSN_BRA8, model_test_bra8, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, 4202 { M32RBF_INSN_BRA24, model_test_bra24, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, 4203 { M32RBF_INSN_CMP, model_test_cmp, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, 4204 { M32RBF_INSN_CMPI, model_test_cmpi, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, 4205 { M32RBF_INSN_CMPU, model_test_cmpu, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, 4206 { M32RBF_INSN_CMPUI, model_test_cmpui, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, 4207 { M32RBF_INSN_DIV, model_test_div, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, 4208 { M32RBF_INSN_DIVU, model_test_divu, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, 4209 { M32RBF_INSN_REM, model_test_rem, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, 4210 { M32RBF_INSN_REMU, model_test_remu, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, 4211 { M32RBF_INSN_JL, model_test_jl, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, 4212 { M32RBF_INSN_JMP, model_test_jmp, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, 4213 { M32RBF_INSN_LD, model_test_ld, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, 4214 { M32RBF_INSN_LD_D, model_test_ld_d, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, 4215 { M32RBF_INSN_LDB, model_test_ldb, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, 4216 { M32RBF_INSN_LDB_D, model_test_ldb_d, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, 4217 { M32RBF_INSN_LDH, model_test_ldh, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, 4218 { M32RBF_INSN_LDH_D, model_test_ldh_d, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, 4219 { M32RBF_INSN_LDUB, model_test_ldub, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, 4220 { M32RBF_INSN_LDUB_D, model_test_ldub_d, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, 4221 { M32RBF_INSN_LDUH, model_test_lduh, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, 4222 { M32RBF_INSN_LDUH_D, model_test_lduh_d, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, 4223 { M32RBF_INSN_LD_PLUS, model_test_ld_plus, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, 4224 { M32RBF_INSN_LD24, model_test_ld24, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, 4225 { M32RBF_INSN_LDI8, model_test_ldi8, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, 4226 { M32RBF_INSN_LDI16, model_test_ldi16, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, 4227 { M32RBF_INSN_LOCK, model_test_lock, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, 4228 { M32RBF_INSN_MACHI, model_test_machi, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, 4229 { M32RBF_INSN_MACLO, model_test_maclo, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, 4230 { M32RBF_INSN_MACWHI, model_test_macwhi, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, 4231 { M32RBF_INSN_MACWLO, model_test_macwlo, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, 4232 { M32RBF_INSN_MUL, model_test_mul, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, 4233 { M32RBF_INSN_MULHI, model_test_mulhi, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, 4234 { M32RBF_INSN_MULLO, model_test_mullo, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, 4235 { M32RBF_INSN_MULWHI, model_test_mulwhi, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, 4236 { M32RBF_INSN_MULWLO, model_test_mulwlo, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, 4237 { M32RBF_INSN_MV, model_test_mv, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, 4238 { M32RBF_INSN_MVFACHI, model_test_mvfachi, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, 4239 { M32RBF_INSN_MVFACLO, model_test_mvfaclo, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, 4240 { M32RBF_INSN_MVFACMI, model_test_mvfacmi, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, 4241 { M32RBF_INSN_MVFC, model_test_mvfc, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, 4242 { M32RBF_INSN_MVTACHI, model_test_mvtachi, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, 4243 { M32RBF_INSN_MVTACLO, model_test_mvtaclo, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, 4244 { M32RBF_INSN_MVTC, model_test_mvtc, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, 4245 { M32RBF_INSN_NEG, model_test_neg, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, 4246 { M32RBF_INSN_NOP, model_test_nop, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, 4247 { M32RBF_INSN_NOT, model_test_not, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, 4248 { M32RBF_INSN_RAC, model_test_rac, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, 4249 { M32RBF_INSN_RACH, model_test_rach, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, 4250 { M32RBF_INSN_RTE, model_test_rte, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, 4251 { M32RBF_INSN_SETH, model_test_seth, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, 4252 { M32RBF_INSN_SLL, model_test_sll, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, 4253 { M32RBF_INSN_SLL3, model_test_sll3, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, 4254 { M32RBF_INSN_SLLI, model_test_slli, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, 4255 { M32RBF_INSN_SRA, model_test_sra, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, 4256 { M32RBF_INSN_SRA3, model_test_sra3, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, 4257 { M32RBF_INSN_SRAI, model_test_srai, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, 4258 { M32RBF_INSN_SRL, model_test_srl, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, 4259 { M32RBF_INSN_SRL3, model_test_srl3, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, 4260 { M32RBF_INSN_SRLI, model_test_srli, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, 4261 { M32RBF_INSN_ST, model_test_st, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, 4262 { M32RBF_INSN_ST_D, model_test_st_d, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, 4263 { M32RBF_INSN_STB, model_test_stb, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, 4264 { M32RBF_INSN_STB_D, model_test_stb_d, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, 4265 { M32RBF_INSN_STH, model_test_sth, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, 4266 { M32RBF_INSN_STH_D, model_test_sth_d, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, 4267 { M32RBF_INSN_ST_PLUS, model_test_st_plus, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, 4268 { M32RBF_INSN_ST_MINUS, model_test_st_minus, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, 4269 { M32RBF_INSN_SUB, model_test_sub, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, 4270 { M32RBF_INSN_SUBV, model_test_subv, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, 4271 { M32RBF_INSN_SUBX, model_test_subx, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, 4272 { M32RBF_INSN_TRAP, model_test_trap, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, 4273 { M32RBF_INSN_UNLOCK, model_test_unlock, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, 4274 { M32RBF_INSN_CLRPSW, model_test_clrpsw, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, 4275 { M32RBF_INSN_SETPSW, model_test_setpsw, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, 4276 { M32RBF_INSN_BSET, model_test_bset, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, 4277 { M32RBF_INSN_BCLR, model_test_bclr, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, 4278 { M32RBF_INSN_BTST, model_test_btst, { { (int) UNIT_TEST_U_EXEC, 1, 1 } } }, 4279 }; 4280 4281 #endif /* WITH_PROFILE_MODEL_P */ 4282 4283 static void 4284 m32r_d_model_init (SIM_CPU *cpu) 4285 { 4286 CPU_MODEL_DATA (cpu) = (void *) zalloc (sizeof (MODEL_M32R_D_DATA)); 4287 } 4288 4289 static void 4290 test_model_init (SIM_CPU *cpu) 4291 { 4292 CPU_MODEL_DATA (cpu) = (void *) zalloc (sizeof (MODEL_TEST_DATA)); 4293 } 4294 4295 #if WITH_PROFILE_MODEL_P 4296 #define TIMING_DATA(td) td 4297 #else 4298 #define TIMING_DATA(td) 0 4299 #endif 4300 4301 static const SIM_MODEL m32r_models[] = 4302 { 4303 { "m32r/d", & m32r_mach, MODEL_M32R_D, TIMING_DATA (& m32r_d_timing[0]), m32r_d_model_init }, 4304 { "test", & m32r_mach, MODEL_TEST, TIMING_DATA (& test_timing[0]), test_model_init }, 4305 { 0 } 4306 }; 4307 4308 /* The properties of this cpu's implementation. */ 4309 4310 static const SIM_MACH_IMP_PROPERTIES m32rbf_imp_properties = 4311 { 4312 sizeof (SIM_CPU), 4313 #if WITH_SCACHE 4314 sizeof (SCACHE) 4315 #else 4316 0 4317 #endif 4318 }; 4319 4320 4321 static void 4322 m32rbf_prepare_run (SIM_CPU *cpu) 4323 { 4324 if (CPU_IDESC (cpu) == NULL) 4325 m32rbf_init_idesc_table (cpu); 4326 } 4327 4328 static const CGEN_INSN * 4329 m32rbf_get_idata (SIM_CPU *cpu, int inum) 4330 { 4331 return CPU_IDESC (cpu) [inum].idata; 4332 } 4333 4334 static void 4335 m32r_init_cpu (SIM_CPU *cpu) 4336 { 4337 CPU_REG_FETCH (cpu) = m32rbf_fetch_register; 4338 CPU_REG_STORE (cpu) = m32rbf_store_register; 4339 CPU_PC_FETCH (cpu) = m32rbf_h_pc_get; 4340 CPU_PC_STORE (cpu) = m32rbf_h_pc_set; 4341 CPU_GET_IDATA (cpu) = m32rbf_get_idata; 4342 CPU_MAX_INSNS (cpu) = M32RBF_INSN__MAX; 4343 CPU_INSN_NAME (cpu) = cgen_insn_name; 4344 CPU_FULL_ENGINE_FN (cpu) = m32rbf_engine_run_full; 4345 #if WITH_FAST 4346 CPU_FAST_ENGINE_FN (cpu) = m32rbf_engine_run_fast; 4347 #else 4348 CPU_FAST_ENGINE_FN (cpu) = m32rbf_engine_run_full; 4349 #endif 4350 } 4351 4352 const SIM_MACH m32r_mach = 4353 { 4354 "m32r", "m32r", MACH_M32R, 4355 32, 32, & m32r_models[0], & m32rbf_imp_properties, 4356 m32r_init_cpu, 4357 m32rbf_prepare_run 4358 }; 4359 4360