1 /* Simulator model support for iq2000bf. 2 3 THIS FILE IS MACHINE GENERATED WITH CGEN. 4 5 Copyright (C) 1996-2024 Free Software Foundation, Inc. 6 7 This file is part of the GNU simulators. 8 9 This file is free software; you can redistribute it and/or modify 10 it under the terms of the GNU General Public License as published by 11 the Free Software Foundation; either version 3, or (at your option) 12 any later version. 13 14 It is distributed in the hope that it will be useful, but WITHOUT 15 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 16 or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public 17 License for more details. 18 19 You should have received a copy of the GNU General Public License along 20 with this program; if not, write to the Free Software Foundation, Inc., 21 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. 22 23 */ 24 25 #define WANT_CPU 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 37 static int 38 model_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 53 static int 54 model_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 69 static int 70 model_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 85 static int 86 model_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 101 static int 102 model_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 117 static int 118 model_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 133 static int 134 model_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 149 static int 150 model_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 165 static int 166 model_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 181 static int 182 model_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 197 static int 198 model_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 213 static int 214 model_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 229 static int 230 model_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 245 static int 246 model_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 261 static int 262 model_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 277 static int 278 model_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 293 static int 294 model_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 309 static int 310 model_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 325 static int 326 model_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 341 static int 342 model_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 357 static int 358 model_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 373 static int 374 model_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 389 static int 390 model_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 405 static int 406 model_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 421 static int 422 model_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 437 static int 438 model_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 453 static int 454 model_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 469 static int 470 model_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 485 static int 486 model_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 501 static int 502 model_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 517 static int 518 model_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 533 static int 534 model_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 549 static int 550 model_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 565 static int 566 model_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 581 static int 582 model_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 597 static int 598 model_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 613 static int 614 model_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 629 static int 630 model_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 645 static int 646 model_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 661 static int 662 model_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 677 static int 678 model_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 693 static int 694 model_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 709 static int 710 model_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 725 static int 726 model_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 741 static int 742 model_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 757 static int 758 model_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 773 static int 774 model_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 789 static int 790 model_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 805 static int 806 model_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 821 static int 822 model_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 837 static int 838 model_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 853 static int 854 model_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 869 static int 870 model_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 885 static int 886 model_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 901 static int 902 model_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 917 static int 918 model_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 933 static int 934 model_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 949 static int 950 model_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 965 static int 966 model_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 981 static int 982 model_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 997 static int 998 model_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 1013 static int 1014 model_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 1029 static int 1030 model_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 1045 static int 1046 model_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 1061 static int 1062 model_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 1077 static int 1078 model_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 1093 static int 1094 model_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 1109 static int 1110 model_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 1125 static int 1126 model_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 1141 static int 1142 model_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 1157 static int 1158 model_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 1173 static int 1174 model_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 1189 static int 1190 model_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 1205 static int 1206 model_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 1221 static int 1222 model_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 1237 static int 1238 model_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 1253 static int 1254 model_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 1269 static int 1270 model_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 1285 static int 1286 model_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 1301 static int 1302 model_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 1317 static int 1318 model_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 1333 static int 1334 model_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 1349 static int 1350 model_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 1365 static int 1366 model_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 1381 static int 1382 model_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 1397 static int 1398 model_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 1413 static int 1414 model_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 1429 static int 1430 model_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 1445 static int 1446 model_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 1461 static int 1462 model_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 1477 static int 1478 model_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 1493 static int 1494 model_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 1509 static int 1510 model_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 1525 static int 1526 model_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 1541 static int 1542 model_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 1557 static int 1558 model_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 1573 static int 1574 model_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 1589 static int 1590 model_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 1605 static int 1606 model_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 1621 static int 1622 model_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 1637 static int 1638 model_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 1653 static int 1654 model_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 1669 static int 1670 model_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 1685 static int 1686 model_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 1701 static int 1702 model_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 1717 static int 1718 model_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 1733 static int 1734 model_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 1749 static int 1750 model_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 1765 static int 1766 model_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 1781 static int 1782 model_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 1797 static int 1798 model_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 1813 static int 1814 model_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 1829 static int 1830 model_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 1845 static int 1846 model_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 1861 static int 1862 model_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 1877 static int 1878 model_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 1893 static int 1894 model_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 1909 static int 1910 model_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 1925 static int 1926 model_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 1941 static int 1942 model_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 1957 static int 1958 model_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 1973 static int 1974 model_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 1989 static int 1990 model_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 2005 static int 2006 model_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 2021 static int 2022 model_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 2037 static int 2038 model_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 2053 static int 2054 model_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 2069 static int 2070 model_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 2085 static int 2086 model_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 2101 static int 2102 model_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 2117 static int 2118 model_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 2133 static int 2134 model_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 2149 static int 2150 model_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 2165 static int 2166 model_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 2181 static int 2182 model_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 2197 static int 2198 model_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 2213 static int 2214 model_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 2229 static int 2230 model_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 2245 static int 2246 model_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 2261 static int 2262 model_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 2277 static int 2278 model_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 2293 static int 2294 model_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 2309 static int 2310 model_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 2325 static int 2326 model_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 2346 static 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 2501 static void 2502 iq2000_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 2513 static const SIM_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 2521 static const SIM_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 2532 static void 2533 iq2000bf_prepare_run (SIM_CPU *cpu) 2534 { 2535 if (CPU_IDESC (cpu) == NULL) 2536 iq2000bf_init_idesc_table (cpu); 2537 } 2538 2539 static const CGEN_INSN * 2540 iq2000bf_get_idata (SIM_CPU *cpu, int inum) 2541 { 2542 return CPU_IDESC (cpu) [inum].idata; 2543 } 2544 2545 static void 2546 iq2000_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 2563 const SIM_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