model.c revision 1.1.1.5
1/* Simulator model support for iq2000bf. 2 3THIS FILE IS MACHINE GENERATED WITH CGEN. 4 5Copyright 1996-2016 Free Software Foundation, Inc. 6 7This 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, see <http://www.gnu.org/licenses/>. 21 22*/ 23 24#define WANT_CPU iq2000bf 25#define WANT_CPU_IQ2000BF 26 27#include "sim-main.h" 28 29/* The profiling data is recorded here, but is accessed via the profiling 30 mechanism. After all, this is information for profiling. */ 31 32#if WITH_PROFILE_MODEL_P 33 34/* Model handlers for each insn. */ 35 36static int 37model_iq2000_add (SIM_CPU *current_cpu, void *sem_arg) 38{ 39#define FLD(f) abuf->fields.sfmt_mrgb.f 40 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 41 const IDESC * UNUSED idesc = abuf->idesc; 42 int cycles = 0; 43 { 44 int referenced = 0; 45 int UNUSED insn_referenced = abuf->written; 46 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 47 } 48 return cycles; 49#undef FLD 50} 51 52static int 53model_iq2000_addi (SIM_CPU *current_cpu, void *sem_arg) 54{ 55#define FLD(f) abuf->fields.sfmt_addi.f 56 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 57 const IDESC * UNUSED idesc = abuf->idesc; 58 int cycles = 0; 59 { 60 int referenced = 0; 61 int UNUSED insn_referenced = abuf->written; 62 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 63 } 64 return cycles; 65#undef FLD 66} 67 68static int 69model_iq2000_addiu (SIM_CPU *current_cpu, void *sem_arg) 70{ 71#define FLD(f) abuf->fields.sfmt_addi.f 72 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 73 const IDESC * UNUSED idesc = abuf->idesc; 74 int cycles = 0; 75 { 76 int referenced = 0; 77 int UNUSED insn_referenced = abuf->written; 78 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 79 } 80 return cycles; 81#undef FLD 82} 83 84static int 85model_iq2000_addu (SIM_CPU *current_cpu, void *sem_arg) 86{ 87#define FLD(f) abuf->fields.sfmt_mrgb.f 88 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 89 const IDESC * UNUSED idesc = abuf->idesc; 90 int cycles = 0; 91 { 92 int referenced = 0; 93 int UNUSED insn_referenced = abuf->written; 94 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 95 } 96 return cycles; 97#undef FLD 98} 99 100static int 101model_iq2000_ado16 (SIM_CPU *current_cpu, void *sem_arg) 102{ 103#define FLD(f) abuf->fields.sfmt_mrgb.f 104 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 105 const IDESC * UNUSED idesc = abuf->idesc; 106 int cycles = 0; 107 { 108 int referenced = 0; 109 int UNUSED insn_referenced = abuf->written; 110 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 111 } 112 return cycles; 113#undef FLD 114} 115 116static int 117model_iq2000_and (SIM_CPU *current_cpu, void *sem_arg) 118{ 119#define FLD(f) abuf->fields.sfmt_mrgb.f 120 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 121 const IDESC * UNUSED idesc = abuf->idesc; 122 int cycles = 0; 123 { 124 int referenced = 0; 125 int UNUSED insn_referenced = abuf->written; 126 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 127 } 128 return cycles; 129#undef FLD 130} 131 132static int 133model_iq2000_andi (SIM_CPU *current_cpu, void *sem_arg) 134{ 135#define FLD(f) abuf->fields.sfmt_addi.f 136 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 137 const IDESC * UNUSED idesc = abuf->idesc; 138 int cycles = 0; 139 { 140 int referenced = 0; 141 int UNUSED insn_referenced = abuf->written; 142 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 143 } 144 return cycles; 145#undef FLD 146} 147 148static int 149model_iq2000_andoi (SIM_CPU *current_cpu, void *sem_arg) 150{ 151#define FLD(f) abuf->fields.sfmt_addi.f 152 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 153 const IDESC * UNUSED idesc = abuf->idesc; 154 int cycles = 0; 155 { 156 int referenced = 0; 157 int UNUSED insn_referenced = abuf->written; 158 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 159 } 160 return cycles; 161#undef FLD 162} 163 164static int 165model_iq2000_nor (SIM_CPU *current_cpu, void *sem_arg) 166{ 167#define FLD(f) abuf->fields.sfmt_mrgb.f 168 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 169 const IDESC * UNUSED idesc = abuf->idesc; 170 int cycles = 0; 171 { 172 int referenced = 0; 173 int UNUSED insn_referenced = abuf->written; 174 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 175 } 176 return cycles; 177#undef FLD 178} 179 180static int 181model_iq2000_or (SIM_CPU *current_cpu, void *sem_arg) 182{ 183#define FLD(f) abuf->fields.sfmt_mrgb.f 184 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 185 const IDESC * UNUSED idesc = abuf->idesc; 186 int cycles = 0; 187 { 188 int referenced = 0; 189 int UNUSED insn_referenced = abuf->written; 190 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 191 } 192 return cycles; 193#undef FLD 194} 195 196static int 197model_iq2000_ori (SIM_CPU *current_cpu, void *sem_arg) 198{ 199#define FLD(f) abuf->fields.sfmt_addi.f 200 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 201 const IDESC * UNUSED idesc = abuf->idesc; 202 int cycles = 0; 203 { 204 int referenced = 0; 205 int UNUSED insn_referenced = abuf->written; 206 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 207 } 208 return cycles; 209#undef FLD 210} 211 212static int 213model_iq2000_ram (SIM_CPU *current_cpu, void *sem_arg) 214{ 215#define FLD(f) abuf->fields.sfmt_ram.f 216 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 217 const IDESC * UNUSED idesc = abuf->idesc; 218 int cycles = 0; 219 { 220 int referenced = 0; 221 int UNUSED insn_referenced = abuf->written; 222 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 223 } 224 return cycles; 225#undef FLD 226} 227 228static int 229model_iq2000_sll (SIM_CPU *current_cpu, void *sem_arg) 230{ 231#define FLD(f) abuf->fields.sfmt_ram.f 232 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 233 const IDESC * UNUSED idesc = abuf->idesc; 234 int cycles = 0; 235 { 236 int referenced = 0; 237 int UNUSED insn_referenced = abuf->written; 238 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 239 } 240 return cycles; 241#undef FLD 242} 243 244static int 245model_iq2000_sllv (SIM_CPU *current_cpu, void *sem_arg) 246{ 247#define FLD(f) abuf->fields.sfmt_mrgb.f 248 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 249 const IDESC * UNUSED idesc = abuf->idesc; 250 int cycles = 0; 251 { 252 int referenced = 0; 253 int UNUSED insn_referenced = abuf->written; 254 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 255 } 256 return cycles; 257#undef FLD 258} 259 260static int 261model_iq2000_slmv (SIM_CPU *current_cpu, void *sem_arg) 262{ 263#define FLD(f) abuf->fields.sfmt_ram.f 264 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 265 const IDESC * UNUSED idesc = abuf->idesc; 266 int cycles = 0; 267 { 268 int referenced = 0; 269 int UNUSED insn_referenced = abuf->written; 270 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 271 } 272 return cycles; 273#undef FLD 274} 275 276static int 277model_iq2000_slt (SIM_CPU *current_cpu, void *sem_arg) 278{ 279#define FLD(f) abuf->fields.sfmt_mrgb.f 280 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 281 const IDESC * UNUSED idesc = abuf->idesc; 282 int cycles = 0; 283 { 284 int referenced = 0; 285 int UNUSED insn_referenced = abuf->written; 286 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 287 } 288 return cycles; 289#undef FLD 290} 291 292static int 293model_iq2000_slti (SIM_CPU *current_cpu, void *sem_arg) 294{ 295#define FLD(f) abuf->fields.sfmt_addi.f 296 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 297 const IDESC * UNUSED idesc = abuf->idesc; 298 int cycles = 0; 299 { 300 int referenced = 0; 301 int UNUSED insn_referenced = abuf->written; 302 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 303 } 304 return cycles; 305#undef FLD 306} 307 308static int 309model_iq2000_sltiu (SIM_CPU *current_cpu, void *sem_arg) 310{ 311#define FLD(f) abuf->fields.sfmt_addi.f 312 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 313 const IDESC * UNUSED idesc = abuf->idesc; 314 int cycles = 0; 315 { 316 int referenced = 0; 317 int UNUSED insn_referenced = abuf->written; 318 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 319 } 320 return cycles; 321#undef FLD 322} 323 324static int 325model_iq2000_sltu (SIM_CPU *current_cpu, void *sem_arg) 326{ 327#define FLD(f) abuf->fields.sfmt_mrgb.f 328 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 329 const IDESC * UNUSED idesc = abuf->idesc; 330 int cycles = 0; 331 { 332 int referenced = 0; 333 int UNUSED insn_referenced = abuf->written; 334 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 335 } 336 return cycles; 337#undef FLD 338} 339 340static int 341model_iq2000_sra (SIM_CPU *current_cpu, void *sem_arg) 342{ 343#define FLD(f) abuf->fields.sfmt_ram.f 344 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 345 const IDESC * UNUSED idesc = abuf->idesc; 346 int cycles = 0; 347 { 348 int referenced = 0; 349 int UNUSED insn_referenced = abuf->written; 350 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 351 } 352 return cycles; 353#undef FLD 354} 355 356static int 357model_iq2000_srav (SIM_CPU *current_cpu, void *sem_arg) 358{ 359#define FLD(f) abuf->fields.sfmt_mrgb.f 360 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 361 const IDESC * UNUSED idesc = abuf->idesc; 362 int cycles = 0; 363 { 364 int referenced = 0; 365 int UNUSED insn_referenced = abuf->written; 366 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 367 } 368 return cycles; 369#undef FLD 370} 371 372static int 373model_iq2000_srl (SIM_CPU *current_cpu, void *sem_arg) 374{ 375#define FLD(f) abuf->fields.sfmt_ram.f 376 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 377 const IDESC * UNUSED idesc = abuf->idesc; 378 int cycles = 0; 379 { 380 int referenced = 0; 381 int UNUSED insn_referenced = abuf->written; 382 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 383 } 384 return cycles; 385#undef FLD 386} 387 388static int 389model_iq2000_srlv (SIM_CPU *current_cpu, void *sem_arg) 390{ 391#define FLD(f) abuf->fields.sfmt_mrgb.f 392 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 393 const IDESC * UNUSED idesc = abuf->idesc; 394 int cycles = 0; 395 { 396 int referenced = 0; 397 int UNUSED insn_referenced = abuf->written; 398 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 399 } 400 return cycles; 401#undef FLD 402} 403 404static int 405model_iq2000_srmv (SIM_CPU *current_cpu, void *sem_arg) 406{ 407#define FLD(f) abuf->fields.sfmt_ram.f 408 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 409 const IDESC * UNUSED idesc = abuf->idesc; 410 int cycles = 0; 411 { 412 int referenced = 0; 413 int UNUSED insn_referenced = abuf->written; 414 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 415 } 416 return cycles; 417#undef FLD 418} 419 420static int 421model_iq2000_sub (SIM_CPU *current_cpu, void *sem_arg) 422{ 423#define FLD(f) abuf->fields.sfmt_mrgb.f 424 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 425 const IDESC * UNUSED idesc = abuf->idesc; 426 int cycles = 0; 427 { 428 int referenced = 0; 429 int UNUSED insn_referenced = abuf->written; 430 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 431 } 432 return cycles; 433#undef FLD 434} 435 436static int 437model_iq2000_subu (SIM_CPU *current_cpu, void *sem_arg) 438{ 439#define FLD(f) abuf->fields.sfmt_mrgb.f 440 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 441 const IDESC * UNUSED idesc = abuf->idesc; 442 int cycles = 0; 443 { 444 int referenced = 0; 445 int UNUSED insn_referenced = abuf->written; 446 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 447 } 448 return cycles; 449#undef FLD 450} 451 452static int 453model_iq2000_xor (SIM_CPU *current_cpu, void *sem_arg) 454{ 455#define FLD(f) abuf->fields.sfmt_mrgb.f 456 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 457 const IDESC * UNUSED idesc = abuf->idesc; 458 int cycles = 0; 459 { 460 int referenced = 0; 461 int UNUSED insn_referenced = abuf->written; 462 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 463 } 464 return cycles; 465#undef FLD 466} 467 468static int 469model_iq2000_xori (SIM_CPU *current_cpu, void *sem_arg) 470{ 471#define FLD(f) abuf->fields.sfmt_addi.f 472 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 473 const IDESC * UNUSED idesc = abuf->idesc; 474 int cycles = 0; 475 { 476 int referenced = 0; 477 int UNUSED insn_referenced = abuf->written; 478 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 479 } 480 return cycles; 481#undef FLD 482} 483 484static int 485model_iq2000_bbi (SIM_CPU *current_cpu, void *sem_arg) 486{ 487#define FLD(f) abuf->fields.sfmt_bbi.f 488 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 489 const IDESC * UNUSED idesc = abuf->idesc; 490 int cycles = 0; 491 { 492 int referenced = 0; 493 int UNUSED insn_referenced = abuf->written; 494 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 495 } 496 return cycles; 497#undef FLD 498} 499 500static int 501model_iq2000_bbin (SIM_CPU *current_cpu, void *sem_arg) 502{ 503#define FLD(f) abuf->fields.sfmt_bbi.f 504 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 505 const IDESC * UNUSED idesc = abuf->idesc; 506 int cycles = 0; 507 { 508 int referenced = 0; 509 int UNUSED insn_referenced = abuf->written; 510 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 511 } 512 return cycles; 513#undef FLD 514} 515 516static int 517model_iq2000_bbv (SIM_CPU *current_cpu, void *sem_arg) 518{ 519#define FLD(f) abuf->fields.sfmt_bbi.f 520 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 521 const IDESC * UNUSED idesc = abuf->idesc; 522 int cycles = 0; 523 { 524 int referenced = 0; 525 int UNUSED insn_referenced = abuf->written; 526 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 527 } 528 return cycles; 529#undef FLD 530} 531 532static int 533model_iq2000_bbvn (SIM_CPU *current_cpu, void *sem_arg) 534{ 535#define FLD(f) abuf->fields.sfmt_bbi.f 536 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 537 const IDESC * UNUSED idesc = abuf->idesc; 538 int cycles = 0; 539 { 540 int referenced = 0; 541 int UNUSED insn_referenced = abuf->written; 542 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 543 } 544 return cycles; 545#undef FLD 546} 547 548static int 549model_iq2000_beq (SIM_CPU *current_cpu, void *sem_arg) 550{ 551#define FLD(f) abuf->fields.sfmt_bbi.f 552 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 553 const IDESC * UNUSED idesc = abuf->idesc; 554 int cycles = 0; 555 { 556 int referenced = 0; 557 int UNUSED insn_referenced = abuf->written; 558 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 559 } 560 return cycles; 561#undef FLD 562} 563 564static int 565model_iq2000_beql (SIM_CPU *current_cpu, void *sem_arg) 566{ 567#define FLD(f) abuf->fields.sfmt_bbi.f 568 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 569 const IDESC * UNUSED idesc = abuf->idesc; 570 int cycles = 0; 571 { 572 int referenced = 0; 573 int UNUSED insn_referenced = abuf->written; 574 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 575 } 576 return cycles; 577#undef FLD 578} 579 580static int 581model_iq2000_bgez (SIM_CPU *current_cpu, void *sem_arg) 582{ 583#define FLD(f) abuf->fields.sfmt_bbi.f 584 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 585 const IDESC * UNUSED idesc = abuf->idesc; 586 int cycles = 0; 587 { 588 int referenced = 0; 589 int UNUSED insn_referenced = abuf->written; 590 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 591 } 592 return cycles; 593#undef FLD 594} 595 596static int 597model_iq2000_bgezal (SIM_CPU *current_cpu, void *sem_arg) 598{ 599#define FLD(f) abuf->fields.sfmt_bbi.f 600 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 601 const IDESC * UNUSED idesc = abuf->idesc; 602 int cycles = 0; 603 { 604 int referenced = 0; 605 int UNUSED insn_referenced = abuf->written; 606 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 607 } 608 return cycles; 609#undef FLD 610} 611 612static int 613model_iq2000_bgezall (SIM_CPU *current_cpu, void *sem_arg) 614{ 615#define FLD(f) abuf->fields.sfmt_bbi.f 616 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 617 const IDESC * UNUSED idesc = abuf->idesc; 618 int cycles = 0; 619 { 620 int referenced = 0; 621 int UNUSED insn_referenced = abuf->written; 622 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 623 } 624 return cycles; 625#undef FLD 626} 627 628static int 629model_iq2000_bgezl (SIM_CPU *current_cpu, void *sem_arg) 630{ 631#define FLD(f) abuf->fields.sfmt_bbi.f 632 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 633 const IDESC * UNUSED idesc = abuf->idesc; 634 int cycles = 0; 635 { 636 int referenced = 0; 637 int UNUSED insn_referenced = abuf->written; 638 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 639 } 640 return cycles; 641#undef FLD 642} 643 644static int 645model_iq2000_bltz (SIM_CPU *current_cpu, void *sem_arg) 646{ 647#define FLD(f) abuf->fields.sfmt_bbi.f 648 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 649 const IDESC * UNUSED idesc = abuf->idesc; 650 int cycles = 0; 651 { 652 int referenced = 0; 653 int UNUSED insn_referenced = abuf->written; 654 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 655 } 656 return cycles; 657#undef FLD 658} 659 660static int 661model_iq2000_bltzl (SIM_CPU *current_cpu, void *sem_arg) 662{ 663#define FLD(f) abuf->fields.sfmt_bbi.f 664 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 665 const IDESC * UNUSED idesc = abuf->idesc; 666 int cycles = 0; 667 { 668 int referenced = 0; 669 int UNUSED insn_referenced = abuf->written; 670 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 671 } 672 return cycles; 673#undef FLD 674} 675 676static int 677model_iq2000_bltzal (SIM_CPU *current_cpu, void *sem_arg) 678{ 679#define FLD(f) abuf->fields.sfmt_bbi.f 680 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 681 const IDESC * UNUSED idesc = abuf->idesc; 682 int cycles = 0; 683 { 684 int referenced = 0; 685 int UNUSED insn_referenced = abuf->written; 686 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 687 } 688 return cycles; 689#undef FLD 690} 691 692static int 693model_iq2000_bltzall (SIM_CPU *current_cpu, void *sem_arg) 694{ 695#define FLD(f) abuf->fields.sfmt_bbi.f 696 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 697 const IDESC * UNUSED idesc = abuf->idesc; 698 int cycles = 0; 699 { 700 int referenced = 0; 701 int UNUSED insn_referenced = abuf->written; 702 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 703 } 704 return cycles; 705#undef FLD 706} 707 708static int 709model_iq2000_bmb0 (SIM_CPU *current_cpu, void *sem_arg) 710{ 711#define FLD(f) abuf->fields.sfmt_bbi.f 712 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 713 const IDESC * UNUSED idesc = abuf->idesc; 714 int cycles = 0; 715 { 716 int referenced = 0; 717 int UNUSED insn_referenced = abuf->written; 718 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 719 } 720 return cycles; 721#undef FLD 722} 723 724static int 725model_iq2000_bmb1 (SIM_CPU *current_cpu, void *sem_arg) 726{ 727#define FLD(f) abuf->fields.sfmt_bbi.f 728 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 729 const IDESC * UNUSED idesc = abuf->idesc; 730 int cycles = 0; 731 { 732 int referenced = 0; 733 int UNUSED insn_referenced = abuf->written; 734 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 735 } 736 return cycles; 737#undef FLD 738} 739 740static int 741model_iq2000_bmb2 (SIM_CPU *current_cpu, void *sem_arg) 742{ 743#define FLD(f) abuf->fields.sfmt_bbi.f 744 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 745 const IDESC * UNUSED idesc = abuf->idesc; 746 int cycles = 0; 747 { 748 int referenced = 0; 749 int UNUSED insn_referenced = abuf->written; 750 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 751 } 752 return cycles; 753#undef FLD 754} 755 756static int 757model_iq2000_bmb3 (SIM_CPU *current_cpu, void *sem_arg) 758{ 759#define FLD(f) abuf->fields.sfmt_bbi.f 760 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 761 const IDESC * UNUSED idesc = abuf->idesc; 762 int cycles = 0; 763 { 764 int referenced = 0; 765 int UNUSED insn_referenced = abuf->written; 766 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 767 } 768 return cycles; 769#undef FLD 770} 771 772static int 773model_iq2000_bne (SIM_CPU *current_cpu, void *sem_arg) 774{ 775#define FLD(f) abuf->fields.sfmt_bbi.f 776 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 777 const IDESC * UNUSED idesc = abuf->idesc; 778 int cycles = 0; 779 { 780 int referenced = 0; 781 int UNUSED insn_referenced = abuf->written; 782 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 783 } 784 return cycles; 785#undef FLD 786} 787 788static int 789model_iq2000_bnel (SIM_CPU *current_cpu, void *sem_arg) 790{ 791#define FLD(f) abuf->fields.sfmt_bbi.f 792 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 793 const IDESC * UNUSED idesc = abuf->idesc; 794 int cycles = 0; 795 { 796 int referenced = 0; 797 int UNUSED insn_referenced = abuf->written; 798 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 799 } 800 return cycles; 801#undef FLD 802} 803 804static int 805model_iq2000_jalr (SIM_CPU *current_cpu, void *sem_arg) 806{ 807#define FLD(f) abuf->fields.sfmt_mrgb.f 808 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 809 const IDESC * UNUSED idesc = abuf->idesc; 810 int cycles = 0; 811 { 812 int referenced = 0; 813 int UNUSED insn_referenced = abuf->written; 814 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 815 } 816 return cycles; 817#undef FLD 818} 819 820static int 821model_iq2000_jr (SIM_CPU *current_cpu, void *sem_arg) 822{ 823#define FLD(f) abuf->fields.sfmt_bbi.f 824 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 825 const IDESC * UNUSED idesc = abuf->idesc; 826 int cycles = 0; 827 { 828 int referenced = 0; 829 int UNUSED insn_referenced = abuf->written; 830 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 831 } 832 return cycles; 833#undef FLD 834} 835 836static int 837model_iq2000_lb (SIM_CPU *current_cpu, void *sem_arg) 838{ 839#define FLD(f) abuf->fields.sfmt_addi.f 840 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 841 const IDESC * UNUSED idesc = abuf->idesc; 842 int cycles = 0; 843 { 844 int referenced = 0; 845 int UNUSED insn_referenced = abuf->written; 846 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 847 } 848 return cycles; 849#undef FLD 850} 851 852static int 853model_iq2000_lbu (SIM_CPU *current_cpu, void *sem_arg) 854{ 855#define FLD(f) abuf->fields.sfmt_addi.f 856 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 857 const IDESC * UNUSED idesc = abuf->idesc; 858 int cycles = 0; 859 { 860 int referenced = 0; 861 int UNUSED insn_referenced = abuf->written; 862 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 863 } 864 return cycles; 865#undef FLD 866} 867 868static int 869model_iq2000_lh (SIM_CPU *current_cpu, void *sem_arg) 870{ 871#define FLD(f) abuf->fields.sfmt_addi.f 872 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 873 const IDESC * UNUSED idesc = abuf->idesc; 874 int cycles = 0; 875 { 876 int referenced = 0; 877 int UNUSED insn_referenced = abuf->written; 878 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 879 } 880 return cycles; 881#undef FLD 882} 883 884static int 885model_iq2000_lhu (SIM_CPU *current_cpu, void *sem_arg) 886{ 887#define FLD(f) abuf->fields.sfmt_addi.f 888 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 889 const IDESC * UNUSED idesc = abuf->idesc; 890 int cycles = 0; 891 { 892 int referenced = 0; 893 int UNUSED insn_referenced = abuf->written; 894 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 895 } 896 return cycles; 897#undef FLD 898} 899 900static int 901model_iq2000_lui (SIM_CPU *current_cpu, void *sem_arg) 902{ 903#define FLD(f) abuf->fields.sfmt_addi.f 904 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 905 const IDESC * UNUSED idesc = abuf->idesc; 906 int cycles = 0; 907 { 908 int referenced = 0; 909 int UNUSED insn_referenced = abuf->written; 910 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 911 } 912 return cycles; 913#undef FLD 914} 915 916static int 917model_iq2000_lw (SIM_CPU *current_cpu, void *sem_arg) 918{ 919#define FLD(f) abuf->fields.sfmt_addi.f 920 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 921 const IDESC * UNUSED idesc = abuf->idesc; 922 int cycles = 0; 923 { 924 int referenced = 0; 925 int UNUSED insn_referenced = abuf->written; 926 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 927 } 928 return cycles; 929#undef FLD 930} 931 932static int 933model_iq2000_sb (SIM_CPU *current_cpu, void *sem_arg) 934{ 935#define FLD(f) abuf->fields.sfmt_addi.f 936 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 937 const IDESC * UNUSED idesc = abuf->idesc; 938 int cycles = 0; 939 { 940 int referenced = 0; 941 int UNUSED insn_referenced = abuf->written; 942 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 943 } 944 return cycles; 945#undef FLD 946} 947 948static int 949model_iq2000_sh (SIM_CPU *current_cpu, void *sem_arg) 950{ 951#define FLD(f) abuf->fields.sfmt_addi.f 952 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 953 const IDESC * UNUSED idesc = abuf->idesc; 954 int cycles = 0; 955 { 956 int referenced = 0; 957 int UNUSED insn_referenced = abuf->written; 958 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 959 } 960 return cycles; 961#undef FLD 962} 963 964static int 965model_iq2000_sw (SIM_CPU *current_cpu, void *sem_arg) 966{ 967#define FLD(f) abuf->fields.sfmt_addi.f 968 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 969 const IDESC * UNUSED idesc = abuf->idesc; 970 int cycles = 0; 971 { 972 int referenced = 0; 973 int UNUSED insn_referenced = abuf->written; 974 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 975 } 976 return cycles; 977#undef FLD 978} 979 980static int 981model_iq2000_break (SIM_CPU *current_cpu, void *sem_arg) 982{ 983#define FLD(f) abuf->fields.sfmt_empty.f 984 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 985 const IDESC * UNUSED idesc = abuf->idesc; 986 int cycles = 0; 987 { 988 int referenced = 0; 989 int UNUSED insn_referenced = abuf->written; 990 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 991 } 992 return cycles; 993#undef FLD 994} 995 996static int 997model_iq2000_syscall (SIM_CPU *current_cpu, void *sem_arg) 998{ 999#define FLD(f) abuf->fields.sfmt_empty.f 1000 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1001 const IDESC * UNUSED idesc = abuf->idesc; 1002 int cycles = 0; 1003 { 1004 int referenced = 0; 1005 int UNUSED insn_referenced = abuf->written; 1006 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 1007 } 1008 return cycles; 1009#undef FLD 1010} 1011 1012static int 1013model_iq2000_andoui (SIM_CPU *current_cpu, void *sem_arg) 1014{ 1015#define FLD(f) abuf->fields.sfmt_addi.f 1016 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1017 const IDESC * UNUSED idesc = abuf->idesc; 1018 int cycles = 0; 1019 { 1020 int referenced = 0; 1021 int UNUSED insn_referenced = abuf->written; 1022 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 1023 } 1024 return cycles; 1025#undef FLD 1026} 1027 1028static int 1029model_iq2000_orui (SIM_CPU *current_cpu, void *sem_arg) 1030{ 1031#define FLD(f) abuf->fields.sfmt_addi.f 1032 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1033 const IDESC * UNUSED idesc = abuf->idesc; 1034 int cycles = 0; 1035 { 1036 int referenced = 0; 1037 int UNUSED insn_referenced = abuf->written; 1038 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 1039 } 1040 return cycles; 1041#undef FLD 1042} 1043 1044static int 1045model_iq2000_bgtz (SIM_CPU *current_cpu, void *sem_arg) 1046{ 1047#define FLD(f) abuf->fields.sfmt_bbi.f 1048 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1049 const IDESC * UNUSED idesc = abuf->idesc; 1050 int cycles = 0; 1051 { 1052 int referenced = 0; 1053 int UNUSED insn_referenced = abuf->written; 1054 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 1055 } 1056 return cycles; 1057#undef FLD 1058} 1059 1060static int 1061model_iq2000_bgtzl (SIM_CPU *current_cpu, void *sem_arg) 1062{ 1063#define FLD(f) abuf->fields.sfmt_bbi.f 1064 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1065 const IDESC * UNUSED idesc = abuf->idesc; 1066 int cycles = 0; 1067 { 1068 int referenced = 0; 1069 int UNUSED insn_referenced = abuf->written; 1070 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 1071 } 1072 return cycles; 1073#undef FLD 1074} 1075 1076static int 1077model_iq2000_blez (SIM_CPU *current_cpu, void *sem_arg) 1078{ 1079#define FLD(f) abuf->fields.sfmt_bbi.f 1080 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1081 const IDESC * UNUSED idesc = abuf->idesc; 1082 int cycles = 0; 1083 { 1084 int referenced = 0; 1085 int UNUSED insn_referenced = abuf->written; 1086 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 1087 } 1088 return cycles; 1089#undef FLD 1090} 1091 1092static int 1093model_iq2000_blezl (SIM_CPU *current_cpu, void *sem_arg) 1094{ 1095#define FLD(f) abuf->fields.sfmt_bbi.f 1096 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1097 const IDESC * UNUSED idesc = abuf->idesc; 1098 int cycles = 0; 1099 { 1100 int referenced = 0; 1101 int UNUSED insn_referenced = abuf->written; 1102 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 1103 } 1104 return cycles; 1105#undef FLD 1106} 1107 1108static int 1109model_iq2000_mrgb (SIM_CPU *current_cpu, void *sem_arg) 1110{ 1111#define FLD(f) abuf->fields.sfmt_mrgb.f 1112 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1113 const IDESC * UNUSED idesc = abuf->idesc; 1114 int cycles = 0; 1115 { 1116 int referenced = 0; 1117 int UNUSED insn_referenced = abuf->written; 1118 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 1119 } 1120 return cycles; 1121#undef FLD 1122} 1123 1124static int 1125model_iq2000_bctxt (SIM_CPU *current_cpu, void *sem_arg) 1126{ 1127#define FLD(f) abuf->fields.sfmt_empty.f 1128 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1129 const IDESC * UNUSED idesc = abuf->idesc; 1130 int cycles = 0; 1131 { 1132 int referenced = 0; 1133 int UNUSED insn_referenced = abuf->written; 1134 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 1135 } 1136 return cycles; 1137#undef FLD 1138} 1139 1140static int 1141model_iq2000_bc0f (SIM_CPU *current_cpu, void *sem_arg) 1142{ 1143#define FLD(f) abuf->fields.sfmt_empty.f 1144 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1145 const IDESC * UNUSED idesc = abuf->idesc; 1146 int cycles = 0; 1147 { 1148 int referenced = 0; 1149 int UNUSED insn_referenced = abuf->written; 1150 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 1151 } 1152 return cycles; 1153#undef FLD 1154} 1155 1156static int 1157model_iq2000_bc0fl (SIM_CPU *current_cpu, void *sem_arg) 1158{ 1159#define FLD(f) abuf->fields.sfmt_empty.f 1160 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1161 const IDESC * UNUSED idesc = abuf->idesc; 1162 int cycles = 0; 1163 { 1164 int referenced = 0; 1165 int UNUSED insn_referenced = abuf->written; 1166 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 1167 } 1168 return cycles; 1169#undef FLD 1170} 1171 1172static int 1173model_iq2000_bc3f (SIM_CPU *current_cpu, void *sem_arg) 1174{ 1175#define FLD(f) abuf->fields.sfmt_empty.f 1176 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1177 const IDESC * UNUSED idesc = abuf->idesc; 1178 int cycles = 0; 1179 { 1180 int referenced = 0; 1181 int UNUSED insn_referenced = abuf->written; 1182 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 1183 } 1184 return cycles; 1185#undef FLD 1186} 1187 1188static int 1189model_iq2000_bc3fl (SIM_CPU *current_cpu, void *sem_arg) 1190{ 1191#define FLD(f) abuf->fields.sfmt_empty.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 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 1199 } 1200 return cycles; 1201#undef FLD 1202} 1203 1204static int 1205model_iq2000_bc0t (SIM_CPU *current_cpu, void *sem_arg) 1206{ 1207#define FLD(f) abuf->fields.sfmt_empty.f 1208 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1209 const IDESC * UNUSED idesc = abuf->idesc; 1210 int cycles = 0; 1211 { 1212 int referenced = 0; 1213 int UNUSED insn_referenced = abuf->written; 1214 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 1215 } 1216 return cycles; 1217#undef FLD 1218} 1219 1220static int 1221model_iq2000_bc0tl (SIM_CPU *current_cpu, void *sem_arg) 1222{ 1223#define FLD(f) abuf->fields.sfmt_empty.f 1224 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1225 const IDESC * UNUSED idesc = abuf->idesc; 1226 int cycles = 0; 1227 { 1228 int referenced = 0; 1229 int UNUSED insn_referenced = abuf->written; 1230 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 1231 } 1232 return cycles; 1233#undef FLD 1234} 1235 1236static int 1237model_iq2000_bc3t (SIM_CPU *current_cpu, void *sem_arg) 1238{ 1239#define FLD(f) abuf->fields.sfmt_empty.f 1240 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1241 const IDESC * UNUSED idesc = abuf->idesc; 1242 int cycles = 0; 1243 { 1244 int referenced = 0; 1245 int UNUSED insn_referenced = abuf->written; 1246 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 1247 } 1248 return cycles; 1249#undef FLD 1250} 1251 1252static int 1253model_iq2000_bc3tl (SIM_CPU *current_cpu, void *sem_arg) 1254{ 1255#define FLD(f) abuf->fields.sfmt_empty.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 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 1263 } 1264 return cycles; 1265#undef FLD 1266} 1267 1268static int 1269model_iq2000_cfc0 (SIM_CPU *current_cpu, void *sem_arg) 1270{ 1271#define FLD(f) abuf->fields.sfmt_empty.f 1272 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1273 const IDESC * UNUSED idesc = abuf->idesc; 1274 int cycles = 0; 1275 { 1276 int referenced = 0; 1277 int UNUSED insn_referenced = abuf->written; 1278 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 1279 } 1280 return cycles; 1281#undef FLD 1282} 1283 1284static int 1285model_iq2000_cfc1 (SIM_CPU *current_cpu, void *sem_arg) 1286{ 1287#define FLD(f) abuf->fields.sfmt_empty.f 1288 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1289 const IDESC * UNUSED idesc = abuf->idesc; 1290 int cycles = 0; 1291 { 1292 int referenced = 0; 1293 int UNUSED insn_referenced = abuf->written; 1294 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 1295 } 1296 return cycles; 1297#undef FLD 1298} 1299 1300static int 1301model_iq2000_cfc2 (SIM_CPU *current_cpu, void *sem_arg) 1302{ 1303#define FLD(f) abuf->fields.sfmt_empty.f 1304 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1305 const IDESC * UNUSED idesc = abuf->idesc; 1306 int cycles = 0; 1307 { 1308 int referenced = 0; 1309 int UNUSED insn_referenced = abuf->written; 1310 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 1311 } 1312 return cycles; 1313#undef FLD 1314} 1315 1316static int 1317model_iq2000_cfc3 (SIM_CPU *current_cpu, void *sem_arg) 1318{ 1319#define FLD(f) abuf->fields.sfmt_empty.f 1320 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1321 const IDESC * UNUSED idesc = abuf->idesc; 1322 int cycles = 0; 1323 { 1324 int referenced = 0; 1325 int UNUSED insn_referenced = abuf->written; 1326 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 1327 } 1328 return cycles; 1329#undef FLD 1330} 1331 1332static int 1333model_iq2000_chkhdr (SIM_CPU *current_cpu, void *sem_arg) 1334{ 1335#define FLD(f) abuf->fields.sfmt_empty.f 1336 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1337 const IDESC * UNUSED idesc = abuf->idesc; 1338 int cycles = 0; 1339 { 1340 int referenced = 0; 1341 int UNUSED insn_referenced = abuf->written; 1342 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 1343 } 1344 return cycles; 1345#undef FLD 1346} 1347 1348static int 1349model_iq2000_ctc0 (SIM_CPU *current_cpu, void *sem_arg) 1350{ 1351#define FLD(f) abuf->fields.sfmt_empty.f 1352 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1353 const IDESC * UNUSED idesc = abuf->idesc; 1354 int cycles = 0; 1355 { 1356 int referenced = 0; 1357 int UNUSED insn_referenced = abuf->written; 1358 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 1359 } 1360 return cycles; 1361#undef FLD 1362} 1363 1364static int 1365model_iq2000_ctc1 (SIM_CPU *current_cpu, void *sem_arg) 1366{ 1367#define FLD(f) abuf->fields.sfmt_empty.f 1368 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1369 const IDESC * UNUSED idesc = abuf->idesc; 1370 int cycles = 0; 1371 { 1372 int referenced = 0; 1373 int UNUSED insn_referenced = abuf->written; 1374 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 1375 } 1376 return cycles; 1377#undef FLD 1378} 1379 1380static int 1381model_iq2000_ctc2 (SIM_CPU *current_cpu, void *sem_arg) 1382{ 1383#define FLD(f) abuf->fields.sfmt_empty.f 1384 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1385 const IDESC * UNUSED idesc = abuf->idesc; 1386 int cycles = 0; 1387 { 1388 int referenced = 0; 1389 int UNUSED insn_referenced = abuf->written; 1390 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 1391 } 1392 return cycles; 1393#undef FLD 1394} 1395 1396static int 1397model_iq2000_ctc3 (SIM_CPU *current_cpu, void *sem_arg) 1398{ 1399#define FLD(f) abuf->fields.sfmt_empty.f 1400 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1401 const IDESC * UNUSED idesc = abuf->idesc; 1402 int cycles = 0; 1403 { 1404 int referenced = 0; 1405 int UNUSED insn_referenced = abuf->written; 1406 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 1407 } 1408 return cycles; 1409#undef FLD 1410} 1411 1412static int 1413model_iq2000_jcr (SIM_CPU *current_cpu, void *sem_arg) 1414{ 1415#define FLD(f) abuf->fields.sfmt_empty.f 1416 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1417 const IDESC * UNUSED idesc = abuf->idesc; 1418 int cycles = 0; 1419 { 1420 int referenced = 0; 1421 int UNUSED insn_referenced = abuf->written; 1422 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 1423 } 1424 return cycles; 1425#undef FLD 1426} 1427 1428static int 1429model_iq2000_luc32 (SIM_CPU *current_cpu, void *sem_arg) 1430{ 1431#define FLD(f) abuf->fields.sfmt_empty.f 1432 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1433 const IDESC * UNUSED idesc = abuf->idesc; 1434 int cycles = 0; 1435 { 1436 int referenced = 0; 1437 int UNUSED insn_referenced = abuf->written; 1438 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 1439 } 1440 return cycles; 1441#undef FLD 1442} 1443 1444static int 1445model_iq2000_luc32l (SIM_CPU *current_cpu, void *sem_arg) 1446{ 1447#define FLD(f) abuf->fields.sfmt_empty.f 1448 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1449 const IDESC * UNUSED idesc = abuf->idesc; 1450 int cycles = 0; 1451 { 1452 int referenced = 0; 1453 int UNUSED insn_referenced = abuf->written; 1454 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 1455 } 1456 return cycles; 1457#undef FLD 1458} 1459 1460static int 1461model_iq2000_luc64 (SIM_CPU *current_cpu, void *sem_arg) 1462{ 1463#define FLD(f) abuf->fields.sfmt_empty.f 1464 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1465 const IDESC * UNUSED idesc = abuf->idesc; 1466 int cycles = 0; 1467 { 1468 int referenced = 0; 1469 int UNUSED insn_referenced = abuf->written; 1470 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 1471 } 1472 return cycles; 1473#undef FLD 1474} 1475 1476static int 1477model_iq2000_luc64l (SIM_CPU *current_cpu, void *sem_arg) 1478{ 1479#define FLD(f) abuf->fields.sfmt_empty.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 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 1487 } 1488 return cycles; 1489#undef FLD 1490} 1491 1492static int 1493model_iq2000_luk (SIM_CPU *current_cpu, void *sem_arg) 1494{ 1495#define FLD(f) abuf->fields.sfmt_empty.f 1496 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1497 const IDESC * UNUSED idesc = abuf->idesc; 1498 int cycles = 0; 1499 { 1500 int referenced = 0; 1501 int UNUSED insn_referenced = abuf->written; 1502 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 1503 } 1504 return cycles; 1505#undef FLD 1506} 1507 1508static int 1509model_iq2000_lulck (SIM_CPU *current_cpu, void *sem_arg) 1510{ 1511#define FLD(f) abuf->fields.sfmt_empty.f 1512 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1513 const IDESC * UNUSED idesc = abuf->idesc; 1514 int cycles = 0; 1515 { 1516 int referenced = 0; 1517 int UNUSED insn_referenced = abuf->written; 1518 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 1519 } 1520 return cycles; 1521#undef FLD 1522} 1523 1524static int 1525model_iq2000_lum32 (SIM_CPU *current_cpu, void *sem_arg) 1526{ 1527#define FLD(f) abuf->fields.sfmt_empty.f 1528 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1529 const IDESC * UNUSED idesc = abuf->idesc; 1530 int cycles = 0; 1531 { 1532 int referenced = 0; 1533 int UNUSED insn_referenced = abuf->written; 1534 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 1535 } 1536 return cycles; 1537#undef FLD 1538} 1539 1540static int 1541model_iq2000_lum32l (SIM_CPU *current_cpu, void *sem_arg) 1542{ 1543#define FLD(f) abuf->fields.sfmt_empty.f 1544 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1545 const IDESC * UNUSED idesc = abuf->idesc; 1546 int cycles = 0; 1547 { 1548 int referenced = 0; 1549 int UNUSED insn_referenced = abuf->written; 1550 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 1551 } 1552 return cycles; 1553#undef FLD 1554} 1555 1556static int 1557model_iq2000_lum64 (SIM_CPU *current_cpu, void *sem_arg) 1558{ 1559#define FLD(f) abuf->fields.sfmt_empty.f 1560 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1561 const IDESC * UNUSED idesc = abuf->idesc; 1562 int cycles = 0; 1563 { 1564 int referenced = 0; 1565 int UNUSED insn_referenced = abuf->written; 1566 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 1567 } 1568 return cycles; 1569#undef FLD 1570} 1571 1572static int 1573model_iq2000_lum64l (SIM_CPU *current_cpu, void *sem_arg) 1574{ 1575#define FLD(f) abuf->fields.sfmt_empty.f 1576 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1577 const IDESC * UNUSED idesc = abuf->idesc; 1578 int cycles = 0; 1579 { 1580 int referenced = 0; 1581 int UNUSED insn_referenced = abuf->written; 1582 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 1583 } 1584 return cycles; 1585#undef FLD 1586} 1587 1588static int 1589model_iq2000_lur (SIM_CPU *current_cpu, void *sem_arg) 1590{ 1591#define FLD(f) abuf->fields.sfmt_empty.f 1592 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1593 const IDESC * UNUSED idesc = abuf->idesc; 1594 int cycles = 0; 1595 { 1596 int referenced = 0; 1597 int UNUSED insn_referenced = abuf->written; 1598 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 1599 } 1600 return cycles; 1601#undef FLD 1602} 1603 1604static int 1605model_iq2000_lurl (SIM_CPU *current_cpu, void *sem_arg) 1606{ 1607#define FLD(f) abuf->fields.sfmt_empty.f 1608 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1609 const IDESC * UNUSED idesc = abuf->idesc; 1610 int cycles = 0; 1611 { 1612 int referenced = 0; 1613 int UNUSED insn_referenced = abuf->written; 1614 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 1615 } 1616 return cycles; 1617#undef FLD 1618} 1619 1620static int 1621model_iq2000_luulck (SIM_CPU *current_cpu, void *sem_arg) 1622{ 1623#define FLD(f) abuf->fields.sfmt_empty.f 1624 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1625 const IDESC * UNUSED idesc = abuf->idesc; 1626 int cycles = 0; 1627 { 1628 int referenced = 0; 1629 int UNUSED insn_referenced = abuf->written; 1630 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 1631 } 1632 return cycles; 1633#undef FLD 1634} 1635 1636static int 1637model_iq2000_mfc0 (SIM_CPU *current_cpu, void *sem_arg) 1638{ 1639#define FLD(f) abuf->fields.sfmt_empty.f 1640 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1641 const IDESC * UNUSED idesc = abuf->idesc; 1642 int cycles = 0; 1643 { 1644 int referenced = 0; 1645 int UNUSED insn_referenced = abuf->written; 1646 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 1647 } 1648 return cycles; 1649#undef FLD 1650} 1651 1652static int 1653model_iq2000_mfc1 (SIM_CPU *current_cpu, void *sem_arg) 1654{ 1655#define FLD(f) abuf->fields.sfmt_empty.f 1656 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1657 const IDESC * UNUSED idesc = abuf->idesc; 1658 int cycles = 0; 1659 { 1660 int referenced = 0; 1661 int UNUSED insn_referenced = abuf->written; 1662 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 1663 } 1664 return cycles; 1665#undef FLD 1666} 1667 1668static int 1669model_iq2000_mfc2 (SIM_CPU *current_cpu, void *sem_arg) 1670{ 1671#define FLD(f) abuf->fields.sfmt_empty.f 1672 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1673 const IDESC * UNUSED idesc = abuf->idesc; 1674 int cycles = 0; 1675 { 1676 int referenced = 0; 1677 int UNUSED insn_referenced = abuf->written; 1678 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 1679 } 1680 return cycles; 1681#undef FLD 1682} 1683 1684static int 1685model_iq2000_mfc3 (SIM_CPU *current_cpu, void *sem_arg) 1686{ 1687#define FLD(f) abuf->fields.sfmt_empty.f 1688 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1689 const IDESC * UNUSED idesc = abuf->idesc; 1690 int cycles = 0; 1691 { 1692 int referenced = 0; 1693 int UNUSED insn_referenced = abuf->written; 1694 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 1695 } 1696 return cycles; 1697#undef FLD 1698} 1699 1700static int 1701model_iq2000_mtc0 (SIM_CPU *current_cpu, void *sem_arg) 1702{ 1703#define FLD(f) abuf->fields.sfmt_empty.f 1704 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1705 const IDESC * UNUSED idesc = abuf->idesc; 1706 int cycles = 0; 1707 { 1708 int referenced = 0; 1709 int UNUSED insn_referenced = abuf->written; 1710 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 1711 } 1712 return cycles; 1713#undef FLD 1714} 1715 1716static int 1717model_iq2000_mtc1 (SIM_CPU *current_cpu, void *sem_arg) 1718{ 1719#define FLD(f) abuf->fields.sfmt_empty.f 1720 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1721 const IDESC * UNUSED idesc = abuf->idesc; 1722 int cycles = 0; 1723 { 1724 int referenced = 0; 1725 int UNUSED insn_referenced = abuf->written; 1726 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 1727 } 1728 return cycles; 1729#undef FLD 1730} 1731 1732static int 1733model_iq2000_mtc2 (SIM_CPU *current_cpu, void *sem_arg) 1734{ 1735#define FLD(f) abuf->fields.sfmt_empty.f 1736 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1737 const IDESC * UNUSED idesc = abuf->idesc; 1738 int cycles = 0; 1739 { 1740 int referenced = 0; 1741 int UNUSED insn_referenced = abuf->written; 1742 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 1743 } 1744 return cycles; 1745#undef FLD 1746} 1747 1748static int 1749model_iq2000_mtc3 (SIM_CPU *current_cpu, void *sem_arg) 1750{ 1751#define FLD(f) abuf->fields.sfmt_empty.f 1752 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1753 const IDESC * UNUSED idesc = abuf->idesc; 1754 int cycles = 0; 1755 { 1756 int referenced = 0; 1757 int UNUSED insn_referenced = abuf->written; 1758 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 1759 } 1760 return cycles; 1761#undef FLD 1762} 1763 1764static int 1765model_iq2000_pkrl (SIM_CPU *current_cpu, void *sem_arg) 1766{ 1767#define FLD(f) abuf->fields.sfmt_empty.f 1768 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1769 const IDESC * UNUSED idesc = abuf->idesc; 1770 int cycles = 0; 1771 { 1772 int referenced = 0; 1773 int UNUSED insn_referenced = abuf->written; 1774 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 1775 } 1776 return cycles; 1777#undef FLD 1778} 1779 1780static int 1781model_iq2000_pkrlr1 (SIM_CPU *current_cpu, void *sem_arg) 1782{ 1783#define FLD(f) abuf->fields.sfmt_empty.f 1784 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1785 const IDESC * UNUSED idesc = abuf->idesc; 1786 int cycles = 0; 1787 { 1788 int referenced = 0; 1789 int UNUSED insn_referenced = abuf->written; 1790 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 1791 } 1792 return cycles; 1793#undef FLD 1794} 1795 1796static int 1797model_iq2000_pkrlr30 (SIM_CPU *current_cpu, void *sem_arg) 1798{ 1799#define FLD(f) abuf->fields.sfmt_empty.f 1800 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1801 const IDESC * UNUSED idesc = abuf->idesc; 1802 int cycles = 0; 1803 { 1804 int referenced = 0; 1805 int UNUSED insn_referenced = abuf->written; 1806 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 1807 } 1808 return cycles; 1809#undef FLD 1810} 1811 1812static int 1813model_iq2000_rb (SIM_CPU *current_cpu, void *sem_arg) 1814{ 1815#define FLD(f) abuf->fields.sfmt_empty.f 1816 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1817 const IDESC * UNUSED idesc = abuf->idesc; 1818 int cycles = 0; 1819 { 1820 int referenced = 0; 1821 int UNUSED insn_referenced = abuf->written; 1822 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 1823 } 1824 return cycles; 1825#undef FLD 1826} 1827 1828static int 1829model_iq2000_rbr1 (SIM_CPU *current_cpu, void *sem_arg) 1830{ 1831#define FLD(f) abuf->fields.sfmt_empty.f 1832 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1833 const IDESC * UNUSED idesc = abuf->idesc; 1834 int cycles = 0; 1835 { 1836 int referenced = 0; 1837 int UNUSED insn_referenced = abuf->written; 1838 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 1839 } 1840 return cycles; 1841#undef FLD 1842} 1843 1844static int 1845model_iq2000_rbr30 (SIM_CPU *current_cpu, void *sem_arg) 1846{ 1847#define FLD(f) abuf->fields.sfmt_empty.f 1848 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1849 const IDESC * UNUSED idesc = abuf->idesc; 1850 int cycles = 0; 1851 { 1852 int referenced = 0; 1853 int UNUSED insn_referenced = abuf->written; 1854 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 1855 } 1856 return cycles; 1857#undef FLD 1858} 1859 1860static int 1861model_iq2000_rfe (SIM_CPU *current_cpu, void *sem_arg) 1862{ 1863#define FLD(f) abuf->fields.sfmt_empty.f 1864 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1865 const IDESC * UNUSED idesc = abuf->idesc; 1866 int cycles = 0; 1867 { 1868 int referenced = 0; 1869 int UNUSED insn_referenced = abuf->written; 1870 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 1871 } 1872 return cycles; 1873#undef FLD 1874} 1875 1876static int 1877model_iq2000_rx (SIM_CPU *current_cpu, void *sem_arg) 1878{ 1879#define FLD(f) abuf->fields.sfmt_empty.f 1880 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1881 const IDESC * UNUSED idesc = abuf->idesc; 1882 int cycles = 0; 1883 { 1884 int referenced = 0; 1885 int UNUSED insn_referenced = abuf->written; 1886 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 1887 } 1888 return cycles; 1889#undef FLD 1890} 1891 1892static int 1893model_iq2000_rxr1 (SIM_CPU *current_cpu, void *sem_arg) 1894{ 1895#define FLD(f) abuf->fields.sfmt_empty.f 1896 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1897 const IDESC * UNUSED idesc = abuf->idesc; 1898 int cycles = 0; 1899 { 1900 int referenced = 0; 1901 int UNUSED insn_referenced = abuf->written; 1902 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 1903 } 1904 return cycles; 1905#undef FLD 1906} 1907 1908static int 1909model_iq2000_rxr30 (SIM_CPU *current_cpu, void *sem_arg) 1910{ 1911#define FLD(f) abuf->fields.sfmt_empty.f 1912 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1913 const IDESC * UNUSED idesc = abuf->idesc; 1914 int cycles = 0; 1915 { 1916 int referenced = 0; 1917 int UNUSED insn_referenced = abuf->written; 1918 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 1919 } 1920 return cycles; 1921#undef FLD 1922} 1923 1924static int 1925model_iq2000_sleep (SIM_CPU *current_cpu, void *sem_arg) 1926{ 1927#define FLD(f) abuf->fields.sfmt_empty.f 1928 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1929 const IDESC * UNUSED idesc = abuf->idesc; 1930 int cycles = 0; 1931 { 1932 int referenced = 0; 1933 int UNUSED insn_referenced = abuf->written; 1934 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 1935 } 1936 return cycles; 1937#undef FLD 1938} 1939 1940static int 1941model_iq2000_srrd (SIM_CPU *current_cpu, void *sem_arg) 1942{ 1943#define FLD(f) abuf->fields.sfmt_empty.f 1944 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1945 const IDESC * UNUSED idesc = abuf->idesc; 1946 int cycles = 0; 1947 { 1948 int referenced = 0; 1949 int UNUSED insn_referenced = abuf->written; 1950 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 1951 } 1952 return cycles; 1953#undef FLD 1954} 1955 1956static int 1957model_iq2000_srrdl (SIM_CPU *current_cpu, void *sem_arg) 1958{ 1959#define FLD(f) abuf->fields.sfmt_empty.f 1960 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1961 const IDESC * UNUSED idesc = abuf->idesc; 1962 int cycles = 0; 1963 { 1964 int referenced = 0; 1965 int UNUSED insn_referenced = abuf->written; 1966 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 1967 } 1968 return cycles; 1969#undef FLD 1970} 1971 1972static int 1973model_iq2000_srulck (SIM_CPU *current_cpu, void *sem_arg) 1974{ 1975#define FLD(f) abuf->fields.sfmt_empty.f 1976 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1977 const IDESC * UNUSED idesc = abuf->idesc; 1978 int cycles = 0; 1979 { 1980 int referenced = 0; 1981 int UNUSED insn_referenced = abuf->written; 1982 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 1983 } 1984 return cycles; 1985#undef FLD 1986} 1987 1988static int 1989model_iq2000_srwr (SIM_CPU *current_cpu, void *sem_arg) 1990{ 1991#define FLD(f) abuf->fields.sfmt_empty.f 1992 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1993 const IDESC * UNUSED idesc = abuf->idesc; 1994 int cycles = 0; 1995 { 1996 int referenced = 0; 1997 int UNUSED insn_referenced = abuf->written; 1998 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 1999 } 2000 return cycles; 2001#undef FLD 2002} 2003 2004static int 2005model_iq2000_srwru (SIM_CPU *current_cpu, void *sem_arg) 2006{ 2007#define FLD(f) abuf->fields.sfmt_empty.f 2008 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2009 const IDESC * UNUSED idesc = abuf->idesc; 2010 int cycles = 0; 2011 { 2012 int referenced = 0; 2013 int UNUSED insn_referenced = abuf->written; 2014 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 2015 } 2016 return cycles; 2017#undef FLD 2018} 2019 2020static int 2021model_iq2000_trapqfl (SIM_CPU *current_cpu, void *sem_arg) 2022{ 2023#define FLD(f) abuf->fields.sfmt_empty.f 2024 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2025 const IDESC * UNUSED idesc = abuf->idesc; 2026 int cycles = 0; 2027 { 2028 int referenced = 0; 2029 int UNUSED insn_referenced = abuf->written; 2030 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 2031 } 2032 return cycles; 2033#undef FLD 2034} 2035 2036static int 2037model_iq2000_trapqne (SIM_CPU *current_cpu, void *sem_arg) 2038{ 2039#define FLD(f) abuf->fields.sfmt_empty.f 2040 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2041 const IDESC * UNUSED idesc = abuf->idesc; 2042 int cycles = 0; 2043 { 2044 int referenced = 0; 2045 int UNUSED insn_referenced = abuf->written; 2046 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 2047 } 2048 return cycles; 2049#undef FLD 2050} 2051 2052static int 2053model_iq2000_traprel (SIM_CPU *current_cpu, void *sem_arg) 2054{ 2055#define FLD(f) abuf->fields.sfmt_empty.f 2056 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2057 const IDESC * UNUSED idesc = abuf->idesc; 2058 int cycles = 0; 2059 { 2060 int referenced = 0; 2061 int UNUSED insn_referenced = abuf->written; 2062 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 2063 } 2064 return cycles; 2065#undef FLD 2066} 2067 2068static int 2069model_iq2000_wb (SIM_CPU *current_cpu, void *sem_arg) 2070{ 2071#define FLD(f) abuf->fields.sfmt_empty.f 2072 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2073 const IDESC * UNUSED idesc = abuf->idesc; 2074 int cycles = 0; 2075 { 2076 int referenced = 0; 2077 int UNUSED insn_referenced = abuf->written; 2078 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 2079 } 2080 return cycles; 2081#undef FLD 2082} 2083 2084static int 2085model_iq2000_wbu (SIM_CPU *current_cpu, void *sem_arg) 2086{ 2087#define FLD(f) abuf->fields.sfmt_empty.f 2088 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2089 const IDESC * UNUSED idesc = abuf->idesc; 2090 int cycles = 0; 2091 { 2092 int referenced = 0; 2093 int UNUSED insn_referenced = abuf->written; 2094 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 2095 } 2096 return cycles; 2097#undef FLD 2098} 2099 2100static int 2101model_iq2000_wbr1 (SIM_CPU *current_cpu, void *sem_arg) 2102{ 2103#define FLD(f) abuf->fields.sfmt_empty.f 2104 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2105 const IDESC * UNUSED idesc = abuf->idesc; 2106 int cycles = 0; 2107 { 2108 int referenced = 0; 2109 int UNUSED insn_referenced = abuf->written; 2110 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 2111 } 2112 return cycles; 2113#undef FLD 2114} 2115 2116static int 2117model_iq2000_wbr1u (SIM_CPU *current_cpu, void *sem_arg) 2118{ 2119#define FLD(f) abuf->fields.sfmt_empty.f 2120 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2121 const IDESC * UNUSED idesc = abuf->idesc; 2122 int cycles = 0; 2123 { 2124 int referenced = 0; 2125 int UNUSED insn_referenced = abuf->written; 2126 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 2127 } 2128 return cycles; 2129#undef FLD 2130} 2131 2132static int 2133model_iq2000_wbr30 (SIM_CPU *current_cpu, void *sem_arg) 2134{ 2135#define FLD(f) abuf->fields.sfmt_empty.f 2136 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2137 const IDESC * UNUSED idesc = abuf->idesc; 2138 int cycles = 0; 2139 { 2140 int referenced = 0; 2141 int UNUSED insn_referenced = abuf->written; 2142 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 2143 } 2144 return cycles; 2145#undef FLD 2146} 2147 2148static int 2149model_iq2000_wbr30u (SIM_CPU *current_cpu, void *sem_arg) 2150{ 2151#define FLD(f) abuf->fields.sfmt_empty.f 2152 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2153 const IDESC * UNUSED idesc = abuf->idesc; 2154 int cycles = 0; 2155 { 2156 int referenced = 0; 2157 int UNUSED insn_referenced = abuf->written; 2158 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 2159 } 2160 return cycles; 2161#undef FLD 2162} 2163 2164static int 2165model_iq2000_wx (SIM_CPU *current_cpu, void *sem_arg) 2166{ 2167#define FLD(f) abuf->fields.sfmt_empty.f 2168 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2169 const IDESC * UNUSED idesc = abuf->idesc; 2170 int cycles = 0; 2171 { 2172 int referenced = 0; 2173 int UNUSED insn_referenced = abuf->written; 2174 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 2175 } 2176 return cycles; 2177#undef FLD 2178} 2179 2180static int 2181model_iq2000_wxu (SIM_CPU *current_cpu, void *sem_arg) 2182{ 2183#define FLD(f) abuf->fields.sfmt_empty.f 2184 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2185 const IDESC * UNUSED idesc = abuf->idesc; 2186 int cycles = 0; 2187 { 2188 int referenced = 0; 2189 int UNUSED insn_referenced = abuf->written; 2190 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 2191 } 2192 return cycles; 2193#undef FLD 2194} 2195 2196static int 2197model_iq2000_wxr1 (SIM_CPU *current_cpu, void *sem_arg) 2198{ 2199#define FLD(f) abuf->fields.sfmt_empty.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 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 2207 } 2208 return cycles; 2209#undef FLD 2210} 2211 2212static int 2213model_iq2000_wxr1u (SIM_CPU *current_cpu, void *sem_arg) 2214{ 2215#define FLD(f) abuf->fields.sfmt_empty.f 2216 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2217 const IDESC * UNUSED idesc = abuf->idesc; 2218 int cycles = 0; 2219 { 2220 int referenced = 0; 2221 int UNUSED insn_referenced = abuf->written; 2222 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 2223 } 2224 return cycles; 2225#undef FLD 2226} 2227 2228static int 2229model_iq2000_wxr30 (SIM_CPU *current_cpu, void *sem_arg) 2230{ 2231#define FLD(f) abuf->fields.sfmt_empty.f 2232 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2233 const IDESC * UNUSED idesc = abuf->idesc; 2234 int cycles = 0; 2235 { 2236 int referenced = 0; 2237 int UNUSED insn_referenced = abuf->written; 2238 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 2239 } 2240 return cycles; 2241#undef FLD 2242} 2243 2244static int 2245model_iq2000_wxr30u (SIM_CPU *current_cpu, void *sem_arg) 2246{ 2247#define FLD(f) abuf->fields.sfmt_empty.f 2248 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2249 const IDESC * UNUSED idesc = abuf->idesc; 2250 int cycles = 0; 2251 { 2252 int referenced = 0; 2253 int UNUSED insn_referenced = abuf->written; 2254 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 2255 } 2256 return cycles; 2257#undef FLD 2258} 2259 2260static int 2261model_iq2000_ldw (SIM_CPU *current_cpu, void *sem_arg) 2262{ 2263#define FLD(f) abuf->fields.sfmt_addi.f 2264 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2265 const IDESC * UNUSED idesc = abuf->idesc; 2266 int cycles = 0; 2267 { 2268 int referenced = 0; 2269 int UNUSED insn_referenced = abuf->written; 2270 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 2271 } 2272 return cycles; 2273#undef FLD 2274} 2275 2276static int 2277model_iq2000_sdw (SIM_CPU *current_cpu, void *sem_arg) 2278{ 2279#define FLD(f) abuf->fields.sfmt_addi.f 2280 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2281 const IDESC * UNUSED idesc = abuf->idesc; 2282 int cycles = 0; 2283 { 2284 int referenced = 0; 2285 int UNUSED insn_referenced = abuf->written; 2286 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 2287 } 2288 return cycles; 2289#undef FLD 2290} 2291 2292static int 2293model_iq2000_j (SIM_CPU *current_cpu, void *sem_arg) 2294{ 2295#define FLD(f) abuf->fields.sfmt_j.f 2296 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2297 const IDESC * UNUSED idesc = abuf->idesc; 2298 int cycles = 0; 2299 { 2300 int referenced = 0; 2301 int UNUSED insn_referenced = abuf->written; 2302 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 2303 } 2304 return cycles; 2305#undef FLD 2306} 2307 2308static int 2309model_iq2000_jal (SIM_CPU *current_cpu, void *sem_arg) 2310{ 2311#define FLD(f) abuf->fields.sfmt_j.f 2312 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2313 const IDESC * UNUSED idesc = abuf->idesc; 2314 int cycles = 0; 2315 { 2316 int referenced = 0; 2317 int UNUSED insn_referenced = abuf->written; 2318 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 2319 } 2320 return cycles; 2321#undef FLD 2322} 2323 2324static int 2325model_iq2000_bmb (SIM_CPU *current_cpu, void *sem_arg) 2326{ 2327#define FLD(f) abuf->fields.sfmt_bbi.f 2328 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2329 const IDESC * UNUSED idesc = abuf->idesc; 2330 int cycles = 0; 2331 { 2332 int referenced = 0; 2333 int UNUSED insn_referenced = abuf->written; 2334 cycles += iq2000bf_model_iq2000_u_exec (current_cpu, idesc, 0, referenced); 2335 } 2336 return cycles; 2337#undef FLD 2338} 2339 2340/* We assume UNIT_NONE == 0 because the tables don't always terminate 2341 entries with it. */ 2342 2343/* Model timing data for `iq2000'. */ 2344 2345static const INSN_TIMING iq2000_timing[] = { 2346 { IQ2000BF_INSN_X_INVALID, 0, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2347 { IQ2000BF_INSN_X_AFTER, 0, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2348 { IQ2000BF_INSN_X_BEFORE, 0, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2349 { IQ2000BF_INSN_X_CTI_CHAIN, 0, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2350 { IQ2000BF_INSN_X_CHAIN, 0, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2351 { IQ2000BF_INSN_X_BEGIN, 0, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2352 { IQ2000BF_INSN_ADD, model_iq2000_add, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2353 { IQ2000BF_INSN_ADDI, model_iq2000_addi, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2354 { IQ2000BF_INSN_ADDIU, model_iq2000_addiu, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2355 { IQ2000BF_INSN_ADDU, model_iq2000_addu, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2356 { IQ2000BF_INSN_ADO16, model_iq2000_ado16, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2357 { IQ2000BF_INSN_AND, model_iq2000_and, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2358 { IQ2000BF_INSN_ANDI, model_iq2000_andi, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2359 { IQ2000BF_INSN_ANDOI, model_iq2000_andoi, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2360 { IQ2000BF_INSN_NOR, model_iq2000_nor, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2361 { IQ2000BF_INSN_OR, model_iq2000_or, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2362 { IQ2000BF_INSN_ORI, model_iq2000_ori, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2363 { IQ2000BF_INSN_RAM, model_iq2000_ram, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2364 { IQ2000BF_INSN_SLL, model_iq2000_sll, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2365 { IQ2000BF_INSN_SLLV, model_iq2000_sllv, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2366 { IQ2000BF_INSN_SLMV, model_iq2000_slmv, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2367 { IQ2000BF_INSN_SLT, model_iq2000_slt, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2368 { IQ2000BF_INSN_SLTI, model_iq2000_slti, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2369 { IQ2000BF_INSN_SLTIU, model_iq2000_sltiu, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2370 { IQ2000BF_INSN_SLTU, model_iq2000_sltu, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2371 { IQ2000BF_INSN_SRA, model_iq2000_sra, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2372 { IQ2000BF_INSN_SRAV, model_iq2000_srav, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2373 { IQ2000BF_INSN_SRL, model_iq2000_srl, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2374 { IQ2000BF_INSN_SRLV, model_iq2000_srlv, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2375 { IQ2000BF_INSN_SRMV, model_iq2000_srmv, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2376 { IQ2000BF_INSN_SUB, model_iq2000_sub, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2377 { IQ2000BF_INSN_SUBU, model_iq2000_subu, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2378 { IQ2000BF_INSN_XOR, model_iq2000_xor, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2379 { IQ2000BF_INSN_XORI, model_iq2000_xori, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2380 { IQ2000BF_INSN_BBI, model_iq2000_bbi, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2381 { IQ2000BF_INSN_BBIN, model_iq2000_bbin, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2382 { IQ2000BF_INSN_BBV, model_iq2000_bbv, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2383 { IQ2000BF_INSN_BBVN, model_iq2000_bbvn, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2384 { IQ2000BF_INSN_BEQ, model_iq2000_beq, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2385 { IQ2000BF_INSN_BEQL, model_iq2000_beql, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2386 { IQ2000BF_INSN_BGEZ, model_iq2000_bgez, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2387 { IQ2000BF_INSN_BGEZAL, model_iq2000_bgezal, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2388 { IQ2000BF_INSN_BGEZALL, model_iq2000_bgezall, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2389 { IQ2000BF_INSN_BGEZL, model_iq2000_bgezl, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2390 { IQ2000BF_INSN_BLTZ, model_iq2000_bltz, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2391 { IQ2000BF_INSN_BLTZL, model_iq2000_bltzl, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2392 { IQ2000BF_INSN_BLTZAL, model_iq2000_bltzal, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2393 { IQ2000BF_INSN_BLTZALL, model_iq2000_bltzall, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2394 { IQ2000BF_INSN_BMB0, model_iq2000_bmb0, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2395 { IQ2000BF_INSN_BMB1, model_iq2000_bmb1, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2396 { IQ2000BF_INSN_BMB2, model_iq2000_bmb2, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2397 { IQ2000BF_INSN_BMB3, model_iq2000_bmb3, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2398 { IQ2000BF_INSN_BNE, model_iq2000_bne, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2399 { IQ2000BF_INSN_BNEL, model_iq2000_bnel, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2400 { IQ2000BF_INSN_JALR, model_iq2000_jalr, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2401 { IQ2000BF_INSN_JR, model_iq2000_jr, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2402 { IQ2000BF_INSN_LB, model_iq2000_lb, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2403 { IQ2000BF_INSN_LBU, model_iq2000_lbu, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2404 { IQ2000BF_INSN_LH, model_iq2000_lh, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2405 { IQ2000BF_INSN_LHU, model_iq2000_lhu, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2406 { IQ2000BF_INSN_LUI, model_iq2000_lui, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2407 { IQ2000BF_INSN_LW, model_iq2000_lw, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2408 { IQ2000BF_INSN_SB, model_iq2000_sb, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2409 { IQ2000BF_INSN_SH, model_iq2000_sh, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2410 { IQ2000BF_INSN_SW, model_iq2000_sw, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2411 { IQ2000BF_INSN_BREAK, model_iq2000_break, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2412 { IQ2000BF_INSN_SYSCALL, model_iq2000_syscall, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2413 { IQ2000BF_INSN_ANDOUI, model_iq2000_andoui, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2414 { IQ2000BF_INSN_ORUI, model_iq2000_orui, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2415 { IQ2000BF_INSN_BGTZ, model_iq2000_bgtz, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2416 { IQ2000BF_INSN_BGTZL, model_iq2000_bgtzl, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2417 { IQ2000BF_INSN_BLEZ, model_iq2000_blez, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2418 { IQ2000BF_INSN_BLEZL, model_iq2000_blezl, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2419 { IQ2000BF_INSN_MRGB, model_iq2000_mrgb, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2420 { IQ2000BF_INSN_BCTXT, model_iq2000_bctxt, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2421 { IQ2000BF_INSN_BC0F, model_iq2000_bc0f, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2422 { IQ2000BF_INSN_BC0FL, model_iq2000_bc0fl, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2423 { IQ2000BF_INSN_BC3F, model_iq2000_bc3f, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2424 { IQ2000BF_INSN_BC3FL, model_iq2000_bc3fl, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2425 { IQ2000BF_INSN_BC0T, model_iq2000_bc0t, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2426 { IQ2000BF_INSN_BC0TL, model_iq2000_bc0tl, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2427 { IQ2000BF_INSN_BC3T, model_iq2000_bc3t, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2428 { IQ2000BF_INSN_BC3TL, model_iq2000_bc3tl, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2429 { IQ2000BF_INSN_CFC0, model_iq2000_cfc0, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2430 { IQ2000BF_INSN_CFC1, model_iq2000_cfc1, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2431 { IQ2000BF_INSN_CFC2, model_iq2000_cfc2, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2432 { IQ2000BF_INSN_CFC3, model_iq2000_cfc3, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2433 { IQ2000BF_INSN_CHKHDR, model_iq2000_chkhdr, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2434 { IQ2000BF_INSN_CTC0, model_iq2000_ctc0, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2435 { IQ2000BF_INSN_CTC1, model_iq2000_ctc1, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2436 { IQ2000BF_INSN_CTC2, model_iq2000_ctc2, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2437 { IQ2000BF_INSN_CTC3, model_iq2000_ctc3, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2438 { IQ2000BF_INSN_JCR, model_iq2000_jcr, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2439 { IQ2000BF_INSN_LUC32, model_iq2000_luc32, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2440 { IQ2000BF_INSN_LUC32L, model_iq2000_luc32l, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2441 { IQ2000BF_INSN_LUC64, model_iq2000_luc64, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2442 { IQ2000BF_INSN_LUC64L, model_iq2000_luc64l, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2443 { IQ2000BF_INSN_LUK, model_iq2000_luk, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2444 { IQ2000BF_INSN_LULCK, model_iq2000_lulck, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2445 { IQ2000BF_INSN_LUM32, model_iq2000_lum32, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2446 { IQ2000BF_INSN_LUM32L, model_iq2000_lum32l, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2447 { IQ2000BF_INSN_LUM64, model_iq2000_lum64, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2448 { IQ2000BF_INSN_LUM64L, model_iq2000_lum64l, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2449 { IQ2000BF_INSN_LUR, model_iq2000_lur, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2450 { IQ2000BF_INSN_LURL, model_iq2000_lurl, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2451 { IQ2000BF_INSN_LUULCK, model_iq2000_luulck, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2452 { IQ2000BF_INSN_MFC0, model_iq2000_mfc0, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2453 { IQ2000BF_INSN_MFC1, model_iq2000_mfc1, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2454 { IQ2000BF_INSN_MFC2, model_iq2000_mfc2, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2455 { IQ2000BF_INSN_MFC3, model_iq2000_mfc3, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2456 { IQ2000BF_INSN_MTC0, model_iq2000_mtc0, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2457 { IQ2000BF_INSN_MTC1, model_iq2000_mtc1, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2458 { IQ2000BF_INSN_MTC2, model_iq2000_mtc2, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2459 { IQ2000BF_INSN_MTC3, model_iq2000_mtc3, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2460 { IQ2000BF_INSN_PKRL, model_iq2000_pkrl, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2461 { IQ2000BF_INSN_PKRLR1, model_iq2000_pkrlr1, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2462 { IQ2000BF_INSN_PKRLR30, model_iq2000_pkrlr30, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2463 { IQ2000BF_INSN_RB, model_iq2000_rb, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2464 { IQ2000BF_INSN_RBR1, model_iq2000_rbr1, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2465 { IQ2000BF_INSN_RBR30, model_iq2000_rbr30, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2466 { IQ2000BF_INSN_RFE, model_iq2000_rfe, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2467 { IQ2000BF_INSN_RX, model_iq2000_rx, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2468 { IQ2000BF_INSN_RXR1, model_iq2000_rxr1, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2469 { IQ2000BF_INSN_RXR30, model_iq2000_rxr30, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2470 { IQ2000BF_INSN_SLEEP, model_iq2000_sleep, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2471 { IQ2000BF_INSN_SRRD, model_iq2000_srrd, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2472 { IQ2000BF_INSN_SRRDL, model_iq2000_srrdl, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2473 { IQ2000BF_INSN_SRULCK, model_iq2000_srulck, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2474 { IQ2000BF_INSN_SRWR, model_iq2000_srwr, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2475 { IQ2000BF_INSN_SRWRU, model_iq2000_srwru, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2476 { IQ2000BF_INSN_TRAPQFL, model_iq2000_trapqfl, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2477 { IQ2000BF_INSN_TRAPQNE, model_iq2000_trapqne, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2478 { IQ2000BF_INSN_TRAPREL, model_iq2000_traprel, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2479 { IQ2000BF_INSN_WB, model_iq2000_wb, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2480 { IQ2000BF_INSN_WBU, model_iq2000_wbu, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2481 { IQ2000BF_INSN_WBR1, model_iq2000_wbr1, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2482 { IQ2000BF_INSN_WBR1U, model_iq2000_wbr1u, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2483 { IQ2000BF_INSN_WBR30, model_iq2000_wbr30, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2484 { IQ2000BF_INSN_WBR30U, model_iq2000_wbr30u, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2485 { IQ2000BF_INSN_WX, model_iq2000_wx, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2486 { IQ2000BF_INSN_WXU, model_iq2000_wxu, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2487 { IQ2000BF_INSN_WXR1, model_iq2000_wxr1, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2488 { IQ2000BF_INSN_WXR1U, model_iq2000_wxr1u, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2489 { IQ2000BF_INSN_WXR30, model_iq2000_wxr30, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2490 { IQ2000BF_INSN_WXR30U, model_iq2000_wxr30u, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2491 { IQ2000BF_INSN_LDW, model_iq2000_ldw, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2492 { IQ2000BF_INSN_SDW, model_iq2000_sdw, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2493 { IQ2000BF_INSN_J, model_iq2000_j, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2494 { IQ2000BF_INSN_JAL, model_iq2000_jal, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2495 { IQ2000BF_INSN_BMB, model_iq2000_bmb, { { (int) UNIT_IQ2000_U_EXEC, 1, 1 } } }, 2496}; 2497 2498#endif /* WITH_PROFILE_MODEL_P */ 2499 2500static void 2501iq2000_model_init (SIM_CPU *cpu) 2502{ 2503 CPU_MODEL_DATA (cpu) = (void *) zalloc (sizeof (MODEL_IQ2000_DATA)); 2504} 2505 2506#if WITH_PROFILE_MODEL_P 2507#define TIMING_DATA(td) td 2508#else 2509#define TIMING_DATA(td) 0 2510#endif 2511 2512static const SIM_MODEL iq2000_models[] = 2513{ 2514 { "iq2000", & iq2000_mach, MODEL_IQ2000, TIMING_DATA (& iq2000_timing[0]), iq2000_model_init }, 2515 { 0 } 2516}; 2517 2518/* The properties of this cpu's implementation. */ 2519 2520static const SIM_MACH_IMP_PROPERTIES iq2000bf_imp_properties = 2521{ 2522 sizeof (SIM_CPU), 2523#if WITH_SCACHE 2524 sizeof (SCACHE) 2525#else 2526 0 2527#endif 2528}; 2529 2530 2531static void 2532iq2000bf_prepare_run (SIM_CPU *cpu) 2533{ 2534 if (CPU_IDESC (cpu) == NULL) 2535 iq2000bf_init_idesc_table (cpu); 2536} 2537 2538static const CGEN_INSN * 2539iq2000bf_get_idata (SIM_CPU *cpu, int inum) 2540{ 2541 return CPU_IDESC (cpu) [inum].idata; 2542} 2543 2544static void 2545iq2000_init_cpu (SIM_CPU *cpu) 2546{ 2547 CPU_REG_FETCH (cpu) = iq2000bf_fetch_register; 2548 CPU_REG_STORE (cpu) = iq2000bf_store_register; 2549 CPU_PC_FETCH (cpu) = iq2000bf_h_pc_get; 2550 CPU_PC_STORE (cpu) = iq2000bf_h_pc_set; 2551 CPU_GET_IDATA (cpu) = iq2000bf_get_idata; 2552 CPU_MAX_INSNS (cpu) = IQ2000BF_INSN__MAX; 2553 CPU_INSN_NAME (cpu) = cgen_insn_name; 2554 CPU_FULL_ENGINE_FN (cpu) = iq2000bf_engine_run_full; 2555#if WITH_FAST 2556 CPU_FAST_ENGINE_FN (cpu) = iq2000bf_engine_run_fast; 2557#else 2558 CPU_FAST_ENGINE_FN (cpu) = iq2000bf_engine_run_full; 2559#endif 2560} 2561 2562const SIM_MACH iq2000_mach = 2563{ 2564 "iq2000", "iq2000", MACH_IQ2000, 2565 32, 32, & iq2000_models[0], & iq2000bf_imp_properties, 2566 iq2000_init_cpu, 2567 iq2000bf_prepare_run 2568}; 2569 2570