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