1 /* Simulator model support for iq2000bf. 2 3 THIS FILE IS MACHINE GENERATED WITH CGEN. 4 5 Copyright 1996-2023 Free Software Foundation, Inc. 6 7 This file is part of the GNU simulators. 8 9 This file is free software; you can redistribute it and/or modify 10 it under the terms of the GNU General Public License as published by 11 the Free Software Foundation; either version 3, or (at your option) 12 any later version. 13 14 It is distributed in the hope that it will be useful, but WITHOUT 15 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 16 or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public 17 License for more details. 18 19 You should have received a copy of the GNU General Public License along 20 with this program; if not, 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 36 static int 37 model_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 52 static int 53 model_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 68 static int 69 model_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 84 static int 85 model_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 100 static int 101 model_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 116 static int 117 model_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 132 static int 133 model_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 148 static int 149 model_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 164 static int 165 model_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 180 static int 181 model_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 196 static int 197 model_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 212 static int 213 model_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 228 static int 229 model_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 244 static int 245 model_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 260 static int 261 model_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 276 static int 277 model_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 292 static int 293 model_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 308 static int 309 model_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 324 static int 325 model_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 340 static int 341 model_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 356 static int 357 model_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 372 static int 373 model_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 388 static int 389 model_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 404 static int 405 model_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 420 static int 421 model_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 436 static int 437 model_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 452 static int 453 model_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 468 static int 469 model_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 484 static int 485 model_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 500 static int 501 model_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 516 static int 517 model_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 532 static int 533 model_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 548 static int 549 model_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 564 static int 565 model_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 580 static int 581 model_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 596 static int 597 model_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 612 static int 613 model_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 628 static int 629 model_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 644 static int 645 model_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 660 static int 661 model_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 676 static int 677 model_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 692 static int 693 model_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 708 static int 709 model_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 724 static int 725 model_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 740 static int 741 model_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 756 static int 757 model_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 772 static int 773 model_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 788 static int 789 model_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 804 static int 805 model_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 820 static int 821 model_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 836 static int 837 model_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 852 static int 853 model_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 868 static int 869 model_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 884 static int 885 model_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 900 static int 901 model_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 916 static int 917 model_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 932 static int 933 model_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 948 static int 949 model_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 964 static int 965 model_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 980 static int 981 model_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 996 static int 997 model_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 1012 static int 1013 model_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 1028 static int 1029 model_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 1044 static int 1045 model_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 1060 static int 1061 model_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 1076 static int 1077 model_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 1092 static int 1093 model_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 1108 static int 1109 model_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 1124 static int 1125 model_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 1140 static int 1141 model_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 1156 static int 1157 model_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 1172 static int 1173 model_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 1188 static int 1189 model_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 1204 static int 1205 model_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 1220 static int 1221 model_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 1236 static int 1237 model_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 1252 static int 1253 model_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 1268 static int 1269 model_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 1284 static int 1285 model_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 1300 static int 1301 model_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 1316 static int 1317 model_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 1332 static int 1333 model_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 1348 static int 1349 model_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 1364 static int 1365 model_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 1380 static int 1381 model_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 1396 static int 1397 model_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 1412 static int 1413 model_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 1428 static int 1429 model_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 1444 static int 1445 model_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 1460 static int 1461 model_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 1476 static int 1477 model_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 1492 static int 1493 model_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 1508 static int 1509 model_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 1524 static int 1525 model_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 1540 static int 1541 model_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 1556 static int 1557 model_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 1572 static int 1573 model_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 1588 static int 1589 model_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 1604 static int 1605 model_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 1620 static int 1621 model_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 1636 static int 1637 model_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 1652 static int 1653 model_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 1668 static int 1669 model_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 1684 static int 1685 model_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 1700 static int 1701 model_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 1716 static int 1717 model_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 1732 static int 1733 model_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 1748 static int 1749 model_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 1764 static int 1765 model_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 1780 static int 1781 model_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 1796 static int 1797 model_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 1812 static int 1813 model_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 1828 static int 1829 model_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 1844 static int 1845 model_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 1860 static int 1861 model_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 1876 static int 1877 model_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 1892 static int 1893 model_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 1908 static int 1909 model_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 1924 static int 1925 model_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 1940 static int 1941 model_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 1956 static int 1957 model_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 1972 static int 1973 model_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 1988 static int 1989 model_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 2004 static int 2005 model_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 2020 static int 2021 model_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 2036 static int 2037 model_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 2052 static int 2053 model_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 2068 static int 2069 model_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 2084 static int 2085 model_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 2100 static int 2101 model_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 2116 static int 2117 model_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 2132 static int 2133 model_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 2148 static int 2149 model_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 2164 static int 2165 model_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 2180 static int 2181 model_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 2196 static int 2197 model_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 2212 static int 2213 model_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 2228 static int 2229 model_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 2244 static int 2245 model_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 2260 static int 2261 model_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 2276 static int 2277 model_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 2292 static int 2293 model_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 2308 static int 2309 model_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 2324 static int 2325 model_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 2345 static 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 2500 static void 2501 iq2000_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 2512 static 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 2520 static 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 2531 static void 2532 iq2000bf_prepare_run (SIM_CPU *cpu) 2533 { 2534 if (CPU_IDESC (cpu) == NULL) 2535 iq2000bf_init_idesc_table (cpu); 2536 } 2537 2538 static const CGEN_INSN * 2539 iq2000bf_get_idata (SIM_CPU *cpu, int inum) 2540 { 2541 return CPU_IDESC (cpu) [inum].idata; 2542 } 2543 2544 static void 2545 iq2000_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 2562 const 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