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