| /* Simulator model support for crisv10f. |
| |
| THIS FILE IS MACHINE GENERATED WITH CGEN. |
| |
| Copyright 1996-2021 Free Software Foundation, Inc. |
| |
| This file is part of the GNU simulators. |
| |
| This file is free software; you can redistribute it and/or modify |
| it under the terms of the GNU General Public License as published by |
| the Free Software Foundation; either version 3, or (at your option) |
| any later version. |
| |
| It is distributed in the hope that it will be useful, but WITHOUT |
| ANY WARRANTY; without even the implied warranty of MERCHANTABILITY |
| or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public |
| License for more details. |
| |
| You should have received a copy of the GNU General Public License along |
| with this program; if not, see <http://www.gnu.org/licenses/>. |
| |
| */ |
| |
| #define WANT_CPU crisv10f |
| #define WANT_CPU_CRISV10F |
| |
| #include "sim-main.h" |
| |
| /* The profiling data is recorded here, but is accessed via the profiling |
| mechanism. After all, this is information for profiling. */ |
| |
| #if WITH_PROFILE_MODEL_P |
| |
| /* Model handlers for each insn. */ |
| |
| static int |
| model_crisv10_nop (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_empty.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_move_b_r (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_add_b_r.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_move_w_r (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_add_b_r.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_move_d_r (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_add_b_r.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_movepcr (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_moveq.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_moveq (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_moveq.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_movs_b_r (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_muls_b.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_movs_w_r (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_muls_b.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_movu_b_r (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_muls_b.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_movu_w_r (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_muls_b.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_movecbr (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_addcbr.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced); |
| } |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_movecwr (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_addcwr.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced); |
| } |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_movecdr (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_bound_cd.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_const32 (current_cpu, idesc, 0, referenced); |
| } |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_movscbr (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_bound_cb.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced); |
| } |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_movscwr (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_bound_cw.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced); |
| } |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_movucbr (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_bound_cb.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced); |
| } |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_movucwr (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_bound_cw.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced); |
| } |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_addq (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_addq.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_subq (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_addq.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_cmp_r_b_r (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_add_b_r.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_cmp_r_w_r (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_add_b_r.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_cmp_r_d_r (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_add_b_r.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_cmp_m_b_m (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced); |
| } |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_cmp_m_w_m (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced); |
| } |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_cmp_m_d_m (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced); |
| } |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_cmpcbr (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_bound_cb.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced); |
| } |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_cmpcwr (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_bound_cw.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced); |
| } |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_cmpcdr (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_bound_cd.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_const32 (current_cpu, idesc, 0, referenced); |
| } |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_cmpq (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_andq.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_cmps_m_b_m (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced); |
| } |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_cmps_m_w_m (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced); |
| } |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_cmpscbr (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_bound_cb.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced); |
| } |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_cmpscwr (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_bound_cw.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced); |
| } |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_cmpu_m_b_m (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced); |
| } |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_cmpu_m_w_m (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced); |
| } |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_cmpucbr (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_bound_cb.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced); |
| } |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_cmpucwr (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_bound_cw.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced); |
| } |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_move_m_b_m (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_add_m_b_m.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced); |
| } |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_move_m_w_m (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_add_m_b_m.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced); |
| } |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_move_m_d_m (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_add_m_b_m.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced); |
| } |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_movs_m_b_m (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced); |
| } |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_movs_m_w_m (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced); |
| } |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_movu_m_b_m (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced); |
| } |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_movu_m_w_m (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced); |
| } |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_move_r_sprv10 (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_move_m_sprv10.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_move_spr_rv10 (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_move_spr_rv10.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_ret_type (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_move_spr_rv10.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_move_m_sprv10 (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_move_m_sprv10.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced); |
| } |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_move_c_sprv10_p5 (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_move_c_sprv10_p5.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced); |
| } |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_move_c_sprv10_p9 (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_move_c_sprv10_p9.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_const32 (current_cpu, idesc, 0, referenced); |
| } |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_move_c_sprv10_p10 (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_move_c_sprv10_p9.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_const32 (current_cpu, idesc, 0, referenced); |
| } |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_move_c_sprv10_p11 (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_move_c_sprv10_p9.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_const32 (current_cpu, idesc, 0, referenced); |
| } |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_move_c_sprv10_p12 (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_move_c_sprv10_p9.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_const32 (current_cpu, idesc, 0, referenced); |
| } |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_move_c_sprv10_p13 (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_move_c_sprv10_p9.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_const32 (current_cpu, idesc, 0, referenced); |
| } |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_move_c_sprv10_p7 (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_move_c_sprv10_p9.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_const32 (current_cpu, idesc, 0, referenced); |
| } |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_move_c_sprv10_p14 (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_move_c_sprv10_p9.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_const32 (current_cpu, idesc, 0, referenced); |
| } |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_move_c_sprv10_p15 (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_move_c_sprv10_p9.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_const32 (current_cpu, idesc, 0, referenced); |
| } |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_move_spr_mv10 (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_move_spr_mv10.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced); |
| } |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_sbfs (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_empty.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_movem_r_m (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_movem_r_m.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| INT in_Rd = -1; |
| in_Rd = FLD (in_Rd); |
| referenced |= 1 << 0; |
| cycles += crisv10f_model_crisv10_u_movem (current_cpu, idesc, 0, referenced, in_Rd); |
| } |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_movem_m_r (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_movem_m_r.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| INT in_Rd = -1; |
| in_Rd = FLD (in_Rd); |
| referenced |= 1 << 0; |
| cycles += crisv10f_model_crisv10_u_movem (current_cpu, idesc, 0, referenced, in_Rd); |
| } |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_movem_m_pc (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_movem_m_r.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced); |
| } |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_add_b_r (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_add_b_r.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_add_w_r (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_add_b_r.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_add_d_r (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_add_b_r.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_add_m_b_m (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_add_m_b_m.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced); |
| } |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_add_m_w_m (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_add_m_b_m.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced); |
| } |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_add_m_d_m (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_add_m_b_m.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced); |
| } |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_addcbr (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_addcbr.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced); |
| } |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_addcwr (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_addcwr.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced); |
| } |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_addcdr (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_addcdr.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_const32 (current_cpu, idesc, 0, referenced); |
| } |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_addcpc (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_move_c_sprv10_p9.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_const32 (current_cpu, idesc, 0, referenced); |
| } |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_stall (current_cpu, idesc, 1, referenced); |
| } |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 2, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_adds_b_r (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_add_b_r.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_adds_w_r (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_add_b_r.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_adds_m_b_m (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_add_m_b_m.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced); |
| } |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_adds_m_w_m (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_add_m_b_m.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced); |
| } |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_addscbr (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_addcbr.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced); |
| } |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_addscwr (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_addcwr.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced); |
| } |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_addspcpc (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_empty.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced); |
| } |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_stall (current_cpu, idesc, 1, referenced); |
| } |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 2, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_addu_b_r (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_add_b_r.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_addu_w_r (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_add_b_r.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_addu_m_b_m (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_add_m_b_m.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced); |
| } |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_addu_m_w_m (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_add_m_b_m.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced); |
| } |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_adducbr (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_addcbr.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced); |
| } |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_adducwr (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_addcwr.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced); |
| } |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_sub_b_r (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_add_b_r.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_sub_w_r (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_add_b_r.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_sub_d_r (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_add_b_r.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_sub_m_b_m (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_add_m_b_m.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced); |
| } |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_sub_m_w_m (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_add_m_b_m.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced); |
| } |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_sub_m_d_m (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_add_m_b_m.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced); |
| } |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_subcbr (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_addcbr.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced); |
| } |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_subcwr (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_addcwr.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced); |
| } |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_subcdr (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_addcdr.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_const32 (current_cpu, idesc, 0, referenced); |
| } |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_subs_b_r (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_add_b_r.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_subs_w_r (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_add_b_r.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_subs_m_b_m (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_add_m_b_m.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced); |
| } |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_subs_m_w_m (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_add_m_b_m.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced); |
| } |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_subscbr (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_addcbr.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced); |
| } |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_subscwr (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_addcwr.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced); |
| } |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_subu_b_r (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_add_b_r.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_subu_w_r (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_add_b_r.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_subu_m_b_m (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_add_m_b_m.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced); |
| } |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_subu_m_w_m (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_add_m_b_m.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced); |
| } |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_subucbr (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_addcbr.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced); |
| } |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_subucwr (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_addcwr.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced); |
| } |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_addi_b_r (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_addi_w_r (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_addi_d_r (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_neg_b_r (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_add_b_r.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_neg_w_r (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_add_b_r.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_neg_d_r (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_add_b_r.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_test_m_b_m (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_move_spr_mv10.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced); |
| } |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_test_m_w_m (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_move_spr_mv10.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced); |
| } |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_test_m_d_m (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_move_spr_mv10.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced); |
| } |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_move_r_m_b_m (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced); |
| } |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_move_r_m_w_m (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced); |
| } |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_move_r_m_d_m (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_bound_m_b_m.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced); |
| } |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_muls_b (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_muls_b.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_multiply (current_cpu, idesc, 0, referenced); |
| } |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_muls_w (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_muls_b.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_multiply (current_cpu, idesc, 0, referenced); |
| } |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_muls_d (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_muls_b.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_multiply (current_cpu, idesc, 0, referenced); |
| } |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_mulu_b (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_muls_b.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_multiply (current_cpu, idesc, 0, referenced); |
| } |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_mulu_w (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_muls_b.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_multiply (current_cpu, idesc, 0, referenced); |
| } |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_mulu_d (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_muls_b.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_multiply (current_cpu, idesc, 0, referenced); |
| } |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_mstep (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_muls_b.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_dstep (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_muls_b.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_abs (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_muls_b.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_and_b_r (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_add_b_r.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_and_w_r (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_add_b_r.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_and_d_r (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_add_b_r.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_and_m_b_m (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_add_m_b_m.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced); |
| } |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_and_m_w_m (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_add_m_b_m.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced); |
| } |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_and_m_d_m (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_add_m_b_m.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced); |
| } |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_andcbr (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_addcbr.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced); |
| } |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_andcwr (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_addcwr.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced); |
| } |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_andcdr (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_addcdr.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_const32 (current_cpu, idesc, 0, referenced); |
| } |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_andq (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_andq.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_orr_b_r (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_add_b_r.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_orr_w_r (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_add_b_r.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_orr_d_r (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_add_b_r.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 0, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_or_m_b_m (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_add_m_b_m.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced); |
| } |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_or_m_w_m (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_add_m_b_m.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced); |
| } |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_or_m_d_m (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_add_m_b_m.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_mem (current_cpu, idesc, 0, referenced); |
| } |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_orcbr (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_addcbr.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced); |
| } |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_orcwr (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_addcwr.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_const16 (current_cpu, idesc, 0, referenced); |
| } |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_exec (current_cpu, idesc, 1, referenced); |
| } |
| return cycles; |
| #undef FLD |
| } |
| |
| static int |
| model_crisv10_orcdr (SIM_CPU *current_cpu, void *sem_arg) |
| { |
| #define FLD(f) abuf->fields.sfmt_addcdr.f |
| const ARGBUF * UNUSED abuf = SEM_ARGBUF ((SEM_ARG) sem_arg); |
| const IDESC * UNUSED idesc = abuf->idesc; |
| int cycles = 0; |
| { |
| int referenced = 0; |
| int UNUSED insn_referenced = abuf->written; |
| cycles += crisv10f_model_crisv10_u_const32 (current_cpu, idesc, |