1 /* Simulator model support for crisv10f. 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 crisv10f 26 #define WANT_CPU_CRISV10F 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_crisv10_nop (SIM_CPU *current_cpu, void *sem_arg) 39 { 40 #define FLD(f) abuf->fields.sfmt_empty.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 += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); 48 } 49 return cycles; 50 #undef FLD 51 } 52 53 static int 54 model_crisv10_move_b_r (SIM_CPU *current_cpu, void *sem_arg) 55 { 56 #define FLD(f) abuf->fields.sfmt_add_b_r.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 += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); 64 } 65 return cycles; 66 #undef FLD 67 } 68 69 static int 70 model_crisv10_move_w_r (SIM_CPU *current_cpu, void *sem_arg) 71 { 72 #define FLD(f) abuf->fields.sfmt_add_b_r.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 += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); 80 } 81 return cycles; 82 #undef FLD 83 } 84 85 static int 86 model_crisv10_move_d_r (SIM_CPU *current_cpu, void *sem_arg) 87 { 88 #define FLD(f) abuf->fields.sfmt_add_b_r.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 += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); 96 } 97 return cycles; 98 #undef FLD 99 } 100 101 static int 102 model_crisv10_movepcr (SIM_CPU *current_cpu, void *sem_arg) 103 { 104 #define FLD(f) abuf->fields.sfmt_moveq.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 += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); 112 } 113 return cycles; 114 #undef FLD 115 } 116 117 static int 118 model_crisv10_moveq (SIM_CPU *current_cpu, void *sem_arg) 119 { 120 #define FLD(f) abuf->fields.sfmt_moveq.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 += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); 128 } 129 return cycles; 130 #undef FLD 131 } 132 133 static int 134 model_crisv10_movs_b_r (SIM_CPU *current_cpu, void *sem_arg) 135 { 136 #define FLD(f) abuf->fields.sfmt_muls_b.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 += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); 144 } 145 return cycles; 146 #undef FLD 147 } 148 149 static int 150 model_crisv10_movs_w_r (SIM_CPU *current_cpu, void *sem_arg) 151 { 152 #define FLD(f) abuf->fields.sfmt_muls_b.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 += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); 160 } 161 return cycles; 162 #undef FLD 163 } 164 165 static int 166 model_crisv10_movu_b_r (SIM_CPU *current_cpu, void *sem_arg) 167 { 168 #define FLD(f) abuf->fields.sfmt_muls_b.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 += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); 176 } 177 return cycles; 178 #undef FLD 179 } 180 181 static int 182 model_crisv10_movu_w_r (SIM_CPU *current_cpu, void *sem_arg) 183 { 184 #define FLD(f) abuf->fields.sfmt_muls_b.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 += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); 192 } 193 return cycles; 194 #undef FLD 195 } 196 197 static int 198 model_crisv10_movecbr (SIM_CPU *current_cpu, void *sem_arg) 199 { 200 #define FLD(f) abuf->fields.sfmt_addcbr.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 += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced); 208 } 209 { 210 int referenced = 0; 211 int UNUSED insn_referenced = abuf->written; 212 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); 213 } 214 return cycles; 215 #undef FLD 216 } 217 218 static int 219 model_crisv10_movecwr (SIM_CPU *current_cpu, void *sem_arg) 220 { 221 #define FLD(f) abuf->fields.sfmt_addcwr.f 222 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 223 const IDESC * UNUSED idesc = abuf->idesc; 224 int cycles = 0; 225 { 226 int referenced = 0; 227 int UNUSED insn_referenced = abuf->written; 228 cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced); 229 } 230 { 231 int referenced = 0; 232 int UNUSED insn_referenced = abuf->written; 233 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); 234 } 235 return cycles; 236 #undef FLD 237 } 238 239 static int 240 model_crisv10_movecdr (SIM_CPU *current_cpu, void *sem_arg) 241 { 242 #define FLD(f) abuf->fields.sfmt_bound_cd.f 243 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 244 const IDESC * UNUSED idesc = abuf->idesc; 245 int cycles = 0; 246 { 247 int referenced = 0; 248 int UNUSED insn_referenced = abuf->written; 249 cycles += crisv10f_model_crisv10_u_const32 (current_cpu, idesc, 0, referenced); 250 } 251 { 252 int referenced = 0; 253 int UNUSED insn_referenced = abuf->written; 254 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); 255 } 256 return cycles; 257 #undef FLD 258 } 259 260 static int 261 model_crisv10_movscbr (SIM_CPU *current_cpu, void *sem_arg) 262 { 263 #define FLD(f) abuf->fields.sfmt_bound_cb.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 += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced); 271 } 272 { 273 int referenced = 0; 274 int UNUSED insn_referenced = abuf->written; 275 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); 276 } 277 return cycles; 278 #undef FLD 279 } 280 281 static int 282 model_crisv10_movscwr (SIM_CPU *current_cpu, void *sem_arg) 283 { 284 #define FLD(f) abuf->fields.sfmt_bound_cw.f 285 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 286 const IDESC * UNUSED idesc = abuf->idesc; 287 int cycles = 0; 288 { 289 int referenced = 0; 290 int UNUSED insn_referenced = abuf->written; 291 cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced); 292 } 293 { 294 int referenced = 0; 295 int UNUSED insn_referenced = abuf->written; 296 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); 297 } 298 return cycles; 299 #undef FLD 300 } 301 302 static int 303 model_crisv10_movucbr (SIM_CPU *current_cpu, void *sem_arg) 304 { 305 #define FLD(f) abuf->fields.sfmt_bound_cb.f 306 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 307 const IDESC * UNUSED idesc = abuf->idesc; 308 int cycles = 0; 309 { 310 int referenced = 0; 311 int UNUSED insn_referenced = abuf->written; 312 cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced); 313 } 314 { 315 int referenced = 0; 316 int UNUSED insn_referenced = abuf->written; 317 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); 318 } 319 return cycles; 320 #undef FLD 321 } 322 323 static int 324 model_crisv10_movucwr (SIM_CPU *current_cpu, void *sem_arg) 325 { 326 #define FLD(f) abuf->fields.sfmt_bound_cw.f 327 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 328 const IDESC * UNUSED idesc = abuf->idesc; 329 int cycles = 0; 330 { 331 int referenced = 0; 332 int UNUSED insn_referenced = abuf->written; 333 cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced); 334 } 335 { 336 int referenced = 0; 337 int UNUSED insn_referenced = abuf->written; 338 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); 339 } 340 return cycles; 341 #undef FLD 342 } 343 344 static int 345 model_crisv10_addq (SIM_CPU *current_cpu, void *sem_arg) 346 { 347 #define FLD(f) abuf->fields.sfmt_addq.f 348 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 349 const IDESC * UNUSED idesc = abuf->idesc; 350 int cycles = 0; 351 { 352 int referenced = 0; 353 int UNUSED insn_referenced = abuf->written; 354 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); 355 } 356 return cycles; 357 #undef FLD 358 } 359 360 static int 361 model_crisv10_subq (SIM_CPU *current_cpu, void *sem_arg) 362 { 363 #define FLD(f) abuf->fields.sfmt_addq.f 364 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 365 const IDESC * UNUSED idesc = abuf->idesc; 366 int cycles = 0; 367 { 368 int referenced = 0; 369 int UNUSED insn_referenced = abuf->written; 370 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); 371 } 372 return cycles; 373 #undef FLD 374 } 375 376 static int 377 model_crisv10_cmp_r_b_r (SIM_CPU *current_cpu, void *sem_arg) 378 { 379 #define FLD(f) abuf->fields.sfmt_add_b_r.f 380 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 381 const IDESC * UNUSED idesc = abuf->idesc; 382 int cycles = 0; 383 { 384 int referenced = 0; 385 int UNUSED insn_referenced = abuf->written; 386 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); 387 } 388 return cycles; 389 #undef FLD 390 } 391 392 static int 393 model_crisv10_cmp_r_w_r (SIM_CPU *current_cpu, void *sem_arg) 394 { 395 #define FLD(f) abuf->fields.sfmt_add_b_r.f 396 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 397 const IDESC * UNUSED idesc = abuf->idesc; 398 int cycles = 0; 399 { 400 int referenced = 0; 401 int UNUSED insn_referenced = abuf->written; 402 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); 403 } 404 return cycles; 405 #undef FLD 406 } 407 408 static int 409 model_crisv10_cmp_r_d_r (SIM_CPU *current_cpu, void *sem_arg) 410 { 411 #define FLD(f) abuf->fields.sfmt_add_b_r.f 412 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 413 const IDESC * UNUSED idesc = abuf->idesc; 414 int cycles = 0; 415 { 416 int referenced = 0; 417 int UNUSED insn_referenced = abuf->written; 418 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); 419 } 420 return cycles; 421 #undef FLD 422 } 423 424 static int 425 model_crisv10_cmp_m_b_m (SIM_CPU *current_cpu, void *sem_arg) 426 { 427 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f 428 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 429 const IDESC * UNUSED idesc = abuf->idesc; 430 int cycles = 0; 431 { 432 int referenced = 0; 433 int UNUSED insn_referenced = abuf->written; 434 cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced); 435 } 436 { 437 int referenced = 0; 438 int UNUSED insn_referenced = abuf->written; 439 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); 440 } 441 return cycles; 442 #undef FLD 443 } 444 445 static int 446 model_crisv10_cmp_m_w_m (SIM_CPU *current_cpu, void *sem_arg) 447 { 448 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f 449 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 450 const IDESC * UNUSED idesc = abuf->idesc; 451 int cycles = 0; 452 { 453 int referenced = 0; 454 int UNUSED insn_referenced = abuf->written; 455 cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced); 456 } 457 { 458 int referenced = 0; 459 int UNUSED insn_referenced = abuf->written; 460 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); 461 } 462 return cycles; 463 #undef FLD 464 } 465 466 static int 467 model_crisv10_cmp_m_d_m (SIM_CPU *current_cpu, void *sem_arg) 468 { 469 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f 470 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 471 const IDESC * UNUSED idesc = abuf->idesc; 472 int cycles = 0; 473 { 474 int referenced = 0; 475 int UNUSED insn_referenced = abuf->written; 476 cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced); 477 } 478 { 479 int referenced = 0; 480 int UNUSED insn_referenced = abuf->written; 481 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); 482 } 483 return cycles; 484 #undef FLD 485 } 486 487 static int 488 model_crisv10_cmpcbr (SIM_CPU *current_cpu, void *sem_arg) 489 { 490 #define FLD(f) abuf->fields.sfmt_bound_cb.f 491 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 492 const IDESC * UNUSED idesc = abuf->idesc; 493 int cycles = 0; 494 { 495 int referenced = 0; 496 int UNUSED insn_referenced = abuf->written; 497 cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced); 498 } 499 { 500 int referenced = 0; 501 int UNUSED insn_referenced = abuf->written; 502 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); 503 } 504 return cycles; 505 #undef FLD 506 } 507 508 static int 509 model_crisv10_cmpcwr (SIM_CPU *current_cpu, void *sem_arg) 510 { 511 #define FLD(f) abuf->fields.sfmt_bound_cw.f 512 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 513 const IDESC * UNUSED idesc = abuf->idesc; 514 int cycles = 0; 515 { 516 int referenced = 0; 517 int UNUSED insn_referenced = abuf->written; 518 cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced); 519 } 520 { 521 int referenced = 0; 522 int UNUSED insn_referenced = abuf->written; 523 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); 524 } 525 return cycles; 526 #undef FLD 527 } 528 529 static int 530 model_crisv10_cmpcdr (SIM_CPU *current_cpu, void *sem_arg) 531 { 532 #define FLD(f) abuf->fields.sfmt_bound_cd.f 533 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 534 const IDESC * UNUSED idesc = abuf->idesc; 535 int cycles = 0; 536 { 537 int referenced = 0; 538 int UNUSED insn_referenced = abuf->written; 539 cycles += crisv10f_model_crisv10_u_const32 (current_cpu, idesc, 0, referenced); 540 } 541 { 542 int referenced = 0; 543 int UNUSED insn_referenced = abuf->written; 544 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); 545 } 546 return cycles; 547 #undef FLD 548 } 549 550 static int 551 model_crisv10_cmpq (SIM_CPU *current_cpu, void *sem_arg) 552 { 553 #define FLD(f) abuf->fields.sfmt_andq.f 554 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 555 const IDESC * UNUSED idesc = abuf->idesc; 556 int cycles = 0; 557 { 558 int referenced = 0; 559 int UNUSED insn_referenced = abuf->written; 560 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); 561 } 562 return cycles; 563 #undef FLD 564 } 565 566 static int 567 model_crisv10_cmps_m_b_m (SIM_CPU *current_cpu, void *sem_arg) 568 { 569 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f 570 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 571 const IDESC * UNUSED idesc = abuf->idesc; 572 int cycles = 0; 573 { 574 int referenced = 0; 575 int UNUSED insn_referenced = abuf->written; 576 cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced); 577 } 578 { 579 int referenced = 0; 580 int UNUSED insn_referenced = abuf->written; 581 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); 582 } 583 return cycles; 584 #undef FLD 585 } 586 587 static int 588 model_crisv10_cmps_m_w_m (SIM_CPU *current_cpu, void *sem_arg) 589 { 590 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f 591 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 592 const IDESC * UNUSED idesc = abuf->idesc; 593 int cycles = 0; 594 { 595 int referenced = 0; 596 int UNUSED insn_referenced = abuf->written; 597 cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced); 598 } 599 { 600 int referenced = 0; 601 int UNUSED insn_referenced = abuf->written; 602 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); 603 } 604 return cycles; 605 #undef FLD 606 } 607 608 static int 609 model_crisv10_cmpscbr (SIM_CPU *current_cpu, void *sem_arg) 610 { 611 #define FLD(f) abuf->fields.sfmt_bound_cb.f 612 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 613 const IDESC * UNUSED idesc = abuf->idesc; 614 int cycles = 0; 615 { 616 int referenced = 0; 617 int UNUSED insn_referenced = abuf->written; 618 cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced); 619 } 620 { 621 int referenced = 0; 622 int UNUSED insn_referenced = abuf->written; 623 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); 624 } 625 return cycles; 626 #undef FLD 627 } 628 629 static int 630 model_crisv10_cmpscwr (SIM_CPU *current_cpu, void *sem_arg) 631 { 632 #define FLD(f) abuf->fields.sfmt_bound_cw.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 += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced); 640 } 641 { 642 int referenced = 0; 643 int UNUSED insn_referenced = abuf->written; 644 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); 645 } 646 return cycles; 647 #undef FLD 648 } 649 650 static int 651 model_crisv10_cmpu_m_b_m (SIM_CPU *current_cpu, void *sem_arg) 652 { 653 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f 654 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 655 const IDESC * UNUSED idesc = abuf->idesc; 656 int cycles = 0; 657 { 658 int referenced = 0; 659 int UNUSED insn_referenced = abuf->written; 660 cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced); 661 } 662 { 663 int referenced = 0; 664 int UNUSED insn_referenced = abuf->written; 665 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); 666 } 667 return cycles; 668 #undef FLD 669 } 670 671 static int 672 model_crisv10_cmpu_m_w_m (SIM_CPU *current_cpu, void *sem_arg) 673 { 674 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f 675 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 676 const IDESC * UNUSED idesc = abuf->idesc; 677 int cycles = 0; 678 { 679 int referenced = 0; 680 int UNUSED insn_referenced = abuf->written; 681 cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced); 682 } 683 { 684 int referenced = 0; 685 int UNUSED insn_referenced = abuf->written; 686 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); 687 } 688 return cycles; 689 #undef FLD 690 } 691 692 static int 693 model_crisv10_cmpucbr (SIM_CPU *current_cpu, void *sem_arg) 694 { 695 #define FLD(f) abuf->fields.sfmt_bound_cb.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 += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced); 703 } 704 { 705 int referenced = 0; 706 int UNUSED insn_referenced = abuf->written; 707 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); 708 } 709 return cycles; 710 #undef FLD 711 } 712 713 static int 714 model_crisv10_cmpucwr (SIM_CPU *current_cpu, void *sem_arg) 715 { 716 #define FLD(f) abuf->fields.sfmt_bound_cw.f 717 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 718 const IDESC * UNUSED idesc = abuf->idesc; 719 int cycles = 0; 720 { 721 int referenced = 0; 722 int UNUSED insn_referenced = abuf->written; 723 cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced); 724 } 725 { 726 int referenced = 0; 727 int UNUSED insn_referenced = abuf->written; 728 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); 729 } 730 return cycles; 731 #undef FLD 732 } 733 734 static int 735 model_crisv10_move_m_b_m (SIM_CPU *current_cpu, void *sem_arg) 736 { 737 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f 738 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 739 const IDESC * UNUSED idesc = abuf->idesc; 740 int cycles = 0; 741 { 742 int referenced = 0; 743 int UNUSED insn_referenced = abuf->written; 744 cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced); 745 } 746 { 747 int referenced = 0; 748 int UNUSED insn_referenced = abuf->written; 749 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); 750 } 751 return cycles; 752 #undef FLD 753 } 754 755 static int 756 model_crisv10_move_m_w_m (SIM_CPU *current_cpu, void *sem_arg) 757 { 758 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f 759 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 760 const IDESC * UNUSED idesc = abuf->idesc; 761 int cycles = 0; 762 { 763 int referenced = 0; 764 int UNUSED insn_referenced = abuf->written; 765 cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced); 766 } 767 { 768 int referenced = 0; 769 int UNUSED insn_referenced = abuf->written; 770 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); 771 } 772 return cycles; 773 #undef FLD 774 } 775 776 static int 777 model_crisv10_move_m_d_m (SIM_CPU *current_cpu, void *sem_arg) 778 { 779 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f 780 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 781 const IDESC * UNUSED idesc = abuf->idesc; 782 int cycles = 0; 783 { 784 int referenced = 0; 785 int UNUSED insn_referenced = abuf->written; 786 cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced); 787 } 788 { 789 int referenced = 0; 790 int UNUSED insn_referenced = abuf->written; 791 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); 792 } 793 return cycles; 794 #undef FLD 795 } 796 797 static int 798 model_crisv10_movs_m_b_m (SIM_CPU *current_cpu, void *sem_arg) 799 { 800 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f 801 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 802 const IDESC * UNUSED idesc = abuf->idesc; 803 int cycles = 0; 804 { 805 int referenced = 0; 806 int UNUSED insn_referenced = abuf->written; 807 cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced); 808 } 809 { 810 int referenced = 0; 811 int UNUSED insn_referenced = abuf->written; 812 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); 813 } 814 return cycles; 815 #undef FLD 816 } 817 818 static int 819 model_crisv10_movs_m_w_m (SIM_CPU *current_cpu, void *sem_arg) 820 { 821 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f 822 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 823 const IDESC * UNUSED idesc = abuf->idesc; 824 int cycles = 0; 825 { 826 int referenced = 0; 827 int UNUSED insn_referenced = abuf->written; 828 cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced); 829 } 830 { 831 int referenced = 0; 832 int UNUSED insn_referenced = abuf->written; 833 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); 834 } 835 return cycles; 836 #undef FLD 837 } 838 839 static int 840 model_crisv10_movu_m_b_m (SIM_CPU *current_cpu, void *sem_arg) 841 { 842 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f 843 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 844 const IDESC * UNUSED idesc = abuf->idesc; 845 int cycles = 0; 846 { 847 int referenced = 0; 848 int UNUSED insn_referenced = abuf->written; 849 cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced); 850 } 851 { 852 int referenced = 0; 853 int UNUSED insn_referenced = abuf->written; 854 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); 855 } 856 return cycles; 857 #undef FLD 858 } 859 860 static int 861 model_crisv10_movu_m_w_m (SIM_CPU *current_cpu, void *sem_arg) 862 { 863 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f 864 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 865 const IDESC * UNUSED idesc = abuf->idesc; 866 int cycles = 0; 867 { 868 int referenced = 0; 869 int UNUSED insn_referenced = abuf->written; 870 cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced); 871 } 872 { 873 int referenced = 0; 874 int UNUSED insn_referenced = abuf->written; 875 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); 876 } 877 return cycles; 878 #undef FLD 879 } 880 881 static int 882 model_crisv10_move_r_sprv10 (SIM_CPU *current_cpu, void *sem_arg) 883 { 884 #define FLD(f) abuf->fields.sfmt_move_m_sprv10.f 885 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 886 const IDESC * UNUSED idesc = abuf->idesc; 887 int cycles = 0; 888 { 889 int referenced = 0; 890 int UNUSED insn_referenced = abuf->written; 891 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); 892 } 893 return cycles; 894 #undef FLD 895 } 896 897 static int 898 model_crisv10_move_spr_rv10 (SIM_CPU *current_cpu, void *sem_arg) 899 { 900 #define FLD(f) abuf->fields.sfmt_move_spr_rv10.f 901 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 902 const IDESC * UNUSED idesc = abuf->idesc; 903 int cycles = 0; 904 { 905 int referenced = 0; 906 int UNUSED insn_referenced = abuf->written; 907 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); 908 } 909 return cycles; 910 #undef FLD 911 } 912 913 static int 914 model_crisv10_ret_type (SIM_CPU *current_cpu, void *sem_arg) 915 { 916 #define FLD(f) abuf->fields.sfmt_move_spr_rv10.f 917 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 918 const IDESC * UNUSED idesc = abuf->idesc; 919 int cycles = 0; 920 { 921 int referenced = 0; 922 int UNUSED insn_referenced = abuf->written; 923 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); 924 } 925 return cycles; 926 #undef FLD 927 } 928 929 static int 930 model_crisv10_move_m_sprv10 (SIM_CPU *current_cpu, void *sem_arg) 931 { 932 #define FLD(f) abuf->fields.sfmt_move_m_sprv10.f 933 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 934 const IDESC * UNUSED idesc = abuf->idesc; 935 int cycles = 0; 936 { 937 int referenced = 0; 938 int UNUSED insn_referenced = abuf->written; 939 cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced); 940 } 941 { 942 int referenced = 0; 943 int UNUSED insn_referenced = abuf->written; 944 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); 945 } 946 return cycles; 947 #undef FLD 948 } 949 950 static int 951 model_crisv10_move_c_sprv10_p5 (SIM_CPU *current_cpu, void *sem_arg) 952 { 953 #define FLD(f) abuf->fields.sfmt_move_c_sprv10_p5.f 954 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 955 const IDESC * UNUSED idesc = abuf->idesc; 956 int cycles = 0; 957 { 958 int referenced = 0; 959 int UNUSED insn_referenced = abuf->written; 960 cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced); 961 } 962 { 963 int referenced = 0; 964 int UNUSED insn_referenced = abuf->written; 965 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); 966 } 967 return cycles; 968 #undef FLD 969 } 970 971 static int 972 model_crisv10_move_c_sprv10_p9 (SIM_CPU *current_cpu, void *sem_arg) 973 { 974 #define FLD(f) abuf->fields.sfmt_move_c_sprv10_p9.f 975 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 976 const IDESC * UNUSED idesc = abuf->idesc; 977 int cycles = 0; 978 { 979 int referenced = 0; 980 int UNUSED insn_referenced = abuf->written; 981 cycles += crisv10f_model_crisv10_u_const32 (current_cpu, idesc, 0, referenced); 982 } 983 { 984 int referenced = 0; 985 int UNUSED insn_referenced = abuf->written; 986 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); 987 } 988 return cycles; 989 #undef FLD 990 } 991 992 static int 993 model_crisv10_move_c_sprv10_p10 (SIM_CPU *current_cpu, void *sem_arg) 994 { 995 #define FLD(f) abuf->fields.sfmt_move_c_sprv10_p9.f 996 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 997 const IDESC * UNUSED idesc = abuf->idesc; 998 int cycles = 0; 999 { 1000 int referenced = 0; 1001 int UNUSED insn_referenced = abuf->written; 1002 cycles += crisv10f_model_crisv10_u_const32 (current_cpu, idesc, 0, referenced); 1003 } 1004 { 1005 int referenced = 0; 1006 int UNUSED insn_referenced = abuf->written; 1007 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); 1008 } 1009 return cycles; 1010 #undef FLD 1011 } 1012 1013 static int 1014 model_crisv10_move_c_sprv10_p11 (SIM_CPU *current_cpu, void *sem_arg) 1015 { 1016 #define FLD(f) abuf->fields.sfmt_move_c_sprv10_p9.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 += crisv10f_model_crisv10_u_const32 (current_cpu, idesc, 0, referenced); 1024 } 1025 { 1026 int referenced = 0; 1027 int UNUSED insn_referenced = abuf->written; 1028 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); 1029 } 1030 return cycles; 1031 #undef FLD 1032 } 1033 1034 static int 1035 model_crisv10_move_c_sprv10_p12 (SIM_CPU *current_cpu, void *sem_arg) 1036 { 1037 #define FLD(f) abuf->fields.sfmt_move_c_sprv10_p9.f 1038 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1039 const IDESC * UNUSED idesc = abuf->idesc; 1040 int cycles = 0; 1041 { 1042 int referenced = 0; 1043 int UNUSED insn_referenced = abuf->written; 1044 cycles += crisv10f_model_crisv10_u_const32 (current_cpu, idesc, 0, referenced); 1045 } 1046 { 1047 int referenced = 0; 1048 int UNUSED insn_referenced = abuf->written; 1049 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); 1050 } 1051 return cycles; 1052 #undef FLD 1053 } 1054 1055 static int 1056 model_crisv10_move_c_sprv10_p13 (SIM_CPU *current_cpu, void *sem_arg) 1057 { 1058 #define FLD(f) abuf->fields.sfmt_move_c_sprv10_p9.f 1059 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1060 const IDESC * UNUSED idesc = abuf->idesc; 1061 int cycles = 0; 1062 { 1063 int referenced = 0; 1064 int UNUSED insn_referenced = abuf->written; 1065 cycles += crisv10f_model_crisv10_u_const32 (current_cpu, idesc, 0, referenced); 1066 } 1067 { 1068 int referenced = 0; 1069 int UNUSED insn_referenced = abuf->written; 1070 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); 1071 } 1072 return cycles; 1073 #undef FLD 1074 } 1075 1076 static int 1077 model_crisv10_move_c_sprv10_p7 (SIM_CPU *current_cpu, void *sem_arg) 1078 { 1079 #define FLD(f) abuf->fields.sfmt_move_c_sprv10_p9.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 += crisv10f_model_crisv10_u_const32 (current_cpu, idesc, 0, referenced); 1087 } 1088 { 1089 int referenced = 0; 1090 int UNUSED insn_referenced = abuf->written; 1091 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); 1092 } 1093 return cycles; 1094 #undef FLD 1095 } 1096 1097 static int 1098 model_crisv10_move_c_sprv10_p14 (SIM_CPU *current_cpu, void *sem_arg) 1099 { 1100 #define FLD(f) abuf->fields.sfmt_move_c_sprv10_p9.f 1101 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1102 const IDESC * UNUSED idesc = abuf->idesc; 1103 int cycles = 0; 1104 { 1105 int referenced = 0; 1106 int UNUSED insn_referenced = abuf->written; 1107 cycles += crisv10f_model_crisv10_u_const32 (current_cpu, idesc, 0, referenced); 1108 } 1109 { 1110 int referenced = 0; 1111 int UNUSED insn_referenced = abuf->written; 1112 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); 1113 } 1114 return cycles; 1115 #undef FLD 1116 } 1117 1118 static int 1119 model_crisv10_move_c_sprv10_p15 (SIM_CPU *current_cpu, void *sem_arg) 1120 { 1121 #define FLD(f) abuf->fields.sfmt_move_c_sprv10_p9.f 1122 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1123 const IDESC * UNUSED idesc = abuf->idesc; 1124 int cycles = 0; 1125 { 1126 int referenced = 0; 1127 int UNUSED insn_referenced = abuf->written; 1128 cycles += crisv10f_model_crisv10_u_const32 (current_cpu, idesc, 0, referenced); 1129 } 1130 { 1131 int referenced = 0; 1132 int UNUSED insn_referenced = abuf->written; 1133 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); 1134 } 1135 return cycles; 1136 #undef FLD 1137 } 1138 1139 static int 1140 model_crisv10_move_spr_mv10 (SIM_CPU *current_cpu, void *sem_arg) 1141 { 1142 #define FLD(f) abuf->fields.sfmt_move_spr_mv10.f 1143 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1144 const IDESC * UNUSED idesc = abuf->idesc; 1145 int cycles = 0; 1146 { 1147 int referenced = 0; 1148 int UNUSED insn_referenced = abuf->written; 1149 cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced); 1150 } 1151 { 1152 int referenced = 0; 1153 int UNUSED insn_referenced = abuf->written; 1154 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); 1155 } 1156 return cycles; 1157 #undef FLD 1158 } 1159 1160 static int 1161 model_crisv10_sbfs (SIM_CPU *current_cpu, void *sem_arg) 1162 { 1163 #define FLD(f) abuf->fields.sfmt_empty.f 1164 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1165 const IDESC * UNUSED idesc = abuf->idesc; 1166 int cycles = 0; 1167 { 1168 int referenced = 0; 1169 int UNUSED insn_referenced = abuf->written; 1170 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); 1171 } 1172 return cycles; 1173 #undef FLD 1174 } 1175 1176 static int 1177 model_crisv10_movem_r_m (SIM_CPU *current_cpu, void *sem_arg) 1178 { 1179 #define FLD(f) abuf->fields.sfmt_movem_r_m.f 1180 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1181 const IDESC * UNUSED idesc = abuf->idesc; 1182 int cycles = 0; 1183 { 1184 int referenced = 0; 1185 int UNUSED insn_referenced = abuf->written; 1186 INT in_Rd = -1; 1187 in_Rd = FLD (in_Rd); 1188 referenced |= 1 << 0; 1189 cycles += crisv10f_model_crisv10_u_movem (current_cpu, idesc, 0, referenced, in_Rd); 1190 } 1191 { 1192 int referenced = 0; 1193 int UNUSED insn_referenced = abuf->written; 1194 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); 1195 } 1196 return cycles; 1197 #undef FLD 1198 } 1199 1200 static int 1201 model_crisv10_movem_m_r (SIM_CPU *current_cpu, void *sem_arg) 1202 { 1203 #define FLD(f) abuf->fields.sfmt_movem_m_r.f 1204 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1205 const IDESC * UNUSED idesc = abuf->idesc; 1206 int cycles = 0; 1207 { 1208 int referenced = 0; 1209 int UNUSED insn_referenced = abuf->written; 1210 INT in_Rd = -1; 1211 in_Rd = FLD (in_Rd); 1212 referenced |= 1 << 0; 1213 cycles += crisv10f_model_crisv10_u_movem (current_cpu, idesc, 0, referenced, in_Rd); 1214 } 1215 { 1216 int referenced = 0; 1217 int UNUSED insn_referenced = abuf->written; 1218 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); 1219 } 1220 return cycles; 1221 #undef FLD 1222 } 1223 1224 static int 1225 model_crisv10_movem_m_pc (SIM_CPU *current_cpu, void *sem_arg) 1226 { 1227 #define FLD(f) abuf->fields.sfmt_movem_m_r.f 1228 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1229 const IDESC * UNUSED idesc = abuf->idesc; 1230 int cycles = 0; 1231 { 1232 int referenced = 0; 1233 int UNUSED insn_referenced = abuf->written; 1234 cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced); 1235 } 1236 { 1237 int referenced = 0; 1238 int UNUSED insn_referenced = abuf->written; 1239 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); 1240 } 1241 return cycles; 1242 #undef FLD 1243 } 1244 1245 static int 1246 model_crisv10_add_b_r (SIM_CPU *current_cpu, void *sem_arg) 1247 { 1248 #define FLD(f) abuf->fields.sfmt_add_b_r.f 1249 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1250 const IDESC * UNUSED idesc = abuf->idesc; 1251 int cycles = 0; 1252 { 1253 int referenced = 0; 1254 int UNUSED insn_referenced = abuf->written; 1255 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); 1256 } 1257 return cycles; 1258 #undef FLD 1259 } 1260 1261 static int 1262 model_crisv10_add_w_r (SIM_CPU *current_cpu, void *sem_arg) 1263 { 1264 #define FLD(f) abuf->fields.sfmt_add_b_r.f 1265 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1266 const IDESC * UNUSED idesc = abuf->idesc; 1267 int cycles = 0; 1268 { 1269 int referenced = 0; 1270 int UNUSED insn_referenced = abuf->written; 1271 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); 1272 } 1273 return cycles; 1274 #undef FLD 1275 } 1276 1277 static int 1278 model_crisv10_add_d_r (SIM_CPU *current_cpu, void *sem_arg) 1279 { 1280 #define FLD(f) abuf->fields.sfmt_add_b_r.f 1281 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1282 const IDESC * UNUSED idesc = abuf->idesc; 1283 int cycles = 0; 1284 { 1285 int referenced = 0; 1286 int UNUSED insn_referenced = abuf->written; 1287 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); 1288 } 1289 return cycles; 1290 #undef FLD 1291 } 1292 1293 static int 1294 model_crisv10_add_m_b_m (SIM_CPU *current_cpu, void *sem_arg) 1295 { 1296 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f 1297 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1298 const IDESC * UNUSED idesc = abuf->idesc; 1299 int cycles = 0; 1300 { 1301 int referenced = 0; 1302 int UNUSED insn_referenced = abuf->written; 1303 cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced); 1304 } 1305 { 1306 int referenced = 0; 1307 int UNUSED insn_referenced = abuf->written; 1308 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); 1309 } 1310 return cycles; 1311 #undef FLD 1312 } 1313 1314 static int 1315 model_crisv10_add_m_w_m (SIM_CPU *current_cpu, void *sem_arg) 1316 { 1317 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f 1318 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1319 const IDESC * UNUSED idesc = abuf->idesc; 1320 int cycles = 0; 1321 { 1322 int referenced = 0; 1323 int UNUSED insn_referenced = abuf->written; 1324 cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced); 1325 } 1326 { 1327 int referenced = 0; 1328 int UNUSED insn_referenced = abuf->written; 1329 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); 1330 } 1331 return cycles; 1332 #undef FLD 1333 } 1334 1335 static int 1336 model_crisv10_add_m_d_m (SIM_CPU *current_cpu, void *sem_arg) 1337 { 1338 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f 1339 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1340 const IDESC * UNUSED idesc = abuf->idesc; 1341 int cycles = 0; 1342 { 1343 int referenced = 0; 1344 int UNUSED insn_referenced = abuf->written; 1345 cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced); 1346 } 1347 { 1348 int referenced = 0; 1349 int UNUSED insn_referenced = abuf->written; 1350 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); 1351 } 1352 return cycles; 1353 #undef FLD 1354 } 1355 1356 static int 1357 model_crisv10_addcbr (SIM_CPU *current_cpu, void *sem_arg) 1358 { 1359 #define FLD(f) abuf->fields.sfmt_addcbr.f 1360 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1361 const IDESC * UNUSED idesc = abuf->idesc; 1362 int cycles = 0; 1363 { 1364 int referenced = 0; 1365 int UNUSED insn_referenced = abuf->written; 1366 cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced); 1367 } 1368 { 1369 int referenced = 0; 1370 int UNUSED insn_referenced = abuf->written; 1371 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); 1372 } 1373 return cycles; 1374 #undef FLD 1375 } 1376 1377 static int 1378 model_crisv10_addcwr (SIM_CPU *current_cpu, void *sem_arg) 1379 { 1380 #define FLD(f) abuf->fields.sfmt_addcwr.f 1381 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1382 const IDESC * UNUSED idesc = abuf->idesc; 1383 int cycles = 0; 1384 { 1385 int referenced = 0; 1386 int UNUSED insn_referenced = abuf->written; 1387 cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced); 1388 } 1389 { 1390 int referenced = 0; 1391 int UNUSED insn_referenced = abuf->written; 1392 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); 1393 } 1394 return cycles; 1395 #undef FLD 1396 } 1397 1398 static int 1399 model_crisv10_addcdr (SIM_CPU *current_cpu, void *sem_arg) 1400 { 1401 #define FLD(f) abuf->fields.sfmt_addcdr.f 1402 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1403 const IDESC * UNUSED idesc = abuf->idesc; 1404 int cycles = 0; 1405 { 1406 int referenced = 0; 1407 int UNUSED insn_referenced = abuf->written; 1408 cycles += crisv10f_model_crisv10_u_const32 (current_cpu, idesc, 0, referenced); 1409 } 1410 { 1411 int referenced = 0; 1412 int UNUSED insn_referenced = abuf->written; 1413 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); 1414 } 1415 return cycles; 1416 #undef FLD 1417 } 1418 1419 static int 1420 model_crisv10_addcpc (SIM_CPU *current_cpu, void *sem_arg) 1421 { 1422 #define FLD(f) abuf->fields.sfmt_move_c_sprv10_p9.f 1423 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1424 const IDESC * UNUSED idesc = abuf->idesc; 1425 int cycles = 0; 1426 { 1427 int referenced = 0; 1428 int UNUSED insn_referenced = abuf->written; 1429 cycles += crisv10f_model_crisv10_u_const32 (current_cpu, idesc, 0, referenced); 1430 } 1431 { 1432 int referenced = 0; 1433 int UNUSED insn_referenced = abuf->written; 1434 cycles += crisv10f_model_crisv10_u_stall (current_cpu, idesc, 1, referenced); 1435 } 1436 { 1437 int referenced = 0; 1438 int UNUSED insn_referenced = abuf->written; 1439 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 2, referenced); 1440 } 1441 return cycles; 1442 #undef FLD 1443 } 1444 1445 static int 1446 model_crisv10_adds_b_r (SIM_CPU *current_cpu, void *sem_arg) 1447 { 1448 #define FLD(f) abuf->fields.sfmt_add_b_r.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 += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); 1456 } 1457 return cycles; 1458 #undef FLD 1459 } 1460 1461 static int 1462 model_crisv10_adds_w_r (SIM_CPU *current_cpu, void *sem_arg) 1463 { 1464 #define FLD(f) abuf->fields.sfmt_add_b_r.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 += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); 1472 } 1473 return cycles; 1474 #undef FLD 1475 } 1476 1477 static int 1478 model_crisv10_adds_m_b_m (SIM_CPU *current_cpu, void *sem_arg) 1479 { 1480 #define FLD(f) abuf->fields.sfmt_add_m_b_m.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 += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced); 1488 } 1489 { 1490 int referenced = 0; 1491 int UNUSED insn_referenced = abuf->written; 1492 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); 1493 } 1494 return cycles; 1495 #undef FLD 1496 } 1497 1498 static int 1499 model_crisv10_adds_m_w_m (SIM_CPU *current_cpu, void *sem_arg) 1500 { 1501 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f 1502 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1503 const IDESC * UNUSED idesc = abuf->idesc; 1504 int cycles = 0; 1505 { 1506 int referenced = 0; 1507 int UNUSED insn_referenced = abuf->written; 1508 cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced); 1509 } 1510 { 1511 int referenced = 0; 1512 int UNUSED insn_referenced = abuf->written; 1513 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); 1514 } 1515 return cycles; 1516 #undef FLD 1517 } 1518 1519 static int 1520 model_crisv10_addscbr (SIM_CPU *current_cpu, void *sem_arg) 1521 { 1522 #define FLD(f) abuf->fields.sfmt_addcbr.f 1523 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1524 const IDESC * UNUSED idesc = abuf->idesc; 1525 int cycles = 0; 1526 { 1527 int referenced = 0; 1528 int UNUSED insn_referenced = abuf->written; 1529 cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced); 1530 } 1531 { 1532 int referenced = 0; 1533 int UNUSED insn_referenced = abuf->written; 1534 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); 1535 } 1536 return cycles; 1537 #undef FLD 1538 } 1539 1540 static int 1541 model_crisv10_addscwr (SIM_CPU *current_cpu, void *sem_arg) 1542 { 1543 #define FLD(f) abuf->fields.sfmt_addcwr.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 += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced); 1551 } 1552 { 1553 int referenced = 0; 1554 int UNUSED insn_referenced = abuf->written; 1555 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); 1556 } 1557 return cycles; 1558 #undef FLD 1559 } 1560 1561 static int 1562 model_crisv10_addspcpc (SIM_CPU *current_cpu, void *sem_arg) 1563 { 1564 #define FLD(f) abuf->fields.sfmt_empty.f 1565 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1566 const IDESC * UNUSED idesc = abuf->idesc; 1567 int cycles = 0; 1568 { 1569 int referenced = 0; 1570 int UNUSED insn_referenced = abuf->written; 1571 cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced); 1572 } 1573 { 1574 int referenced = 0; 1575 int UNUSED insn_referenced = abuf->written; 1576 cycles += crisv10f_model_crisv10_u_stall (current_cpu, idesc, 1, referenced); 1577 } 1578 { 1579 int referenced = 0; 1580 int UNUSED insn_referenced = abuf->written; 1581 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 2, referenced); 1582 } 1583 return cycles; 1584 #undef FLD 1585 } 1586 1587 static int 1588 model_crisv10_addu_b_r (SIM_CPU *current_cpu, void *sem_arg) 1589 { 1590 #define FLD(f) abuf->fields.sfmt_add_b_r.f 1591 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1592 const IDESC * UNUSED idesc = abuf->idesc; 1593 int cycles = 0; 1594 { 1595 int referenced = 0; 1596 int UNUSED insn_referenced = abuf->written; 1597 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); 1598 } 1599 return cycles; 1600 #undef FLD 1601 } 1602 1603 static int 1604 model_crisv10_addu_w_r (SIM_CPU *current_cpu, void *sem_arg) 1605 { 1606 #define FLD(f) abuf->fields.sfmt_add_b_r.f 1607 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1608 const IDESC * UNUSED idesc = abuf->idesc; 1609 int cycles = 0; 1610 { 1611 int referenced = 0; 1612 int UNUSED insn_referenced = abuf->written; 1613 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); 1614 } 1615 return cycles; 1616 #undef FLD 1617 } 1618 1619 static int 1620 model_crisv10_addu_m_b_m (SIM_CPU *current_cpu, void *sem_arg) 1621 { 1622 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f 1623 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1624 const IDESC * UNUSED idesc = abuf->idesc; 1625 int cycles = 0; 1626 { 1627 int referenced = 0; 1628 int UNUSED insn_referenced = abuf->written; 1629 cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced); 1630 } 1631 { 1632 int referenced = 0; 1633 int UNUSED insn_referenced = abuf->written; 1634 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); 1635 } 1636 return cycles; 1637 #undef FLD 1638 } 1639 1640 static int 1641 model_crisv10_addu_m_w_m (SIM_CPU *current_cpu, void *sem_arg) 1642 { 1643 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f 1644 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1645 const IDESC * UNUSED idesc = abuf->idesc; 1646 int cycles = 0; 1647 { 1648 int referenced = 0; 1649 int UNUSED insn_referenced = abuf->written; 1650 cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced); 1651 } 1652 { 1653 int referenced = 0; 1654 int UNUSED insn_referenced = abuf->written; 1655 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); 1656 } 1657 return cycles; 1658 #undef FLD 1659 } 1660 1661 static int 1662 model_crisv10_adducbr (SIM_CPU *current_cpu, void *sem_arg) 1663 { 1664 #define FLD(f) abuf->fields.sfmt_addcbr.f 1665 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1666 const IDESC * UNUSED idesc = abuf->idesc; 1667 int cycles = 0; 1668 { 1669 int referenced = 0; 1670 int UNUSED insn_referenced = abuf->written; 1671 cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced); 1672 } 1673 { 1674 int referenced = 0; 1675 int UNUSED insn_referenced = abuf->written; 1676 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); 1677 } 1678 return cycles; 1679 #undef FLD 1680 } 1681 1682 static int 1683 model_crisv10_adducwr (SIM_CPU *current_cpu, void *sem_arg) 1684 { 1685 #define FLD(f) abuf->fields.sfmt_addcwr.f 1686 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1687 const IDESC * UNUSED idesc = abuf->idesc; 1688 int cycles = 0; 1689 { 1690 int referenced = 0; 1691 int UNUSED insn_referenced = abuf->written; 1692 cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced); 1693 } 1694 { 1695 int referenced = 0; 1696 int UNUSED insn_referenced = abuf->written; 1697 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); 1698 } 1699 return cycles; 1700 #undef FLD 1701 } 1702 1703 static int 1704 model_crisv10_sub_b_r (SIM_CPU *current_cpu, void *sem_arg) 1705 { 1706 #define FLD(f) abuf->fields.sfmt_add_b_r.f 1707 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1708 const IDESC * UNUSED idesc = abuf->idesc; 1709 int cycles = 0; 1710 { 1711 int referenced = 0; 1712 int UNUSED insn_referenced = abuf->written; 1713 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); 1714 } 1715 return cycles; 1716 #undef FLD 1717 } 1718 1719 static int 1720 model_crisv10_sub_w_r (SIM_CPU *current_cpu, void *sem_arg) 1721 { 1722 #define FLD(f) abuf->fields.sfmt_add_b_r.f 1723 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1724 const IDESC * UNUSED idesc = abuf->idesc; 1725 int cycles = 0; 1726 { 1727 int referenced = 0; 1728 int UNUSED insn_referenced = abuf->written; 1729 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); 1730 } 1731 return cycles; 1732 #undef FLD 1733 } 1734 1735 static int 1736 model_crisv10_sub_d_r (SIM_CPU *current_cpu, void *sem_arg) 1737 { 1738 #define FLD(f) abuf->fields.sfmt_add_b_r.f 1739 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1740 const IDESC * UNUSED idesc = abuf->idesc; 1741 int cycles = 0; 1742 { 1743 int referenced = 0; 1744 int UNUSED insn_referenced = abuf->written; 1745 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); 1746 } 1747 return cycles; 1748 #undef FLD 1749 } 1750 1751 static int 1752 model_crisv10_sub_m_b_m (SIM_CPU *current_cpu, void *sem_arg) 1753 { 1754 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f 1755 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1756 const IDESC * UNUSED idesc = abuf->idesc; 1757 int cycles = 0; 1758 { 1759 int referenced = 0; 1760 int UNUSED insn_referenced = abuf->written; 1761 cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced); 1762 } 1763 { 1764 int referenced = 0; 1765 int UNUSED insn_referenced = abuf->written; 1766 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); 1767 } 1768 return cycles; 1769 #undef FLD 1770 } 1771 1772 static int 1773 model_crisv10_sub_m_w_m (SIM_CPU *current_cpu, void *sem_arg) 1774 { 1775 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f 1776 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1777 const IDESC * UNUSED idesc = abuf->idesc; 1778 int cycles = 0; 1779 { 1780 int referenced = 0; 1781 int UNUSED insn_referenced = abuf->written; 1782 cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced); 1783 } 1784 { 1785 int referenced = 0; 1786 int UNUSED insn_referenced = abuf->written; 1787 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); 1788 } 1789 return cycles; 1790 #undef FLD 1791 } 1792 1793 static int 1794 model_crisv10_sub_m_d_m (SIM_CPU *current_cpu, void *sem_arg) 1795 { 1796 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f 1797 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1798 const IDESC * UNUSED idesc = abuf->idesc; 1799 int cycles = 0; 1800 { 1801 int referenced = 0; 1802 int UNUSED insn_referenced = abuf->written; 1803 cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced); 1804 } 1805 { 1806 int referenced = 0; 1807 int UNUSED insn_referenced = abuf->written; 1808 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); 1809 } 1810 return cycles; 1811 #undef FLD 1812 } 1813 1814 static int 1815 model_crisv10_subcbr (SIM_CPU *current_cpu, void *sem_arg) 1816 { 1817 #define FLD(f) abuf->fields.sfmt_addcbr.f 1818 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1819 const IDESC * UNUSED idesc = abuf->idesc; 1820 int cycles = 0; 1821 { 1822 int referenced = 0; 1823 int UNUSED insn_referenced = abuf->written; 1824 cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced); 1825 } 1826 { 1827 int referenced = 0; 1828 int UNUSED insn_referenced = abuf->written; 1829 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); 1830 } 1831 return cycles; 1832 #undef FLD 1833 } 1834 1835 static int 1836 model_crisv10_subcwr (SIM_CPU *current_cpu, void *sem_arg) 1837 { 1838 #define FLD(f) abuf->fields.sfmt_addcwr.f 1839 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1840 const IDESC * UNUSED idesc = abuf->idesc; 1841 int cycles = 0; 1842 { 1843 int referenced = 0; 1844 int UNUSED insn_referenced = abuf->written; 1845 cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced); 1846 } 1847 { 1848 int referenced = 0; 1849 int UNUSED insn_referenced = abuf->written; 1850 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); 1851 } 1852 return cycles; 1853 #undef FLD 1854 } 1855 1856 static int 1857 model_crisv10_subcdr (SIM_CPU *current_cpu, void *sem_arg) 1858 { 1859 #define FLD(f) abuf->fields.sfmt_addcdr.f 1860 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1861 const IDESC * UNUSED idesc = abuf->idesc; 1862 int cycles = 0; 1863 { 1864 int referenced = 0; 1865 int UNUSED insn_referenced = abuf->written; 1866 cycles += crisv10f_model_crisv10_u_const32 (current_cpu, idesc, 0, referenced); 1867 } 1868 { 1869 int referenced = 0; 1870 int UNUSED insn_referenced = abuf->written; 1871 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); 1872 } 1873 return cycles; 1874 #undef FLD 1875 } 1876 1877 static int 1878 model_crisv10_subs_b_r (SIM_CPU *current_cpu, void *sem_arg) 1879 { 1880 #define FLD(f) abuf->fields.sfmt_add_b_r.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 += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); 1888 } 1889 return cycles; 1890 #undef FLD 1891 } 1892 1893 static int 1894 model_crisv10_subs_w_r (SIM_CPU *current_cpu, void *sem_arg) 1895 { 1896 #define FLD(f) abuf->fields.sfmt_add_b_r.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 += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); 1904 } 1905 return cycles; 1906 #undef FLD 1907 } 1908 1909 static int 1910 model_crisv10_subs_m_b_m (SIM_CPU *current_cpu, void *sem_arg) 1911 { 1912 #define FLD(f) abuf->fields.sfmt_add_m_b_m.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 += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced); 1920 } 1921 { 1922 int referenced = 0; 1923 int UNUSED insn_referenced = abuf->written; 1924 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); 1925 } 1926 return cycles; 1927 #undef FLD 1928 } 1929 1930 static int 1931 model_crisv10_subs_m_w_m (SIM_CPU *current_cpu, void *sem_arg) 1932 { 1933 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f 1934 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1935 const IDESC * UNUSED idesc = abuf->idesc; 1936 int cycles = 0; 1937 { 1938 int referenced = 0; 1939 int UNUSED insn_referenced = abuf->written; 1940 cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced); 1941 } 1942 { 1943 int referenced = 0; 1944 int UNUSED insn_referenced = abuf->written; 1945 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); 1946 } 1947 return cycles; 1948 #undef FLD 1949 } 1950 1951 static int 1952 model_crisv10_subscbr (SIM_CPU *current_cpu, void *sem_arg) 1953 { 1954 #define FLD(f) abuf->fields.sfmt_addcbr.f 1955 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1956 const IDESC * UNUSED idesc = abuf->idesc; 1957 int cycles = 0; 1958 { 1959 int referenced = 0; 1960 int UNUSED insn_referenced = abuf->written; 1961 cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced); 1962 } 1963 { 1964 int referenced = 0; 1965 int UNUSED insn_referenced = abuf->written; 1966 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); 1967 } 1968 return cycles; 1969 #undef FLD 1970 } 1971 1972 static int 1973 model_crisv10_subscwr (SIM_CPU *current_cpu, void *sem_arg) 1974 { 1975 #define FLD(f) abuf->fields.sfmt_addcwr.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 += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced); 1983 } 1984 { 1985 int referenced = 0; 1986 int UNUSED insn_referenced = abuf->written; 1987 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); 1988 } 1989 return cycles; 1990 #undef FLD 1991 } 1992 1993 static int 1994 model_crisv10_subu_b_r (SIM_CPU *current_cpu, void *sem_arg) 1995 { 1996 #define FLD(f) abuf->fields.sfmt_add_b_r.f 1997 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 1998 const IDESC * UNUSED idesc = abuf->idesc; 1999 int cycles = 0; 2000 { 2001 int referenced = 0; 2002 int UNUSED insn_referenced = abuf->written; 2003 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); 2004 } 2005 return cycles; 2006 #undef FLD 2007 } 2008 2009 static int 2010 model_crisv10_subu_w_r (SIM_CPU *current_cpu, void *sem_arg) 2011 { 2012 #define FLD(f) abuf->fields.sfmt_add_b_r.f 2013 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2014 const IDESC * UNUSED idesc = abuf->idesc; 2015 int cycles = 0; 2016 { 2017 int referenced = 0; 2018 int UNUSED insn_referenced = abuf->written; 2019 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); 2020 } 2021 return cycles; 2022 #undef FLD 2023 } 2024 2025 static int 2026 model_crisv10_subu_m_b_m (SIM_CPU *current_cpu, void *sem_arg) 2027 { 2028 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f 2029 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2030 const IDESC * UNUSED idesc = abuf->idesc; 2031 int cycles = 0; 2032 { 2033 int referenced = 0; 2034 int UNUSED insn_referenced = abuf->written; 2035 cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced); 2036 } 2037 { 2038 int referenced = 0; 2039 int UNUSED insn_referenced = abuf->written; 2040 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); 2041 } 2042 return cycles; 2043 #undef FLD 2044 } 2045 2046 static int 2047 model_crisv10_subu_m_w_m (SIM_CPU *current_cpu, void *sem_arg) 2048 { 2049 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f 2050 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2051 const IDESC * UNUSED idesc = abuf->idesc; 2052 int cycles = 0; 2053 { 2054 int referenced = 0; 2055 int UNUSED insn_referenced = abuf->written; 2056 cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced); 2057 } 2058 { 2059 int referenced = 0; 2060 int UNUSED insn_referenced = abuf->written; 2061 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); 2062 } 2063 return cycles; 2064 #undef FLD 2065 } 2066 2067 static int 2068 model_crisv10_subucbr (SIM_CPU *current_cpu, void *sem_arg) 2069 { 2070 #define FLD(f) abuf->fields.sfmt_addcbr.f 2071 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2072 const IDESC * UNUSED idesc = abuf->idesc; 2073 int cycles = 0; 2074 { 2075 int referenced = 0; 2076 int UNUSED insn_referenced = abuf->written; 2077 cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced); 2078 } 2079 { 2080 int referenced = 0; 2081 int UNUSED insn_referenced = abuf->written; 2082 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); 2083 } 2084 return cycles; 2085 #undef FLD 2086 } 2087 2088 static int 2089 model_crisv10_subucwr (SIM_CPU *current_cpu, void *sem_arg) 2090 { 2091 #define FLD(f) abuf->fields.sfmt_addcwr.f 2092 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2093 const IDESC * UNUSED idesc = abuf->idesc; 2094 int cycles = 0; 2095 { 2096 int referenced = 0; 2097 int UNUSED insn_referenced = abuf->written; 2098 cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced); 2099 } 2100 { 2101 int referenced = 0; 2102 int UNUSED insn_referenced = abuf->written; 2103 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); 2104 } 2105 return cycles; 2106 #undef FLD 2107 } 2108 2109 static int 2110 model_crisv10_addi_b_r (SIM_CPU *current_cpu, void *sem_arg) 2111 { 2112 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f 2113 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2114 const IDESC * UNUSED idesc = abuf->idesc; 2115 int cycles = 0; 2116 { 2117 int referenced = 0; 2118 int UNUSED insn_referenced = abuf->written; 2119 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); 2120 } 2121 return cycles; 2122 #undef FLD 2123 } 2124 2125 static int 2126 model_crisv10_addi_w_r (SIM_CPU *current_cpu, void *sem_arg) 2127 { 2128 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f 2129 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2130 const IDESC * UNUSED idesc = abuf->idesc; 2131 int cycles = 0; 2132 { 2133 int referenced = 0; 2134 int UNUSED insn_referenced = abuf->written; 2135 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); 2136 } 2137 return cycles; 2138 #undef FLD 2139 } 2140 2141 static int 2142 model_crisv10_addi_d_r (SIM_CPU *current_cpu, void *sem_arg) 2143 { 2144 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f 2145 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2146 const IDESC * UNUSED idesc = abuf->idesc; 2147 int cycles = 0; 2148 { 2149 int referenced = 0; 2150 int UNUSED insn_referenced = abuf->written; 2151 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); 2152 } 2153 return cycles; 2154 #undef FLD 2155 } 2156 2157 static int 2158 model_crisv10_neg_b_r (SIM_CPU *current_cpu, void *sem_arg) 2159 { 2160 #define FLD(f) abuf->fields.sfmt_add_b_r.f 2161 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2162 const IDESC * UNUSED idesc = abuf->idesc; 2163 int cycles = 0; 2164 { 2165 int referenced = 0; 2166 int UNUSED insn_referenced = abuf->written; 2167 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); 2168 } 2169 return cycles; 2170 #undef FLD 2171 } 2172 2173 static int 2174 model_crisv10_neg_w_r (SIM_CPU *current_cpu, void *sem_arg) 2175 { 2176 #define FLD(f) abuf->fields.sfmt_add_b_r.f 2177 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2178 const IDESC * UNUSED idesc = abuf->idesc; 2179 int cycles = 0; 2180 { 2181 int referenced = 0; 2182 int UNUSED insn_referenced = abuf->written; 2183 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); 2184 } 2185 return cycles; 2186 #undef FLD 2187 } 2188 2189 static int 2190 model_crisv10_neg_d_r (SIM_CPU *current_cpu, void *sem_arg) 2191 { 2192 #define FLD(f) abuf->fields.sfmt_add_b_r.f 2193 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2194 const IDESC * UNUSED idesc = abuf->idesc; 2195 int cycles = 0; 2196 { 2197 int referenced = 0; 2198 int UNUSED insn_referenced = abuf->written; 2199 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); 2200 } 2201 return cycles; 2202 #undef FLD 2203 } 2204 2205 static int 2206 model_crisv10_test_m_b_m (SIM_CPU *current_cpu, void *sem_arg) 2207 { 2208 #define FLD(f) abuf->fields.sfmt_move_spr_mv10.f 2209 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2210 const IDESC * UNUSED idesc = abuf->idesc; 2211 int cycles = 0; 2212 { 2213 int referenced = 0; 2214 int UNUSED insn_referenced = abuf->written; 2215 cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced); 2216 } 2217 { 2218 int referenced = 0; 2219 int UNUSED insn_referenced = abuf->written; 2220 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); 2221 } 2222 return cycles; 2223 #undef FLD 2224 } 2225 2226 static int 2227 model_crisv10_test_m_w_m (SIM_CPU *current_cpu, void *sem_arg) 2228 { 2229 #define FLD(f) abuf->fields.sfmt_move_spr_mv10.f 2230 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2231 const IDESC * UNUSED idesc = abuf->idesc; 2232 int cycles = 0; 2233 { 2234 int referenced = 0; 2235 int UNUSED insn_referenced = abuf->written; 2236 cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced); 2237 } 2238 { 2239 int referenced = 0; 2240 int UNUSED insn_referenced = abuf->written; 2241 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); 2242 } 2243 return cycles; 2244 #undef FLD 2245 } 2246 2247 static int 2248 model_crisv10_test_m_d_m (SIM_CPU *current_cpu, void *sem_arg) 2249 { 2250 #define FLD(f) abuf->fields.sfmt_move_spr_mv10.f 2251 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2252 const IDESC * UNUSED idesc = abuf->idesc; 2253 int cycles = 0; 2254 { 2255 int referenced = 0; 2256 int UNUSED insn_referenced = abuf->written; 2257 cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced); 2258 } 2259 { 2260 int referenced = 0; 2261 int UNUSED insn_referenced = abuf->written; 2262 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); 2263 } 2264 return cycles; 2265 #undef FLD 2266 } 2267 2268 static int 2269 model_crisv10_move_r_m_b_m (SIM_CPU *current_cpu, void *sem_arg) 2270 { 2271 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f 2272 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2273 const IDESC * UNUSED idesc = abuf->idesc; 2274 int cycles = 0; 2275 { 2276 int referenced = 0; 2277 int UNUSED insn_referenced = abuf->written; 2278 cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced); 2279 } 2280 { 2281 int referenced = 0; 2282 int UNUSED insn_referenced = abuf->written; 2283 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); 2284 } 2285 return cycles; 2286 #undef FLD 2287 } 2288 2289 static int 2290 model_crisv10_move_r_m_w_m (SIM_CPU *current_cpu, void *sem_arg) 2291 { 2292 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f 2293 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2294 const IDESC * UNUSED idesc = abuf->idesc; 2295 int cycles = 0; 2296 { 2297 int referenced = 0; 2298 int UNUSED insn_referenced = abuf->written; 2299 cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced); 2300 } 2301 { 2302 int referenced = 0; 2303 int UNUSED insn_referenced = abuf->written; 2304 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); 2305 } 2306 return cycles; 2307 #undef FLD 2308 } 2309 2310 static int 2311 model_crisv10_move_r_m_d_m (SIM_CPU *current_cpu, void *sem_arg) 2312 { 2313 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f 2314 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2315 const IDESC * UNUSED idesc = abuf->idesc; 2316 int cycles = 0; 2317 { 2318 int referenced = 0; 2319 int UNUSED insn_referenced = abuf->written; 2320 cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced); 2321 } 2322 { 2323 int referenced = 0; 2324 int UNUSED insn_referenced = abuf->written; 2325 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); 2326 } 2327 return cycles; 2328 #undef FLD 2329 } 2330 2331 static int 2332 model_crisv10_muls_b (SIM_CPU *current_cpu, void *sem_arg) 2333 { 2334 #define FLD(f) abuf->fields.sfmt_muls_b.f 2335 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2336 const IDESC * UNUSED idesc = abuf->idesc; 2337 int cycles = 0; 2338 { 2339 int referenced = 0; 2340 int UNUSED insn_referenced = abuf->written; 2341 cycles += crisv10f_model_crisv10_u_multiply (current_cpu, idesc, 0, referenced); 2342 } 2343 { 2344 int referenced = 0; 2345 int UNUSED insn_referenced = abuf->written; 2346 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); 2347 } 2348 return cycles; 2349 #undef FLD 2350 } 2351 2352 static int 2353 model_crisv10_muls_w (SIM_CPU *current_cpu, void *sem_arg) 2354 { 2355 #define FLD(f) abuf->fields.sfmt_muls_b.f 2356 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2357 const IDESC * UNUSED idesc = abuf->idesc; 2358 int cycles = 0; 2359 { 2360 int referenced = 0; 2361 int UNUSED insn_referenced = abuf->written; 2362 cycles += crisv10f_model_crisv10_u_multiply (current_cpu, idesc, 0, referenced); 2363 } 2364 { 2365 int referenced = 0; 2366 int UNUSED insn_referenced = abuf->written; 2367 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); 2368 } 2369 return cycles; 2370 #undef FLD 2371 } 2372 2373 static int 2374 model_crisv10_muls_d (SIM_CPU *current_cpu, void *sem_arg) 2375 { 2376 #define FLD(f) abuf->fields.sfmt_muls_b.f 2377 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2378 const IDESC * UNUSED idesc = abuf->idesc; 2379 int cycles = 0; 2380 { 2381 int referenced = 0; 2382 int UNUSED insn_referenced = abuf->written; 2383 cycles += crisv10f_model_crisv10_u_multiply (current_cpu, idesc, 0, referenced); 2384 } 2385 { 2386 int referenced = 0; 2387 int UNUSED insn_referenced = abuf->written; 2388 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); 2389 } 2390 return cycles; 2391 #undef FLD 2392 } 2393 2394 static int 2395 model_crisv10_mulu_b (SIM_CPU *current_cpu, void *sem_arg) 2396 { 2397 #define FLD(f) abuf->fields.sfmt_muls_b.f 2398 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2399 const IDESC * UNUSED idesc = abuf->idesc; 2400 int cycles = 0; 2401 { 2402 int referenced = 0; 2403 int UNUSED insn_referenced = abuf->written; 2404 cycles += crisv10f_model_crisv10_u_multiply (current_cpu, idesc, 0, referenced); 2405 } 2406 { 2407 int referenced = 0; 2408 int UNUSED insn_referenced = abuf->written; 2409 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); 2410 } 2411 return cycles; 2412 #undef FLD 2413 } 2414 2415 static int 2416 model_crisv10_mulu_w (SIM_CPU *current_cpu, void *sem_arg) 2417 { 2418 #define FLD(f) abuf->fields.sfmt_muls_b.f 2419 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2420 const IDESC * UNUSED idesc = abuf->idesc; 2421 int cycles = 0; 2422 { 2423 int referenced = 0; 2424 int UNUSED insn_referenced = abuf->written; 2425 cycles += crisv10f_model_crisv10_u_multiply (current_cpu, idesc, 0, referenced); 2426 } 2427 { 2428 int referenced = 0; 2429 int UNUSED insn_referenced = abuf->written; 2430 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); 2431 } 2432 return cycles; 2433 #undef FLD 2434 } 2435 2436 static int 2437 model_crisv10_mulu_d (SIM_CPU *current_cpu, void *sem_arg) 2438 { 2439 #define FLD(f) abuf->fields.sfmt_muls_b.f 2440 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2441 const IDESC * UNUSED idesc = abuf->idesc; 2442 int cycles = 0; 2443 { 2444 int referenced = 0; 2445 int UNUSED insn_referenced = abuf->written; 2446 cycles += crisv10f_model_crisv10_u_multiply (current_cpu, idesc, 0, referenced); 2447 } 2448 { 2449 int referenced = 0; 2450 int UNUSED insn_referenced = abuf->written; 2451 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); 2452 } 2453 return cycles; 2454 #undef FLD 2455 } 2456 2457 static int 2458 model_crisv10_mstep (SIM_CPU *current_cpu, void *sem_arg) 2459 { 2460 #define FLD(f) abuf->fields.sfmt_muls_b.f 2461 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2462 const IDESC * UNUSED idesc = abuf->idesc; 2463 int cycles = 0; 2464 { 2465 int referenced = 0; 2466 int UNUSED insn_referenced = abuf->written; 2467 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); 2468 } 2469 return cycles; 2470 #undef FLD 2471 } 2472 2473 static int 2474 model_crisv10_dstep (SIM_CPU *current_cpu, void *sem_arg) 2475 { 2476 #define FLD(f) abuf->fields.sfmt_muls_b.f 2477 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2478 const IDESC * UNUSED idesc = abuf->idesc; 2479 int cycles = 0; 2480 { 2481 int referenced = 0; 2482 int UNUSED insn_referenced = abuf->written; 2483 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); 2484 } 2485 return cycles; 2486 #undef FLD 2487 } 2488 2489 static int 2490 model_crisv10_abs (SIM_CPU *current_cpu, void *sem_arg) 2491 { 2492 #define FLD(f) abuf->fields.sfmt_muls_b.f 2493 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2494 const IDESC * UNUSED idesc = abuf->idesc; 2495 int cycles = 0; 2496 { 2497 int referenced = 0; 2498 int UNUSED insn_referenced = abuf->written; 2499 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); 2500 } 2501 return cycles; 2502 #undef FLD 2503 } 2504 2505 static int 2506 model_crisv10_and_b_r (SIM_CPU *current_cpu, void *sem_arg) 2507 { 2508 #define FLD(f) abuf->fields.sfmt_add_b_r.f 2509 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2510 const IDESC * UNUSED idesc = abuf->idesc; 2511 int cycles = 0; 2512 { 2513 int referenced = 0; 2514 int UNUSED insn_referenced = abuf->written; 2515 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); 2516 } 2517 return cycles; 2518 #undef FLD 2519 } 2520 2521 static int 2522 model_crisv10_and_w_r (SIM_CPU *current_cpu, void *sem_arg) 2523 { 2524 #define FLD(f) abuf->fields.sfmt_add_b_r.f 2525 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2526 const IDESC * UNUSED idesc = abuf->idesc; 2527 int cycles = 0; 2528 { 2529 int referenced = 0; 2530 int UNUSED insn_referenced = abuf->written; 2531 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); 2532 } 2533 return cycles; 2534 #undef FLD 2535 } 2536 2537 static int 2538 model_crisv10_and_d_r (SIM_CPU *current_cpu, void *sem_arg) 2539 { 2540 #define FLD(f) abuf->fields.sfmt_add_b_r.f 2541 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2542 const IDESC * UNUSED idesc = abuf->idesc; 2543 int cycles = 0; 2544 { 2545 int referenced = 0; 2546 int UNUSED insn_referenced = abuf->written; 2547 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); 2548 } 2549 return cycles; 2550 #undef FLD 2551 } 2552 2553 static int 2554 model_crisv10_and_m_b_m (SIM_CPU *current_cpu, void *sem_arg) 2555 { 2556 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f 2557 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2558 const IDESC * UNUSED idesc = abuf->idesc; 2559 int cycles = 0; 2560 { 2561 int referenced = 0; 2562 int UNUSED insn_referenced = abuf->written; 2563 cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced); 2564 } 2565 { 2566 int referenced = 0; 2567 int UNUSED insn_referenced = abuf->written; 2568 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); 2569 } 2570 return cycles; 2571 #undef FLD 2572 } 2573 2574 static int 2575 model_crisv10_and_m_w_m (SIM_CPU *current_cpu, void *sem_arg) 2576 { 2577 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f 2578 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2579 const IDESC * UNUSED idesc = abuf->idesc; 2580 int cycles = 0; 2581 { 2582 int referenced = 0; 2583 int UNUSED insn_referenced = abuf->written; 2584 cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced); 2585 } 2586 { 2587 int referenced = 0; 2588 int UNUSED insn_referenced = abuf->written; 2589 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); 2590 } 2591 return cycles; 2592 #undef FLD 2593 } 2594 2595 static int 2596 model_crisv10_and_m_d_m (SIM_CPU *current_cpu, void *sem_arg) 2597 { 2598 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f 2599 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2600 const IDESC * UNUSED idesc = abuf->idesc; 2601 int cycles = 0; 2602 { 2603 int referenced = 0; 2604 int UNUSED insn_referenced = abuf->written; 2605 cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced); 2606 } 2607 { 2608 int referenced = 0; 2609 int UNUSED insn_referenced = abuf->written; 2610 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); 2611 } 2612 return cycles; 2613 #undef FLD 2614 } 2615 2616 static int 2617 model_crisv10_andcbr (SIM_CPU *current_cpu, void *sem_arg) 2618 { 2619 #define FLD(f) abuf->fields.sfmt_addcbr.f 2620 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2621 const IDESC * UNUSED idesc = abuf->idesc; 2622 int cycles = 0; 2623 { 2624 int referenced = 0; 2625 int UNUSED insn_referenced = abuf->written; 2626 cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced); 2627 } 2628 { 2629 int referenced = 0; 2630 int UNUSED insn_referenced = abuf->written; 2631 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); 2632 } 2633 return cycles; 2634 #undef FLD 2635 } 2636 2637 static int 2638 model_crisv10_andcwr (SIM_CPU *current_cpu, void *sem_arg) 2639 { 2640 #define FLD(f) abuf->fields.sfmt_addcwr.f 2641 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2642 const IDESC * UNUSED idesc = abuf->idesc; 2643 int cycles = 0; 2644 { 2645 int referenced = 0; 2646 int UNUSED insn_referenced = abuf->written; 2647 cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced); 2648 } 2649 { 2650 int referenced = 0; 2651 int UNUSED insn_referenced = abuf->written; 2652 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); 2653 } 2654 return cycles; 2655 #undef FLD 2656 } 2657 2658 static int 2659 model_crisv10_andcdr (SIM_CPU *current_cpu, void *sem_arg) 2660 { 2661 #define FLD(f) abuf->fields.sfmt_addcdr.f 2662 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2663 const IDESC * UNUSED idesc = abuf->idesc; 2664 int cycles = 0; 2665 { 2666 int referenced = 0; 2667 int UNUSED insn_referenced = abuf->written; 2668 cycles += crisv10f_model_crisv10_u_const32 (current_cpu, idesc, 0, referenced); 2669 } 2670 { 2671 int referenced = 0; 2672 int UNUSED insn_referenced = abuf->written; 2673 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); 2674 } 2675 return cycles; 2676 #undef FLD 2677 } 2678 2679 static int 2680 model_crisv10_andq (SIM_CPU *current_cpu, void *sem_arg) 2681 { 2682 #define FLD(f) abuf->fields.sfmt_andq.f 2683 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2684 const IDESC * UNUSED idesc = abuf->idesc; 2685 int cycles = 0; 2686 { 2687 int referenced = 0; 2688 int UNUSED insn_referenced = abuf->written; 2689 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); 2690 } 2691 return cycles; 2692 #undef FLD 2693 } 2694 2695 static int 2696 model_crisv10_orr_b_r (SIM_CPU *current_cpu, void *sem_arg) 2697 { 2698 #define FLD(f) abuf->fields.sfmt_add_b_r.f 2699 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2700 const IDESC * UNUSED idesc = abuf->idesc; 2701 int cycles = 0; 2702 { 2703 int referenced = 0; 2704 int UNUSED insn_referenced = abuf->written; 2705 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); 2706 } 2707 return cycles; 2708 #undef FLD 2709 } 2710 2711 static int 2712 model_crisv10_orr_w_r (SIM_CPU *current_cpu, void *sem_arg) 2713 { 2714 #define FLD(f) abuf->fields.sfmt_add_b_r.f 2715 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2716 const IDESC * UNUSED idesc = abuf->idesc; 2717 int cycles = 0; 2718 { 2719 int referenced = 0; 2720 int UNUSED insn_referenced = abuf->written; 2721 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); 2722 } 2723 return cycles; 2724 #undef FLD 2725 } 2726 2727 static int 2728 model_crisv10_orr_d_r (SIM_CPU *current_cpu, void *sem_arg) 2729 { 2730 #define FLD(f) abuf->fields.sfmt_add_b_r.f 2731 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2732 const IDESC * UNUSED idesc = abuf->idesc; 2733 int cycles = 0; 2734 { 2735 int referenced = 0; 2736 int UNUSED insn_referenced = abuf->written; 2737 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); 2738 } 2739 return cycles; 2740 #undef FLD 2741 } 2742 2743 static int 2744 model_crisv10_or_m_b_m (SIM_CPU *current_cpu, void *sem_arg) 2745 { 2746 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f 2747 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2748 const IDESC * UNUSED idesc = abuf->idesc; 2749 int cycles = 0; 2750 { 2751 int referenced = 0; 2752 int UNUSED insn_referenced = abuf->written; 2753 cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced); 2754 } 2755 { 2756 int referenced = 0; 2757 int UNUSED insn_referenced = abuf->written; 2758 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); 2759 } 2760 return cycles; 2761 #undef FLD 2762 } 2763 2764 static int 2765 model_crisv10_or_m_w_m (SIM_CPU *current_cpu, void *sem_arg) 2766 { 2767 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f 2768 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2769 const IDESC * UNUSED idesc = abuf->idesc; 2770 int cycles = 0; 2771 { 2772 int referenced = 0; 2773 int UNUSED insn_referenced = abuf->written; 2774 cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced); 2775 } 2776 { 2777 int referenced = 0; 2778 int UNUSED insn_referenced = abuf->written; 2779 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); 2780 } 2781 return cycles; 2782 #undef FLD 2783 } 2784 2785 static int 2786 model_crisv10_or_m_d_m (SIM_CPU *current_cpu, void *sem_arg) 2787 { 2788 #define FLD(f) abuf->fields.sfmt_add_m_b_m.f 2789 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2790 const IDESC * UNUSED idesc = abuf->idesc; 2791 int cycles = 0; 2792 { 2793 int referenced = 0; 2794 int UNUSED insn_referenced = abuf->written; 2795 cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced); 2796 } 2797 { 2798 int referenced = 0; 2799 int UNUSED insn_referenced = abuf->written; 2800 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); 2801 } 2802 return cycles; 2803 #undef FLD 2804 } 2805 2806 static int 2807 model_crisv10_orcbr (SIM_CPU *current_cpu, void *sem_arg) 2808 { 2809 #define FLD(f) abuf->fields.sfmt_addcbr.f 2810 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2811 const IDESC * UNUSED idesc = abuf->idesc; 2812 int cycles = 0; 2813 { 2814 int referenced = 0; 2815 int UNUSED insn_referenced = abuf->written; 2816 cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced); 2817 } 2818 { 2819 int referenced = 0; 2820 int UNUSED insn_referenced = abuf->written; 2821 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); 2822 } 2823 return cycles; 2824 #undef FLD 2825 } 2826 2827 static int 2828 model_crisv10_orcwr (SIM_CPU *current_cpu, void *sem_arg) 2829 { 2830 #define FLD(f) abuf->fields.sfmt_addcwr.f 2831 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2832 const IDESC * UNUSED idesc = abuf->idesc; 2833 int cycles = 0; 2834 { 2835 int referenced = 0; 2836 int UNUSED insn_referenced = abuf->written; 2837 cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced); 2838 } 2839 { 2840 int referenced = 0; 2841 int UNUSED insn_referenced = abuf->written; 2842 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); 2843 } 2844 return cycles; 2845 #undef FLD 2846 } 2847 2848 static int 2849 model_crisv10_orcdr (SIM_CPU *current_cpu, void *sem_arg) 2850 { 2851 #define FLD(f) abuf->fields.sfmt_addcdr.f 2852 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2853 const IDESC * UNUSED idesc = abuf->idesc; 2854 int cycles = 0; 2855 { 2856 int referenced = 0; 2857 int UNUSED insn_referenced = abuf->written; 2858 cycles += crisv10f_model_crisv10_u_const32 (current_cpu, idesc, 0, referenced); 2859 } 2860 { 2861 int referenced = 0; 2862 int UNUSED insn_referenced = abuf->written; 2863 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); 2864 } 2865 return cycles; 2866 #undef FLD 2867 } 2868 2869 static int 2870 model_crisv10_orq (SIM_CPU *current_cpu, void *sem_arg) 2871 { 2872 #define FLD(f) abuf->fields.sfmt_andq.f 2873 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2874 const IDESC * UNUSED idesc = abuf->idesc; 2875 int cycles = 0; 2876 { 2877 int referenced = 0; 2878 int UNUSED insn_referenced = abuf->written; 2879 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); 2880 } 2881 return cycles; 2882 #undef FLD 2883 } 2884 2885 static int 2886 model_crisv10_xor (SIM_CPU *current_cpu, void *sem_arg) 2887 { 2888 #define FLD(f) abuf->fields.sfmt_muls_b.f 2889 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2890 const IDESC * UNUSED idesc = abuf->idesc; 2891 int cycles = 0; 2892 { 2893 int referenced = 0; 2894 int UNUSED insn_referenced = abuf->written; 2895 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); 2896 } 2897 return cycles; 2898 #undef FLD 2899 } 2900 2901 static int 2902 model_crisv10_swap (SIM_CPU *current_cpu, void *sem_arg) 2903 { 2904 #define FLD(f) abuf->fields.sfmt_move_spr_mv10.f 2905 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2906 const IDESC * UNUSED idesc = abuf->idesc; 2907 int cycles = 0; 2908 { 2909 int referenced = 0; 2910 int UNUSED insn_referenced = abuf->written; 2911 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); 2912 } 2913 return cycles; 2914 #undef FLD 2915 } 2916 2917 static int 2918 model_crisv10_asrr_b_r (SIM_CPU *current_cpu, void *sem_arg) 2919 { 2920 #define FLD(f) abuf->fields.sfmt_add_b_r.f 2921 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2922 const IDESC * UNUSED idesc = abuf->idesc; 2923 int cycles = 0; 2924 { 2925 int referenced = 0; 2926 int UNUSED insn_referenced = abuf->written; 2927 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); 2928 } 2929 return cycles; 2930 #undef FLD 2931 } 2932 2933 static int 2934 model_crisv10_asrr_w_r (SIM_CPU *current_cpu, void *sem_arg) 2935 { 2936 #define FLD(f) abuf->fields.sfmt_add_b_r.f 2937 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2938 const IDESC * UNUSED idesc = abuf->idesc; 2939 int cycles = 0; 2940 { 2941 int referenced = 0; 2942 int UNUSED insn_referenced = abuf->written; 2943 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); 2944 } 2945 return cycles; 2946 #undef FLD 2947 } 2948 2949 static int 2950 model_crisv10_asrr_d_r (SIM_CPU *current_cpu, void *sem_arg) 2951 { 2952 #define FLD(f) abuf->fields.sfmt_add_b_r.f 2953 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2954 const IDESC * UNUSED idesc = abuf->idesc; 2955 int cycles = 0; 2956 { 2957 int referenced = 0; 2958 int UNUSED insn_referenced = abuf->written; 2959 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); 2960 } 2961 return cycles; 2962 #undef FLD 2963 } 2964 2965 static int 2966 model_crisv10_asrq (SIM_CPU *current_cpu, void *sem_arg) 2967 { 2968 #define FLD(f) abuf->fields.sfmt_asrq.f 2969 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2970 const IDESC * UNUSED idesc = abuf->idesc; 2971 int cycles = 0; 2972 { 2973 int referenced = 0; 2974 int UNUSED insn_referenced = abuf->written; 2975 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); 2976 } 2977 return cycles; 2978 #undef FLD 2979 } 2980 2981 static int 2982 model_crisv10_lsrr_b_r (SIM_CPU *current_cpu, void *sem_arg) 2983 { 2984 #define FLD(f) abuf->fields.sfmt_add_b_r.f 2985 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 2986 const IDESC * UNUSED idesc = abuf->idesc; 2987 int cycles = 0; 2988 { 2989 int referenced = 0; 2990 int UNUSED insn_referenced = abuf->written; 2991 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); 2992 } 2993 return cycles; 2994 #undef FLD 2995 } 2996 2997 static int 2998 model_crisv10_lsrr_w_r (SIM_CPU *current_cpu, void *sem_arg) 2999 { 3000 #define FLD(f) abuf->fields.sfmt_add_b_r.f 3001 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 3002 const IDESC * UNUSED idesc = abuf->idesc; 3003 int cycles = 0; 3004 { 3005 int referenced = 0; 3006 int UNUSED insn_referenced = abuf->written; 3007 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); 3008 } 3009 return cycles; 3010 #undef FLD 3011 } 3012 3013 static int 3014 model_crisv10_lsrr_d_r (SIM_CPU *current_cpu, void *sem_arg) 3015 { 3016 #define FLD(f) abuf->fields.sfmt_add_b_r.f 3017 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 3018 const IDESC * UNUSED idesc = abuf->idesc; 3019 int cycles = 0; 3020 { 3021 int referenced = 0; 3022 int UNUSED insn_referenced = abuf->written; 3023 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); 3024 } 3025 return cycles; 3026 #undef FLD 3027 } 3028 3029 static int 3030 model_crisv10_lsrq (SIM_CPU *current_cpu, void *sem_arg) 3031 { 3032 #define FLD(f) abuf->fields.sfmt_asrq.f 3033 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 3034 const IDESC * UNUSED idesc = abuf->idesc; 3035 int cycles = 0; 3036 { 3037 int referenced = 0; 3038 int UNUSED insn_referenced = abuf->written; 3039 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); 3040 } 3041 return cycles; 3042 #undef FLD 3043 } 3044 3045 static int 3046 model_crisv10_lslr_b_r (SIM_CPU *current_cpu, void *sem_arg) 3047 { 3048 #define FLD(f) abuf->fields.sfmt_add_b_r.f 3049 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 3050 const IDESC * UNUSED idesc = abuf->idesc; 3051 int cycles = 0; 3052 { 3053 int referenced = 0; 3054 int UNUSED insn_referenced = abuf->written; 3055 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); 3056 } 3057 return cycles; 3058 #undef FLD 3059 } 3060 3061 static int 3062 model_crisv10_lslr_w_r (SIM_CPU *current_cpu, void *sem_arg) 3063 { 3064 #define FLD(f) abuf->fields.sfmt_add_b_r.f 3065 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 3066 const IDESC * UNUSED idesc = abuf->idesc; 3067 int cycles = 0; 3068 { 3069 int referenced = 0; 3070 int UNUSED insn_referenced = abuf->written; 3071 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); 3072 } 3073 return cycles; 3074 #undef FLD 3075 } 3076 3077 static int 3078 model_crisv10_lslr_d_r (SIM_CPU *current_cpu, void *sem_arg) 3079 { 3080 #define FLD(f) abuf->fields.sfmt_add_b_r.f 3081 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 3082 const IDESC * UNUSED idesc = abuf->idesc; 3083 int cycles = 0; 3084 { 3085 int referenced = 0; 3086 int UNUSED insn_referenced = abuf->written; 3087 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); 3088 } 3089 return cycles; 3090 #undef FLD 3091 } 3092 3093 static int 3094 model_crisv10_lslq (SIM_CPU *current_cpu, void *sem_arg) 3095 { 3096 #define FLD(f) abuf->fields.sfmt_asrq.f 3097 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 3098 const IDESC * UNUSED idesc = abuf->idesc; 3099 int cycles = 0; 3100 { 3101 int referenced = 0; 3102 int UNUSED insn_referenced = abuf->written; 3103 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); 3104 } 3105 return cycles; 3106 #undef FLD 3107 } 3108 3109 static int 3110 model_crisv10_btst (SIM_CPU *current_cpu, void *sem_arg) 3111 { 3112 #define FLD(f) abuf->fields.sfmt_add_b_r.f 3113 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 3114 const IDESC * UNUSED idesc = abuf->idesc; 3115 int cycles = 0; 3116 { 3117 int referenced = 0; 3118 int UNUSED insn_referenced = abuf->written; 3119 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); 3120 } 3121 return cycles; 3122 #undef FLD 3123 } 3124 3125 static int 3126 model_crisv10_btstq (SIM_CPU *current_cpu, void *sem_arg) 3127 { 3128 #define FLD(f) abuf->fields.sfmt_asrq.f 3129 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 3130 const IDESC * UNUSED idesc = abuf->idesc; 3131 int cycles = 0; 3132 { 3133 int referenced = 0; 3134 int UNUSED insn_referenced = abuf->written; 3135 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); 3136 } 3137 return cycles; 3138 #undef FLD 3139 } 3140 3141 static int 3142 model_crisv10_setf (SIM_CPU *current_cpu, void *sem_arg) 3143 { 3144 #define FLD(f) abuf->fields.sfmt_setf.f 3145 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 3146 const IDESC * UNUSED idesc = abuf->idesc; 3147 int cycles = 0; 3148 { 3149 int referenced = 0; 3150 int UNUSED insn_referenced = abuf->written; 3151 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); 3152 } 3153 return cycles; 3154 #undef FLD 3155 } 3156 3157 static int 3158 model_crisv10_clearf (SIM_CPU *current_cpu, void *sem_arg) 3159 { 3160 #define FLD(f) abuf->fields.sfmt_setf.f 3161 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 3162 const IDESC * UNUSED idesc = abuf->idesc; 3163 int cycles = 0; 3164 { 3165 int referenced = 0; 3166 int UNUSED insn_referenced = abuf->written; 3167 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); 3168 } 3169 return cycles; 3170 #undef FLD 3171 } 3172 3173 static int 3174 model_crisv10_bcc_b (SIM_CPU *current_cpu, void *sem_arg) 3175 { 3176 #define FLD(f) abuf->fields.sfmt_bcc_b.f 3177 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 3178 const IDESC * UNUSED idesc = abuf->idesc; 3179 int cycles = 0; 3180 { 3181 int referenced = 0; 3182 int UNUSED insn_referenced = abuf->written; 3183 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); 3184 } 3185 return cycles; 3186 #undef FLD 3187 } 3188 3189 static int 3190 model_crisv10_ba_b (SIM_CPU *current_cpu, void *sem_arg) 3191 { 3192 #define FLD(f) abuf->fields.sfmt_bcc_b.f 3193 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 3194 const IDESC * UNUSED idesc = abuf->idesc; 3195 int cycles = 0; 3196 { 3197 int referenced = 0; 3198 int UNUSED insn_referenced = abuf->written; 3199 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); 3200 } 3201 return cycles; 3202 #undef FLD 3203 } 3204 3205 static int 3206 model_crisv10_bcc_w (SIM_CPU *current_cpu, void *sem_arg) 3207 { 3208 #define FLD(f) abuf->fields.sfmt_bcc_w.f 3209 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 3210 const IDESC * UNUSED idesc = abuf->idesc; 3211 int cycles = 0; 3212 { 3213 int referenced = 0; 3214 int UNUSED insn_referenced = abuf->written; 3215 cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced); 3216 } 3217 { 3218 int referenced = 0; 3219 int UNUSED insn_referenced = abuf->written; 3220 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); 3221 } 3222 return cycles; 3223 #undef FLD 3224 } 3225 3226 static int 3227 model_crisv10_ba_w (SIM_CPU *current_cpu, void *sem_arg) 3228 { 3229 #define FLD(f) abuf->fields.sfmt_bcc_w.f 3230 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 3231 const IDESC * UNUSED idesc = abuf->idesc; 3232 int cycles = 0; 3233 { 3234 int referenced = 0; 3235 int UNUSED insn_referenced = abuf->written; 3236 cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced); 3237 } 3238 { 3239 int referenced = 0; 3240 int UNUSED insn_referenced = abuf->written; 3241 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); 3242 } 3243 return cycles; 3244 #undef FLD 3245 } 3246 3247 static int 3248 model_crisv10_jump_r (SIM_CPU *current_cpu, void *sem_arg) 3249 { 3250 #define FLD(f) abuf->fields.sfmt_move_m_sprv10.f 3251 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 3252 const IDESC * UNUSED idesc = abuf->idesc; 3253 int cycles = 0; 3254 { 3255 int referenced = 0; 3256 int UNUSED insn_referenced = abuf->written; 3257 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); 3258 } 3259 return cycles; 3260 #undef FLD 3261 } 3262 3263 static int 3264 model_crisv10_jump_m (SIM_CPU *current_cpu, void *sem_arg) 3265 { 3266 #define FLD(f) abuf->fields.sfmt_move_m_sprv10.f 3267 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 3268 const IDESC * UNUSED idesc = abuf->idesc; 3269 int cycles = 0; 3270 { 3271 int referenced = 0; 3272 int UNUSED insn_referenced = abuf->written; 3273 cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced); 3274 } 3275 { 3276 int referenced = 0; 3277 int UNUSED insn_referenced = abuf->written; 3278 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); 3279 } 3280 return cycles; 3281 #undef FLD 3282 } 3283 3284 static int 3285 model_crisv10_jump_c (SIM_CPU *current_cpu, void *sem_arg) 3286 { 3287 #define FLD(f) abuf->fields.sfmt_move_c_sprv10_p9.f 3288 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 3289 const IDESC * UNUSED idesc = abuf->idesc; 3290 int cycles = 0; 3291 { 3292 int referenced = 0; 3293 int UNUSED insn_referenced = abuf->written; 3294 cycles += crisv10f_model_crisv10_u_const32 (current_cpu, idesc, 0, referenced); 3295 } 3296 { 3297 int referenced = 0; 3298 int UNUSED insn_referenced = abuf->written; 3299 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); 3300 } 3301 return cycles; 3302 #undef FLD 3303 } 3304 3305 static int 3306 model_crisv10_break (SIM_CPU *current_cpu, void *sem_arg) 3307 { 3308 #define FLD(f) abuf->fields.sfmt_break.f 3309 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 3310 const IDESC * UNUSED idesc = abuf->idesc; 3311 int cycles = 0; 3312 { 3313 int referenced = 0; 3314 int UNUSED insn_referenced = abuf->written; 3315 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); 3316 } 3317 return cycles; 3318 #undef FLD 3319 } 3320 3321 static int 3322 model_crisv10_bound_r_b_r (SIM_CPU *current_cpu, void *sem_arg) 3323 { 3324 #define FLD(f) abuf->fields.sfmt_muls_b.f 3325 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 3326 const IDESC * UNUSED idesc = abuf->idesc; 3327 int cycles = 0; 3328 { 3329 int referenced = 0; 3330 int UNUSED insn_referenced = abuf->written; 3331 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); 3332 } 3333 return cycles; 3334 #undef FLD 3335 } 3336 3337 static int 3338 model_crisv10_bound_r_w_r (SIM_CPU *current_cpu, void *sem_arg) 3339 { 3340 #define FLD(f) abuf->fields.sfmt_muls_b.f 3341 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 3342 const IDESC * UNUSED idesc = abuf->idesc; 3343 int cycles = 0; 3344 { 3345 int referenced = 0; 3346 int UNUSED insn_referenced = abuf->written; 3347 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); 3348 } 3349 return cycles; 3350 #undef FLD 3351 } 3352 3353 static int 3354 model_crisv10_bound_r_d_r (SIM_CPU *current_cpu, void *sem_arg) 3355 { 3356 #define FLD(f) abuf->fields.sfmt_muls_b.f 3357 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 3358 const IDESC * UNUSED idesc = abuf->idesc; 3359 int cycles = 0; 3360 { 3361 int referenced = 0; 3362 int UNUSED insn_referenced = abuf->written; 3363 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); 3364 } 3365 return cycles; 3366 #undef FLD 3367 } 3368 3369 static int 3370 model_crisv10_bound_m_b_m (SIM_CPU *current_cpu, void *sem_arg) 3371 { 3372 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f 3373 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 3374 const IDESC * UNUSED idesc = abuf->idesc; 3375 int cycles = 0; 3376 { 3377 int referenced = 0; 3378 int UNUSED insn_referenced = abuf->written; 3379 cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced); 3380 } 3381 { 3382 int referenced = 0; 3383 int UNUSED insn_referenced = abuf->written; 3384 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); 3385 } 3386 return cycles; 3387 #undef FLD 3388 } 3389 3390 static int 3391 model_crisv10_bound_m_w_m (SIM_CPU *current_cpu, void *sem_arg) 3392 { 3393 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f 3394 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 3395 const IDESC * UNUSED idesc = abuf->idesc; 3396 int cycles = 0; 3397 { 3398 int referenced = 0; 3399 int UNUSED insn_referenced = abuf->written; 3400 cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced); 3401 } 3402 { 3403 int referenced = 0; 3404 int UNUSED insn_referenced = abuf->written; 3405 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); 3406 } 3407 return cycles; 3408 #undef FLD 3409 } 3410 3411 static int 3412 model_crisv10_bound_m_d_m (SIM_CPU *current_cpu, void *sem_arg) 3413 { 3414 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f 3415 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 3416 const IDESC * UNUSED idesc = abuf->idesc; 3417 int cycles = 0; 3418 { 3419 int referenced = 0; 3420 int UNUSED insn_referenced = abuf->written; 3421 cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced); 3422 } 3423 { 3424 int referenced = 0; 3425 int UNUSED insn_referenced = abuf->written; 3426 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); 3427 } 3428 return cycles; 3429 #undef FLD 3430 } 3431 3432 static int 3433 model_crisv10_bound_cb (SIM_CPU *current_cpu, void *sem_arg) 3434 { 3435 #define FLD(f) abuf->fields.sfmt_bound_cb.f 3436 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 3437 const IDESC * UNUSED idesc = abuf->idesc; 3438 int cycles = 0; 3439 { 3440 int referenced = 0; 3441 int UNUSED insn_referenced = abuf->written; 3442 cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced); 3443 } 3444 { 3445 int referenced = 0; 3446 int UNUSED insn_referenced = abuf->written; 3447 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); 3448 } 3449 return cycles; 3450 #undef FLD 3451 } 3452 3453 static int 3454 model_crisv10_bound_cw (SIM_CPU *current_cpu, void *sem_arg) 3455 { 3456 #define FLD(f) abuf->fields.sfmt_bound_cw.f 3457 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 3458 const IDESC * UNUSED idesc = abuf->idesc; 3459 int cycles = 0; 3460 { 3461 int referenced = 0; 3462 int UNUSED insn_referenced = abuf->written; 3463 cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced); 3464 } 3465 { 3466 int referenced = 0; 3467 int UNUSED insn_referenced = abuf->written; 3468 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); 3469 } 3470 return cycles; 3471 #undef FLD 3472 } 3473 3474 static int 3475 model_crisv10_bound_cd (SIM_CPU *current_cpu, void *sem_arg) 3476 { 3477 #define FLD(f) abuf->fields.sfmt_bound_cd.f 3478 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 3479 const IDESC * UNUSED idesc = abuf->idesc; 3480 int cycles = 0; 3481 { 3482 int referenced = 0; 3483 int UNUSED insn_referenced = abuf->written; 3484 cycles += crisv10f_model_crisv10_u_const32 (current_cpu, idesc, 0, referenced); 3485 } 3486 { 3487 int referenced = 0; 3488 int UNUSED insn_referenced = abuf->written; 3489 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); 3490 } 3491 return cycles; 3492 #undef FLD 3493 } 3494 3495 static int 3496 model_crisv10_scc (SIM_CPU *current_cpu, void *sem_arg) 3497 { 3498 #define FLD(f) abuf->fields.sfmt_move_spr_mv10.f 3499 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 3500 const IDESC * UNUSED idesc = abuf->idesc; 3501 int cycles = 0; 3502 { 3503 int referenced = 0; 3504 int UNUSED insn_referenced = abuf->written; 3505 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); 3506 } 3507 return cycles; 3508 #undef FLD 3509 } 3510 3511 static int 3512 model_crisv10_lz (SIM_CPU *current_cpu, void *sem_arg) 3513 { 3514 #define FLD(f) abuf->fields.sfmt_muls_b.f 3515 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 3516 const IDESC * UNUSED idesc = abuf->idesc; 3517 int cycles = 0; 3518 { 3519 int referenced = 0; 3520 int UNUSED insn_referenced = abuf->written; 3521 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); 3522 } 3523 return cycles; 3524 #undef FLD 3525 } 3526 3527 static int 3528 model_crisv10_addoq (SIM_CPU *current_cpu, void *sem_arg) 3529 { 3530 #define FLD(f) abuf->fields.sfmt_addoq.f 3531 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 3532 const IDESC * UNUSED idesc = abuf->idesc; 3533 int cycles = 0; 3534 { 3535 int referenced = 0; 3536 int UNUSED insn_referenced = abuf->written; 3537 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); 3538 } 3539 return cycles; 3540 #undef FLD 3541 } 3542 3543 static int 3544 model_crisv10_bdapqpc (SIM_CPU *current_cpu, void *sem_arg) 3545 { 3546 #define FLD(f) abuf->fields.sfmt_addoq.f 3547 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 3548 const IDESC * UNUSED idesc = abuf->idesc; 3549 int cycles = 0; 3550 { 3551 int referenced = 0; 3552 int UNUSED insn_referenced = abuf->written; 3553 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); 3554 } 3555 return cycles; 3556 #undef FLD 3557 } 3558 3559 static int 3560 model_crisv10_bdap_32_pc (SIM_CPU *current_cpu, void *sem_arg) 3561 { 3562 #define FLD(f) abuf->fields.sfmt_move_c_sprv10_p9.f 3563 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 3564 const IDESC * UNUSED idesc = abuf->idesc; 3565 int cycles = 0; 3566 { 3567 int referenced = 0; 3568 int UNUSED insn_referenced = abuf->written; 3569 cycles += crisv10f_model_crisv10_u_const32 (current_cpu, idesc, 0, referenced); 3570 } 3571 { 3572 int referenced = 0; 3573 int UNUSED insn_referenced = abuf->written; 3574 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); 3575 } 3576 return cycles; 3577 #undef FLD 3578 } 3579 3580 static int 3581 model_crisv10_move_m_pcplus_p0 (SIM_CPU *current_cpu, void *sem_arg) 3582 { 3583 #define FLD(f) abuf->fields.sfmt_move_m_spplus_p8.f 3584 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 3585 const IDESC * UNUSED idesc = abuf->idesc; 3586 int cycles = 0; 3587 { 3588 int referenced = 0; 3589 int UNUSED insn_referenced = abuf->written; 3590 cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced); 3591 } 3592 { 3593 int referenced = 0; 3594 int UNUSED insn_referenced = abuf->written; 3595 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); 3596 } 3597 return cycles; 3598 #undef FLD 3599 } 3600 3601 static int 3602 model_crisv10_move_m_spplus_p8 (SIM_CPU *current_cpu, void *sem_arg) 3603 { 3604 #define FLD(f) abuf->fields.sfmt_move_m_spplus_p8.f 3605 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 3606 const IDESC * UNUSED idesc = abuf->idesc; 3607 int cycles = 0; 3608 { 3609 int referenced = 0; 3610 int UNUSED insn_referenced = abuf->written; 3611 cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced); 3612 } 3613 { 3614 int referenced = 0; 3615 int UNUSED insn_referenced = abuf->written; 3616 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); 3617 } 3618 return cycles; 3619 #undef FLD 3620 } 3621 3622 static int 3623 model_crisv10_addo_m_b_m (SIM_CPU *current_cpu, void *sem_arg) 3624 { 3625 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f 3626 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 3627 const IDESC * UNUSED idesc = abuf->idesc; 3628 int cycles = 0; 3629 { 3630 int referenced = 0; 3631 int UNUSED insn_referenced = abuf->written; 3632 cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced); 3633 } 3634 { 3635 int referenced = 0; 3636 int UNUSED insn_referenced = abuf->written; 3637 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); 3638 } 3639 return cycles; 3640 #undef FLD 3641 } 3642 3643 static int 3644 model_crisv10_addo_m_w_m (SIM_CPU *current_cpu, void *sem_arg) 3645 { 3646 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f 3647 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 3648 const IDESC * UNUSED idesc = abuf->idesc; 3649 int cycles = 0; 3650 { 3651 int referenced = 0; 3652 int UNUSED insn_referenced = abuf->written; 3653 cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced); 3654 } 3655 { 3656 int referenced = 0; 3657 int UNUSED insn_referenced = abuf->written; 3658 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); 3659 } 3660 return cycles; 3661 #undef FLD 3662 } 3663 3664 static int 3665 model_crisv10_addo_m_d_m (SIM_CPU *current_cpu, void *sem_arg) 3666 { 3667 #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f 3668 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 3669 const IDESC * UNUSED idesc = abuf->idesc; 3670 int cycles = 0; 3671 { 3672 int referenced = 0; 3673 int UNUSED insn_referenced = abuf->written; 3674 cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced); 3675 } 3676 { 3677 int referenced = 0; 3678 int UNUSED insn_referenced = abuf->written; 3679 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); 3680 } 3681 return cycles; 3682 #undef FLD 3683 } 3684 3685 static int 3686 model_crisv10_addo_cb (SIM_CPU *current_cpu, void *sem_arg) 3687 { 3688 #define FLD(f) abuf->fields.sfmt_bound_cb.f 3689 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 3690 const IDESC * UNUSED idesc = abuf->idesc; 3691 int cycles = 0; 3692 { 3693 int referenced = 0; 3694 int UNUSED insn_referenced = abuf->written; 3695 cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced); 3696 } 3697 { 3698 int referenced = 0; 3699 int UNUSED insn_referenced = abuf->written; 3700 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); 3701 } 3702 return cycles; 3703 #undef FLD 3704 } 3705 3706 static int 3707 model_crisv10_addo_cw (SIM_CPU *current_cpu, void *sem_arg) 3708 { 3709 #define FLD(f) abuf->fields.sfmt_bound_cw.f 3710 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 3711 const IDESC * UNUSED idesc = abuf->idesc; 3712 int cycles = 0; 3713 { 3714 int referenced = 0; 3715 int UNUSED insn_referenced = abuf->written; 3716 cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced); 3717 } 3718 { 3719 int referenced = 0; 3720 int UNUSED insn_referenced = abuf->written; 3721 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); 3722 } 3723 return cycles; 3724 #undef FLD 3725 } 3726 3727 static int 3728 model_crisv10_addo_cd (SIM_CPU *current_cpu, void *sem_arg) 3729 { 3730 #define FLD(f) abuf->fields.sfmt_bound_cd.f 3731 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 3732 const IDESC * UNUSED idesc = abuf->idesc; 3733 int cycles = 0; 3734 { 3735 int referenced = 0; 3736 int UNUSED insn_referenced = abuf->written; 3737 cycles += crisv10f_model_crisv10_u_const32 (current_cpu, idesc, 0, referenced); 3738 } 3739 { 3740 int referenced = 0; 3741 int UNUSED insn_referenced = abuf->written; 3742 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); 3743 } 3744 return cycles; 3745 #undef FLD 3746 } 3747 3748 static int 3749 model_crisv10_dip_m (SIM_CPU *current_cpu, void *sem_arg) 3750 { 3751 #define FLD(f) abuf->fields.sfmt_move_spr_mv10.f 3752 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 3753 const IDESC * UNUSED idesc = abuf->idesc; 3754 int cycles = 0; 3755 { 3756 int referenced = 0; 3757 int UNUSED insn_referenced = abuf->written; 3758 cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced); 3759 } 3760 { 3761 int referenced = 0; 3762 int UNUSED insn_referenced = abuf->written; 3763 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); 3764 } 3765 return cycles; 3766 #undef FLD 3767 } 3768 3769 static int 3770 model_crisv10_dip_c (SIM_CPU *current_cpu, void *sem_arg) 3771 { 3772 #define FLD(f) abuf->fields.sfmt_move_c_sprv10_p9.f 3773 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 3774 const IDESC * UNUSED idesc = abuf->idesc; 3775 int cycles = 0; 3776 { 3777 int referenced = 0; 3778 int UNUSED insn_referenced = abuf->written; 3779 cycles += crisv10f_model_crisv10_u_const32 (current_cpu, idesc, 0, referenced); 3780 } 3781 { 3782 int referenced = 0; 3783 int UNUSED insn_referenced = abuf->written; 3784 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); 3785 } 3786 return cycles; 3787 #undef FLD 3788 } 3789 3790 static int 3791 model_crisv10_addi_acr_b_r (SIM_CPU *current_cpu, void *sem_arg) 3792 { 3793 #define FLD(f) abuf->fields.sfmt_add_b_r.f 3794 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 3795 const IDESC * UNUSED idesc = abuf->idesc; 3796 int cycles = 0; 3797 { 3798 int referenced = 0; 3799 int UNUSED insn_referenced = abuf->written; 3800 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); 3801 } 3802 return cycles; 3803 #undef FLD 3804 } 3805 3806 static int 3807 model_crisv10_addi_acr_w_r (SIM_CPU *current_cpu, void *sem_arg) 3808 { 3809 #define FLD(f) abuf->fields.sfmt_add_b_r.f 3810 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 3811 const IDESC * UNUSED idesc = abuf->idesc; 3812 int cycles = 0; 3813 { 3814 int referenced = 0; 3815 int UNUSED insn_referenced = abuf->written; 3816 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); 3817 } 3818 return cycles; 3819 #undef FLD 3820 } 3821 3822 static int 3823 model_crisv10_addi_acr_d_r (SIM_CPU *current_cpu, void *sem_arg) 3824 { 3825 #define FLD(f) abuf->fields.sfmt_add_b_r.f 3826 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 3827 const IDESC * UNUSED idesc = abuf->idesc; 3828 int cycles = 0; 3829 { 3830 int referenced = 0; 3831 int UNUSED insn_referenced = abuf->written; 3832 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); 3833 } 3834 return cycles; 3835 #undef FLD 3836 } 3837 3838 static int 3839 model_crisv10_biap_pc_b_r (SIM_CPU *current_cpu, void *sem_arg) 3840 { 3841 #define FLD(f) abuf->fields.sfmt_addoq.f 3842 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 3843 const IDESC * UNUSED idesc = abuf->idesc; 3844 int cycles = 0; 3845 { 3846 int referenced = 0; 3847 int UNUSED insn_referenced = abuf->written; 3848 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); 3849 } 3850 return cycles; 3851 #undef FLD 3852 } 3853 3854 static int 3855 model_crisv10_biap_pc_w_r (SIM_CPU *current_cpu, void *sem_arg) 3856 { 3857 #define FLD(f) abuf->fields.sfmt_addoq.f 3858 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 3859 const IDESC * UNUSED idesc = abuf->idesc; 3860 int cycles = 0; 3861 { 3862 int referenced = 0; 3863 int UNUSED insn_referenced = abuf->written; 3864 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); 3865 } 3866 return cycles; 3867 #undef FLD 3868 } 3869 3870 static int 3871 model_crisv10_biap_pc_d_r (SIM_CPU *current_cpu, void *sem_arg) 3872 { 3873 #define FLD(f) abuf->fields.sfmt_addoq.f 3874 const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); 3875 const IDESC * UNUSED idesc = abuf->idesc; 3876 int cycles = 0; 3877 { 3878 int referenced = 0; 3879 int UNUSED insn_referenced = abuf->written; 3880 cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); 3881 } 3882 return cycles; 3883 #undef FLD 3884 } 3885 3886 /* We assume UNIT_NONE == 0 because the tables don't always terminate 3887 entries with it. */ 3888 3889 /* Model timing data for `crisv10'. */ 3890 3891 static const INSN_TIMING crisv10_timing[] = { 3892 { CRISV10F_INSN_X_INVALID, 0, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 3893 { CRISV10F_INSN_X_AFTER, 0, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 3894 { CRISV10F_INSN_X_BEFORE, 0, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 3895 { CRISV10F_INSN_X_CTI_CHAIN, 0, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 3896 { CRISV10F_INSN_X_CHAIN, 0, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 3897 { CRISV10F_INSN_X_BEGIN, 0, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 3898 { CRISV10F_INSN_NOP, model_crisv10_nop, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 3899 { CRISV10F_INSN_MOVE_B_R, model_crisv10_move_b_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 3900 { CRISV10F_INSN_MOVE_W_R, model_crisv10_move_w_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 3901 { CRISV10F_INSN_MOVE_D_R, model_crisv10_move_d_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 3902 { CRISV10F_INSN_MOVEPCR, model_crisv10_movepcr, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 3903 { CRISV10F_INSN_MOVEQ, model_crisv10_moveq, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 3904 { CRISV10F_INSN_MOVS_B_R, model_crisv10_movs_b_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 3905 { CRISV10F_INSN_MOVS_W_R, model_crisv10_movs_w_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 3906 { CRISV10F_INSN_MOVU_B_R, model_crisv10_movu_b_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 3907 { CRISV10F_INSN_MOVU_W_R, model_crisv10_movu_w_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 3908 { CRISV10F_INSN_MOVECBR, model_crisv10_movecbr, { { (int) UNIT_CRISV10_U_CONST16, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 3909 { CRISV10F_INSN_MOVECWR, model_crisv10_movecwr, { { (int) UNIT_CRISV10_U_CONST16, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 3910 { CRISV10F_INSN_MOVECDR, model_crisv10_movecdr, { { (int) UNIT_CRISV10_U_CONST32, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 3911 { CRISV10F_INSN_MOVSCBR, model_crisv10_movscbr, { { (int) UNIT_CRISV10_U_CONST16, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 3912 { CRISV10F_INSN_MOVSCWR, model_crisv10_movscwr, { { (int) UNIT_CRISV10_U_CONST16, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 3913 { CRISV10F_INSN_MOVUCBR, model_crisv10_movucbr, { { (int) UNIT_CRISV10_U_CONST16, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 3914 { CRISV10F_INSN_MOVUCWR, model_crisv10_movucwr, { { (int) UNIT_CRISV10_U_CONST16, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 3915 { CRISV10F_INSN_ADDQ, model_crisv10_addq, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 3916 { CRISV10F_INSN_SUBQ, model_crisv10_subq, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 3917 { CRISV10F_INSN_CMP_R_B_R, model_crisv10_cmp_r_b_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 3918 { CRISV10F_INSN_CMP_R_W_R, model_crisv10_cmp_r_w_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 3919 { CRISV10F_INSN_CMP_R_D_R, model_crisv10_cmp_r_d_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 3920 { CRISV10F_INSN_CMP_M_B_M, model_crisv10_cmp_m_b_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 3921 { CRISV10F_INSN_CMP_M_W_M, model_crisv10_cmp_m_w_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 3922 { CRISV10F_INSN_CMP_M_D_M, model_crisv10_cmp_m_d_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 3923 { CRISV10F_INSN_CMPCBR, model_crisv10_cmpcbr, { { (int) UNIT_CRISV10_U_CONST16, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 3924 { CRISV10F_INSN_CMPCWR, model_crisv10_cmpcwr, { { (int) UNIT_CRISV10_U_CONST16, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 3925 { CRISV10F_INSN_CMPCDR, model_crisv10_cmpcdr, { { (int) UNIT_CRISV10_U_CONST32, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 3926 { CRISV10F_INSN_CMPQ, model_crisv10_cmpq, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 3927 { CRISV10F_INSN_CMPS_M_B_M, model_crisv10_cmps_m_b_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 3928 { CRISV10F_INSN_CMPS_M_W_M, model_crisv10_cmps_m_w_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 3929 { CRISV10F_INSN_CMPSCBR, model_crisv10_cmpscbr, { { (int) UNIT_CRISV10_U_CONST16, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 3930 { CRISV10F_INSN_CMPSCWR, model_crisv10_cmpscwr, { { (int) UNIT_CRISV10_U_CONST16, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 3931 { CRISV10F_INSN_CMPU_M_B_M, model_crisv10_cmpu_m_b_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 3932 { CRISV10F_INSN_CMPU_M_W_M, model_crisv10_cmpu_m_w_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 3933 { CRISV10F_INSN_CMPUCBR, model_crisv10_cmpucbr, { { (int) UNIT_CRISV10_U_CONST16, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 3934 { CRISV10F_INSN_CMPUCWR, model_crisv10_cmpucwr, { { (int) UNIT_CRISV10_U_CONST16, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 3935 { CRISV10F_INSN_MOVE_M_B_M, model_crisv10_move_m_b_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 3936 { CRISV10F_INSN_MOVE_M_W_M, model_crisv10_move_m_w_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 3937 { CRISV10F_INSN_MOVE_M_D_M, model_crisv10_move_m_d_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 3938 { CRISV10F_INSN_MOVS_M_B_M, model_crisv10_movs_m_b_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 3939 { CRISV10F_INSN_MOVS_M_W_M, model_crisv10_movs_m_w_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 3940 { CRISV10F_INSN_MOVU_M_B_M, model_crisv10_movu_m_b_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 3941 { CRISV10F_INSN_MOVU_M_W_M, model_crisv10_movu_m_w_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 3942 { CRISV10F_INSN_MOVE_R_SPRV10, model_crisv10_move_r_sprv10, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 3943 { CRISV10F_INSN_MOVE_SPR_RV10, model_crisv10_move_spr_rv10, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 3944 { CRISV10F_INSN_RET_TYPE, model_crisv10_ret_type, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 3945 { CRISV10F_INSN_MOVE_M_SPRV10, model_crisv10_move_m_sprv10, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 3946 { CRISV10F_INSN_MOVE_C_SPRV10_P5, model_crisv10_move_c_sprv10_p5, { { (int) UNIT_CRISV10_U_CONST16, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 3947 { CRISV10F_INSN_MOVE_C_SPRV10_P9, model_crisv10_move_c_sprv10_p9, { { (int) UNIT_CRISV10_U_CONST32, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 3948 { CRISV10F_INSN_MOVE_C_SPRV10_P10, model_crisv10_move_c_sprv10_p10, { { (int) UNIT_CRISV10_U_CONST32, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 3949 { CRISV10F_INSN_MOVE_C_SPRV10_P11, model_crisv10_move_c_sprv10_p11, { { (int) UNIT_CRISV10_U_CONST32, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 3950 { CRISV10F_INSN_MOVE_C_SPRV10_P12, model_crisv10_move_c_sprv10_p12, { { (int) UNIT_CRISV10_U_CONST32, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 3951 { CRISV10F_INSN_MOVE_C_SPRV10_P13, model_crisv10_move_c_sprv10_p13, { { (int) UNIT_CRISV10_U_CONST32, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 3952 { CRISV10F_INSN_MOVE_C_SPRV10_P7, model_crisv10_move_c_sprv10_p7, { { (int) UNIT_CRISV10_U_CONST32, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 3953 { CRISV10F_INSN_MOVE_C_SPRV10_P14, model_crisv10_move_c_sprv10_p14, { { (int) UNIT_CRISV10_U_CONST32, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 3954 { CRISV10F_INSN_MOVE_C_SPRV10_P15, model_crisv10_move_c_sprv10_p15, { { (int) UNIT_CRISV10_U_CONST32, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 3955 { CRISV10F_INSN_MOVE_SPR_MV10, model_crisv10_move_spr_mv10, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 3956 { CRISV10F_INSN_SBFS, model_crisv10_sbfs, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 3957 { CRISV10F_INSN_MOVEM_R_M, model_crisv10_movem_r_m, { { (int) UNIT_CRISV10_U_MOVEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 3958 { CRISV10F_INSN_MOVEM_M_R, model_crisv10_movem_m_r, { { (int) UNIT_CRISV10_U_MOVEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 3959 { CRISV10F_INSN_MOVEM_M_PC, model_crisv10_movem_m_pc, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 3960 { CRISV10F_INSN_ADD_B_R, model_crisv10_add_b_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 3961 { CRISV10F_INSN_ADD_W_R, model_crisv10_add_w_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 3962 { CRISV10F_INSN_ADD_D_R, model_crisv10_add_d_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 3963 { CRISV10F_INSN_ADD_M_B_M, model_crisv10_add_m_b_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 3964 { CRISV10F_INSN_ADD_M_W_M, model_crisv10_add_m_w_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 3965 { CRISV10F_INSN_ADD_M_D_M, model_crisv10_add_m_d_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 3966 { CRISV10F_INSN_ADDCBR, model_crisv10_addcbr, { { (int) UNIT_CRISV10_U_CONST16, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 3967 { CRISV10F_INSN_ADDCWR, model_crisv10_addcwr, { { (int) UNIT_CRISV10_U_CONST16, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 3968 { CRISV10F_INSN_ADDCDR, model_crisv10_addcdr, { { (int) UNIT_CRISV10_U_CONST32, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 3969 { CRISV10F_INSN_ADDCPC, model_crisv10_addcpc, { { (int) UNIT_CRISV10_U_CONST32, 1, 1 }, { (int) UNIT_CRISV10_U_STALL, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 3970 { CRISV10F_INSN_ADDS_B_R, model_crisv10_adds_b_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 3971 { CRISV10F_INSN_ADDS_W_R, model_crisv10_adds_w_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 3972 { CRISV10F_INSN_ADDS_M_B_M, model_crisv10_adds_m_b_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 3973 { CRISV10F_INSN_ADDS_M_W_M, model_crisv10_adds_m_w_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 3974 { CRISV10F_INSN_ADDSCBR, model_crisv10_addscbr, { { (int) UNIT_CRISV10_U_CONST16, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 3975 { CRISV10F_INSN_ADDSCWR, model_crisv10_addscwr, { { (int) UNIT_CRISV10_U_CONST16, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 3976 { CRISV10F_INSN_ADDSPCPC, model_crisv10_addspcpc, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_STALL, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 3977 { CRISV10F_INSN_ADDU_B_R, model_crisv10_addu_b_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 3978 { CRISV10F_INSN_ADDU_W_R, model_crisv10_addu_w_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 3979 { CRISV10F_INSN_ADDU_M_B_M, model_crisv10_addu_m_b_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 3980 { CRISV10F_INSN_ADDU_M_W_M, model_crisv10_addu_m_w_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 3981 { CRISV10F_INSN_ADDUCBR, model_crisv10_adducbr, { { (int) UNIT_CRISV10_U_CONST16, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 3982 { CRISV10F_INSN_ADDUCWR, model_crisv10_adducwr, { { (int) UNIT_CRISV10_U_CONST16, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 3983 { CRISV10F_INSN_SUB_B_R, model_crisv10_sub_b_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 3984 { CRISV10F_INSN_SUB_W_R, model_crisv10_sub_w_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 3985 { CRISV10F_INSN_SUB_D_R, model_crisv10_sub_d_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 3986 { CRISV10F_INSN_SUB_M_B_M, model_crisv10_sub_m_b_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 3987 { CRISV10F_INSN_SUB_M_W_M, model_crisv10_sub_m_w_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 3988 { CRISV10F_INSN_SUB_M_D_M, model_crisv10_sub_m_d_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 3989 { CRISV10F_INSN_SUBCBR, model_crisv10_subcbr, { { (int) UNIT_CRISV10_U_CONST16, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 3990 { CRISV10F_INSN_SUBCWR, model_crisv10_subcwr, { { (int) UNIT_CRISV10_U_CONST16, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 3991 { CRISV10F_INSN_SUBCDR, model_crisv10_subcdr, { { (int) UNIT_CRISV10_U_CONST32, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 3992 { CRISV10F_INSN_SUBS_B_R, model_crisv10_subs_b_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 3993 { CRISV10F_INSN_SUBS_W_R, model_crisv10_subs_w_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 3994 { CRISV10F_INSN_SUBS_M_B_M, model_crisv10_subs_m_b_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 3995 { CRISV10F_INSN_SUBS_M_W_M, model_crisv10_subs_m_w_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 3996 { CRISV10F_INSN_SUBSCBR, model_crisv10_subscbr, { { (int) UNIT_CRISV10_U_CONST16, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 3997 { CRISV10F_INSN_SUBSCWR, model_crisv10_subscwr, { { (int) UNIT_CRISV10_U_CONST16, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 3998 { CRISV10F_INSN_SUBU_B_R, model_crisv10_subu_b_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 3999 { CRISV10F_INSN_SUBU_W_R, model_crisv10_subu_w_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 4000 { CRISV10F_INSN_SUBU_M_B_M, model_crisv10_subu_m_b_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 4001 { CRISV10F_INSN_SUBU_M_W_M, model_crisv10_subu_m_w_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 4002 { CRISV10F_INSN_SUBUCBR, model_crisv10_subucbr, { { (int) UNIT_CRISV10_U_CONST16, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 4003 { CRISV10F_INSN_SUBUCWR, model_crisv10_subucwr, { { (int) UNIT_CRISV10_U_CONST16, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 4004 { CRISV10F_INSN_ADDI_B_R, model_crisv10_addi_b_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 4005 { CRISV10F_INSN_ADDI_W_R, model_crisv10_addi_w_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 4006 { CRISV10F_INSN_ADDI_D_R, model_crisv10_addi_d_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 4007 { CRISV10F_INSN_NEG_B_R, model_crisv10_neg_b_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 4008 { CRISV10F_INSN_NEG_W_R, model_crisv10_neg_w_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 4009 { CRISV10F_INSN_NEG_D_R, model_crisv10_neg_d_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 4010 { CRISV10F_INSN_TEST_M_B_M, model_crisv10_test_m_b_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 4011 { CRISV10F_INSN_TEST_M_W_M, model_crisv10_test_m_w_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 4012 { CRISV10F_INSN_TEST_M_D_M, model_crisv10_test_m_d_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 4013 { CRISV10F_INSN_MOVE_R_M_B_M, model_crisv10_move_r_m_b_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 4014 { CRISV10F_INSN_MOVE_R_M_W_M, model_crisv10_move_r_m_w_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 4015 { CRISV10F_INSN_MOVE_R_M_D_M, model_crisv10_move_r_m_d_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 4016 { CRISV10F_INSN_MULS_B, model_crisv10_muls_b, { { (int) UNIT_CRISV10_U_MULTIPLY, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 4017 { CRISV10F_INSN_MULS_W, model_crisv10_muls_w, { { (int) UNIT_CRISV10_U_MULTIPLY, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 4018 { CRISV10F_INSN_MULS_D, model_crisv10_muls_d, { { (int) UNIT_CRISV10_U_MULTIPLY, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 4019 { CRISV10F_INSN_MULU_B, model_crisv10_mulu_b, { { (int) UNIT_CRISV10_U_MULTIPLY, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 4020 { CRISV10F_INSN_MULU_W, model_crisv10_mulu_w, { { (int) UNIT_CRISV10_U_MULTIPLY, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 4021 { CRISV10F_INSN_MULU_D, model_crisv10_mulu_d, { { (int) UNIT_CRISV10_U_MULTIPLY, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 4022 { CRISV10F_INSN_MSTEP, model_crisv10_mstep, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 4023 { CRISV10F_INSN_DSTEP, model_crisv10_dstep, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 4024 { CRISV10F_INSN_ABS, model_crisv10_abs, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 4025 { CRISV10F_INSN_AND_B_R, model_crisv10_and_b_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 4026 { CRISV10F_INSN_AND_W_R, model_crisv10_and_w_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 4027 { CRISV10F_INSN_AND_D_R, model_crisv10_and_d_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 4028 { CRISV10F_INSN_AND_M_B_M, model_crisv10_and_m_b_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 4029 { CRISV10F_INSN_AND_M_W_M, model_crisv10_and_m_w_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 4030 { CRISV10F_INSN_AND_M_D_M, model_crisv10_and_m_d_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 4031 { CRISV10F_INSN_ANDCBR, model_crisv10_andcbr, { { (int) UNIT_CRISV10_U_CONST16, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 4032 { CRISV10F_INSN_ANDCWR, model_crisv10_andcwr, { { (int) UNIT_CRISV10_U_CONST16, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 4033 { CRISV10F_INSN_ANDCDR, model_crisv10_andcdr, { { (int) UNIT_CRISV10_U_CONST32, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 4034 { CRISV10F_INSN_ANDQ, model_crisv10_andq, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 4035 { CRISV10F_INSN_ORR_B_R, model_crisv10_orr_b_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 4036 { CRISV10F_INSN_ORR_W_R, model_crisv10_orr_w_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 4037 { CRISV10F_INSN_ORR_D_R, model_crisv10_orr_d_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 4038 { CRISV10F_INSN_OR_M_B_M, model_crisv10_or_m_b_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 4039 { CRISV10F_INSN_OR_M_W_M, model_crisv10_or_m_w_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 4040 { CRISV10F_INSN_OR_M_D_M, model_crisv10_or_m_d_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 4041 { CRISV10F_INSN_ORCBR, model_crisv10_orcbr, { { (int) UNIT_CRISV10_U_CONST16, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 4042 { CRISV10F_INSN_ORCWR, model_crisv10_orcwr, { { (int) UNIT_CRISV10_U_CONST16, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 4043 { CRISV10F_INSN_ORCDR, model_crisv10_orcdr, { { (int) UNIT_CRISV10_U_CONST32, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 4044 { CRISV10F_INSN_ORQ, model_crisv10_orq, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 4045 { CRISV10F_INSN_XOR, model_crisv10_xor, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 4046 { CRISV10F_INSN_SWAP, model_crisv10_swap, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 4047 { CRISV10F_INSN_ASRR_B_R, model_crisv10_asrr_b_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 4048 { CRISV10F_INSN_ASRR_W_R, model_crisv10_asrr_w_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 4049 { CRISV10F_INSN_ASRR_D_R, model_crisv10_asrr_d_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 4050 { CRISV10F_INSN_ASRQ, model_crisv10_asrq, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 4051 { CRISV10F_INSN_LSRR_B_R, model_crisv10_lsrr_b_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 4052 { CRISV10F_INSN_LSRR_W_R, model_crisv10_lsrr_w_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 4053 { CRISV10F_INSN_LSRR_D_R, model_crisv10_lsrr_d_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 4054 { CRISV10F_INSN_LSRQ, model_crisv10_lsrq, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 4055 { CRISV10F_INSN_LSLR_B_R, model_crisv10_lslr_b_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 4056 { CRISV10F_INSN_LSLR_W_R, model_crisv10_lslr_w_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 4057 { CRISV10F_INSN_LSLR_D_R, model_crisv10_lslr_d_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 4058 { CRISV10F_INSN_LSLQ, model_crisv10_lslq, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 4059 { CRISV10F_INSN_BTST, model_crisv10_btst, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 4060 { CRISV10F_INSN_BTSTQ, model_crisv10_btstq, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 4061 { CRISV10F_INSN_SETF, model_crisv10_setf, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 4062 { CRISV10F_INSN_CLEARF, model_crisv10_clearf, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 4063 { CRISV10F_INSN_BCC_B, model_crisv10_bcc_b, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 4064 { CRISV10F_INSN_BA_B, model_crisv10_ba_b, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 4065 { CRISV10F_INSN_BCC_W, model_crisv10_bcc_w, { { (int) UNIT_CRISV10_U_CONST16, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 4066 { CRISV10F_INSN_BA_W, model_crisv10_ba_w, { { (int) UNIT_CRISV10_U_CONST16, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 4067 { CRISV10F_INSN_JUMP_R, model_crisv10_jump_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 4068 { CRISV10F_INSN_JUMP_M, model_crisv10_jump_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 4069 { CRISV10F_INSN_JUMP_C, model_crisv10_jump_c, { { (int) UNIT_CRISV10_U_CONST32, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 4070 { CRISV10F_INSN_BREAK, model_crisv10_break, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 4071 { CRISV10F_INSN_BOUND_R_B_R, model_crisv10_bound_r_b_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 4072 { CRISV10F_INSN_BOUND_R_W_R, model_crisv10_bound_r_w_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 4073 { CRISV10F_INSN_BOUND_R_D_R, model_crisv10_bound_r_d_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 4074 { CRISV10F_INSN_BOUND_M_B_M, model_crisv10_bound_m_b_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 4075 { CRISV10F_INSN_BOUND_M_W_M, model_crisv10_bound_m_w_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 4076 { CRISV10F_INSN_BOUND_M_D_M, model_crisv10_bound_m_d_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 4077 { CRISV10F_INSN_BOUND_CB, model_crisv10_bound_cb, { { (int) UNIT_CRISV10_U_CONST16, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 4078 { CRISV10F_INSN_BOUND_CW, model_crisv10_bound_cw, { { (int) UNIT_CRISV10_U_CONST16, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 4079 { CRISV10F_INSN_BOUND_CD, model_crisv10_bound_cd, { { (int) UNIT_CRISV10_U_CONST32, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 4080 { CRISV10F_INSN_SCC, model_crisv10_scc, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 4081 { CRISV10F_INSN_LZ, model_crisv10_lz, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 4082 { CRISV10F_INSN_ADDOQ, model_crisv10_addoq, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 4083 { CRISV10F_INSN_BDAPQPC, model_crisv10_bdapqpc, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 4084 { CRISV10F_INSN_BDAP_32_PC, model_crisv10_bdap_32_pc, { { (int) UNIT_CRISV10_U_CONST32, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 4085 { CRISV10F_INSN_MOVE_M_PCPLUS_P0, model_crisv10_move_m_pcplus_p0, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 4086 { CRISV10F_INSN_MOVE_M_SPPLUS_P8, model_crisv10_move_m_spplus_p8, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 4087 { CRISV10F_INSN_ADDO_M_B_M, model_crisv10_addo_m_b_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 4088 { CRISV10F_INSN_ADDO_M_W_M, model_crisv10_addo_m_w_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 4089 { CRISV10F_INSN_ADDO_M_D_M, model_crisv10_addo_m_d_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 4090 { CRISV10F_INSN_ADDO_CB, model_crisv10_addo_cb, { { (int) UNIT_CRISV10_U_CONST16, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 4091 { CRISV10F_INSN_ADDO_CW, model_crisv10_addo_cw, { { (int) UNIT_CRISV10_U_CONST16, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 4092 { CRISV10F_INSN_ADDO_CD, model_crisv10_addo_cd, { { (int) UNIT_CRISV10_U_CONST32, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 4093 { CRISV10F_INSN_DIP_M, model_crisv10_dip_m, { { (int) UNIT_CRISV10_U_MEM, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 4094 { CRISV10F_INSN_DIP_C, model_crisv10_dip_c, { { (int) UNIT_CRISV10_U_CONST32, 1, 1 }, { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 4095 { CRISV10F_INSN_ADDI_ACR_B_R, model_crisv10_addi_acr_b_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 4096 { CRISV10F_INSN_ADDI_ACR_W_R, model_crisv10_addi_acr_w_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 4097 { CRISV10F_INSN_ADDI_ACR_D_R, model_crisv10_addi_acr_d_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 4098 { CRISV10F_INSN_BIAP_PC_B_R, model_crisv10_biap_pc_b_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 4099 { CRISV10F_INSN_BIAP_PC_W_R, model_crisv10_biap_pc_w_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 4100 { CRISV10F_INSN_BIAP_PC_D_R, model_crisv10_biap_pc_d_r, { { (int) UNIT_CRISV10_U_EXEC, 1, 1 } } }, 4101 }; 4102 4103 #endif /* WITH_PROFILE_MODEL_P */ 4104 4105 static void 4106 crisv10_model_init (SIM_CPU *cpu) 4107 { 4108 CPU_MODEL_DATA (cpu) = (void *) zalloc (sizeof (MODEL_CRISV10_DATA)); 4109 } 4110 4111 #if WITH_PROFILE_MODEL_P 4112 #define TIMING_DATA(td) td 4113 #else 4114 #define TIMING_DATA(td) 0 4115 #endif 4116 4117 static const SIM_MODEL crisv10_models[] = 4118 { 4119 { "crisv10", & crisv10_mach, MODEL_CRISV10, TIMING_DATA (& crisv10_timing[0]), crisv10_model_init }, 4120 { 0 } 4121 }; 4122 4123 /* The properties of this cpu's implementation. */ 4124 4125 static const SIM_MACH_IMP_PROPERTIES crisv10f_imp_properties = 4126 { 4127 sizeof (SIM_CPU), 4128 #if WITH_SCACHE 4129 sizeof (SCACHE) 4130 #else 4131 0 4132 #endif 4133 }; 4134 4135 4136 static void 4137 crisv10f_prepare_run (SIM_CPU *cpu) 4138 { 4139 if (CPU_IDESC (cpu) == NULL) 4140 crisv10f_init_idesc_table (cpu); 4141 } 4142 4143 static const CGEN_INSN * 4144 crisv10f_get_idata (SIM_CPU *cpu, int inum) 4145 { 4146 return CPU_IDESC (cpu) [inum].idata; 4147 } 4148 4149 static void 4150 crisv10_init_cpu (SIM_CPU *cpu) 4151 { 4152 CPU_REG_FETCH (cpu) = crisv10f_fetch_register; 4153 CPU_REG_STORE (cpu) = crisv10f_store_register; 4154 CPU_PC_FETCH (cpu) = crisv10f_h_pc_get; 4155 CPU_PC_STORE (cpu) = crisv10f_h_pc_set; 4156 CPU_GET_IDATA (cpu) = crisv10f_get_idata; 4157 CPU_MAX_INSNS (cpu) = CRISV10F_INSN__MAX; 4158 CPU_INSN_NAME (cpu) = cgen_insn_name; 4159 CPU_FULL_ENGINE_FN (cpu) = crisv10f_engine_run_full; 4160 #if WITH_FAST 4161 CPU_FAST_ENGINE_FN (cpu) = crisv10f_engine_run_fast; 4162 #else 4163 CPU_FAST_ENGINE_FN (cpu) = crisv10f_engine_run_full; 4164 #endif 4165 } 4166 4167 const SIM_MACH crisv10_mach = 4168 { 4169 "crisv10", "cris", MACH_CRISV10, 4170 32, 32, & crisv10_models[0], & crisv10f_imp_properties, 4171 crisv10_init_cpu, 4172 crisv10f_prepare_run 4173 }; 4174 4175