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