1 // OBSOLETE /* CPU family header for fr30bf. 2 // OBSOLETE 3 // OBSOLETE THIS FILE IS MACHINE GENERATED WITH CGEN. 4 // OBSOLETE 5 // OBSOLETE Copyright 1996, 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc. 6 // OBSOLETE 7 // OBSOLETE This file is part of the GNU simulators. 8 // OBSOLETE 9 // OBSOLETE This program is free software; you can redistribute it and/or modify 10 // OBSOLETE it under the terms of the GNU General Public License as published by 11 // OBSOLETE the Free Software Foundation; either version 2, or (at your option) 12 // OBSOLETE any later version. 13 // OBSOLETE 14 // OBSOLETE This program is distributed in the hope that it will be useful, 15 // OBSOLETE but WITHOUT ANY WARRANTY; without even the implied warranty of 16 // OBSOLETE MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 // OBSOLETE GNU General Public License for more details. 18 // OBSOLETE 19 // OBSOLETE You should have received a copy of the GNU General Public License along 20 // OBSOLETE with this program; if not, write to the Free Software Foundation, Inc., 21 // OBSOLETE 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 22 // OBSOLETE 23 // OBSOLETE */ 24 // OBSOLETE 25 // OBSOLETE #ifndef CPU_FR30BF_H 26 // OBSOLETE #define CPU_FR30BF_H 27 // OBSOLETE 28 // OBSOLETE /* Maximum number of instructions that are fetched at a time. 29 // OBSOLETE This is for LIW type instructions sets (e.g. m32r). */ 30 // OBSOLETE #define MAX_LIW_INSNS 1 31 // OBSOLETE 32 // OBSOLETE /* Maximum number of instructions that can be executed in parallel. */ 33 // OBSOLETE #define MAX_PARALLEL_INSNS 1 34 // OBSOLETE 35 // OBSOLETE /* CPU state information. */ 36 // OBSOLETE typedef struct { 37 // OBSOLETE /* Hardware elements. */ 38 // OBSOLETE struct { 39 // OBSOLETE /* program counter */ 40 // OBSOLETE USI h_pc; 41 // OBSOLETE #define GET_H_PC() CPU (h_pc) 42 // OBSOLETE #define SET_H_PC(x) (CPU (h_pc) = (x)) 43 // OBSOLETE /* general registers */ 44 // OBSOLETE SI h_gr[16]; 45 // OBSOLETE #define GET_H_GR(a1) CPU (h_gr)[a1] 46 // OBSOLETE #define SET_H_GR(a1, x) (CPU (h_gr)[a1] = (x)) 47 // OBSOLETE /* coprocessor registers */ 48 // OBSOLETE SI h_cr[16]; 49 // OBSOLETE #define GET_H_CR(a1) CPU (h_cr)[a1] 50 // OBSOLETE #define SET_H_CR(a1, x) (CPU (h_cr)[a1] = (x)) 51 // OBSOLETE /* dedicated registers */ 52 // OBSOLETE SI h_dr[6]; 53 // OBSOLETE #define GET_H_DR(index) fr30bf_h_dr_get_handler (current_cpu, index) 54 // OBSOLETE #define SET_H_DR(index, x) \ 55 // OBSOLETE do { \ 56 // OBSOLETE fr30bf_h_dr_set_handler (current_cpu, (index), (x));\ 57 // OBSOLETE ;} while (0) 58 // OBSOLETE /* processor status */ 59 // OBSOLETE USI h_ps; 60 // OBSOLETE #define GET_H_PS() fr30bf_h_ps_get_handler (current_cpu) 61 // OBSOLETE #define SET_H_PS(x) \ 62 // OBSOLETE do { \ 63 // OBSOLETE fr30bf_h_ps_set_handler (current_cpu, (x));\ 64 // OBSOLETE ;} while (0) 65 // OBSOLETE /* General Register 13 explicitly required */ 66 // OBSOLETE SI h_r13; 67 // OBSOLETE #define GET_H_R13() CPU (h_r13) 68 // OBSOLETE #define SET_H_R13(x) (CPU (h_r13) = (x)) 69 // OBSOLETE /* General Register 14 explicitly required */ 70 // OBSOLETE SI h_r14; 71 // OBSOLETE #define GET_H_R14() CPU (h_r14) 72 // OBSOLETE #define SET_H_R14(x) (CPU (h_r14) = (x)) 73 // OBSOLETE /* General Register 15 explicitly required */ 74 // OBSOLETE SI h_r15; 75 // OBSOLETE #define GET_H_R15() CPU (h_r15) 76 // OBSOLETE #define SET_H_R15(x) (CPU (h_r15) = (x)) 77 // OBSOLETE /* negative bit */ 78 // OBSOLETE BI h_nbit; 79 // OBSOLETE #define GET_H_NBIT() CPU (h_nbit) 80 // OBSOLETE #define SET_H_NBIT(x) (CPU (h_nbit) = (x)) 81 // OBSOLETE /* zero bit */ 82 // OBSOLETE BI h_zbit; 83 // OBSOLETE #define GET_H_ZBIT() CPU (h_zbit) 84 // OBSOLETE #define SET_H_ZBIT(x) (CPU (h_zbit) = (x)) 85 // OBSOLETE /* overflow bit */ 86 // OBSOLETE BI h_vbit; 87 // OBSOLETE #define GET_H_VBIT() CPU (h_vbit) 88 // OBSOLETE #define SET_H_VBIT(x) (CPU (h_vbit) = (x)) 89 // OBSOLETE /* carry bit */ 90 // OBSOLETE BI h_cbit; 91 // OBSOLETE #define GET_H_CBIT() CPU (h_cbit) 92 // OBSOLETE #define SET_H_CBIT(x) (CPU (h_cbit) = (x)) 93 // OBSOLETE /* interrupt enable bit */ 94 // OBSOLETE BI h_ibit; 95 // OBSOLETE #define GET_H_IBIT() CPU (h_ibit) 96 // OBSOLETE #define SET_H_IBIT(x) (CPU (h_ibit) = (x)) 97 // OBSOLETE /* stack bit */ 98 // OBSOLETE BI h_sbit; 99 // OBSOLETE #define GET_H_SBIT() fr30bf_h_sbit_get_handler (current_cpu) 100 // OBSOLETE #define SET_H_SBIT(x) \ 101 // OBSOLETE do { \ 102 // OBSOLETE fr30bf_h_sbit_set_handler (current_cpu, (x));\ 103 // OBSOLETE ;} while (0) 104 // OBSOLETE /* trace trap bit */ 105 // OBSOLETE BI h_tbit; 106 // OBSOLETE #define GET_H_TBIT() CPU (h_tbit) 107 // OBSOLETE #define SET_H_TBIT(x) (CPU (h_tbit) = (x)) 108 // OBSOLETE /* division 0 bit */ 109 // OBSOLETE BI h_d0bit; 110 // OBSOLETE #define GET_H_D0BIT() CPU (h_d0bit) 111 // OBSOLETE #define SET_H_D0BIT(x) (CPU (h_d0bit) = (x)) 112 // OBSOLETE /* division 1 bit */ 113 // OBSOLETE BI h_d1bit; 114 // OBSOLETE #define GET_H_D1BIT() CPU (h_d1bit) 115 // OBSOLETE #define SET_H_D1BIT(x) (CPU (h_d1bit) = (x)) 116 // OBSOLETE /* condition code bits */ 117 // OBSOLETE UQI h_ccr; 118 // OBSOLETE #define GET_H_CCR() fr30bf_h_ccr_get_handler (current_cpu) 119 // OBSOLETE #define SET_H_CCR(x) \ 120 // OBSOLETE do { \ 121 // OBSOLETE fr30bf_h_ccr_set_handler (current_cpu, (x));\ 122 // OBSOLETE ;} while (0) 123 // OBSOLETE /* system condition bits */ 124 // OBSOLETE UQI h_scr; 125 // OBSOLETE #define GET_H_SCR() fr30bf_h_scr_get_handler (current_cpu) 126 // OBSOLETE #define SET_H_SCR(x) \ 127 // OBSOLETE do { \ 128 // OBSOLETE fr30bf_h_scr_set_handler (current_cpu, (x));\ 129 // OBSOLETE ;} while (0) 130 // OBSOLETE /* interrupt level mask */ 131 // OBSOLETE UQI h_ilm; 132 // OBSOLETE #define GET_H_ILM() fr30bf_h_ilm_get_handler (current_cpu) 133 // OBSOLETE #define SET_H_ILM(x) \ 134 // OBSOLETE do { \ 135 // OBSOLETE fr30bf_h_ilm_set_handler (current_cpu, (x));\ 136 // OBSOLETE ;} while (0) 137 // OBSOLETE } hardware; 138 // OBSOLETE #define CPU_CGEN_HW(cpu) (& (cpu)->cpu_data.hardware) 139 // OBSOLETE } FR30BF_CPU_DATA; 140 // OBSOLETE 141 // OBSOLETE /* Cover fns for register access. */ 142 // OBSOLETE USI fr30bf_h_pc_get (SIM_CPU *); 143 // OBSOLETE void fr30bf_h_pc_set (SIM_CPU *, USI); 144 // OBSOLETE SI fr30bf_h_gr_get (SIM_CPU *, UINT); 145 // OBSOLETE void fr30bf_h_gr_set (SIM_CPU *, UINT, SI); 146 // OBSOLETE SI fr30bf_h_cr_get (SIM_CPU *, UINT); 147 // OBSOLETE void fr30bf_h_cr_set (SIM_CPU *, UINT, SI); 148 // OBSOLETE SI fr30bf_h_dr_get (SIM_CPU *, UINT); 149 // OBSOLETE void fr30bf_h_dr_set (SIM_CPU *, UINT, SI); 150 // OBSOLETE USI fr30bf_h_ps_get (SIM_CPU *); 151 // OBSOLETE void fr30bf_h_ps_set (SIM_CPU *, USI); 152 // OBSOLETE SI fr30bf_h_r13_get (SIM_CPU *); 153 // OBSOLETE void fr30bf_h_r13_set (SIM_CPU *, SI); 154 // OBSOLETE SI fr30bf_h_r14_get (SIM_CPU *); 155 // OBSOLETE void fr30bf_h_r14_set (SIM_CPU *, SI); 156 // OBSOLETE SI fr30bf_h_r15_get (SIM_CPU *); 157 // OBSOLETE void fr30bf_h_r15_set (SIM_CPU *, SI); 158 // OBSOLETE BI fr30bf_h_nbit_get (SIM_CPU *); 159 // OBSOLETE void fr30bf_h_nbit_set (SIM_CPU *, BI); 160 // OBSOLETE BI fr30bf_h_zbit_get (SIM_CPU *); 161 // OBSOLETE void fr30bf_h_zbit_set (SIM_CPU *, BI); 162 // OBSOLETE BI fr30bf_h_vbit_get (SIM_CPU *); 163 // OBSOLETE void fr30bf_h_vbit_set (SIM_CPU *, BI); 164 // OBSOLETE BI fr30bf_h_cbit_get (SIM_CPU *); 165 // OBSOLETE void fr30bf_h_cbit_set (SIM_CPU *, BI); 166 // OBSOLETE BI fr30bf_h_ibit_get (SIM_CPU *); 167 // OBSOLETE void fr30bf_h_ibit_set (SIM_CPU *, BI); 168 // OBSOLETE BI fr30bf_h_sbit_get (SIM_CPU *); 169 // OBSOLETE void fr30bf_h_sbit_set (SIM_CPU *, BI); 170 // OBSOLETE BI fr30bf_h_tbit_get (SIM_CPU *); 171 // OBSOLETE void fr30bf_h_tbit_set (SIM_CPU *, BI); 172 // OBSOLETE BI fr30bf_h_d0bit_get (SIM_CPU *); 173 // OBSOLETE void fr30bf_h_d0bit_set (SIM_CPU *, BI); 174 // OBSOLETE BI fr30bf_h_d1bit_get (SIM_CPU *); 175 // OBSOLETE void fr30bf_h_d1bit_set (SIM_CPU *, BI); 176 // OBSOLETE UQI fr30bf_h_ccr_get (SIM_CPU *); 177 // OBSOLETE void fr30bf_h_ccr_set (SIM_CPU *, UQI); 178 // OBSOLETE UQI fr30bf_h_scr_get (SIM_CPU *); 179 // OBSOLETE void fr30bf_h_scr_set (SIM_CPU *, UQI); 180 // OBSOLETE UQI fr30bf_h_ilm_get (SIM_CPU *); 181 // OBSOLETE void fr30bf_h_ilm_set (SIM_CPU *, UQI); 182 // OBSOLETE 183 // OBSOLETE /* These must be hand-written. */ 184 // OBSOLETE extern CPUREG_FETCH_FN fr30bf_fetch_register; 185 // OBSOLETE extern CPUREG_STORE_FN fr30bf_store_register; 186 // OBSOLETE 187 // OBSOLETE typedef struct { 188 // OBSOLETE UINT load_regs; 189 // OBSOLETE UINT load_regs_pending; 190 // OBSOLETE } MODEL_FR30_1_DATA; 191 // OBSOLETE 192 // OBSOLETE /* Instruction argument buffer. */ 193 // OBSOLETE 194 // OBSOLETE union sem_fields { 195 // OBSOLETE struct { /* no operands */ 196 // OBSOLETE int empty; 197 // OBSOLETE } fmt_empty; 198 // OBSOLETE struct { /* */ 199 // OBSOLETE IADDR i_label9; 200 // OBSOLETE } sfmt_brad; 201 // OBSOLETE struct { /* */ 202 // OBSOLETE UINT f_u8; 203 // OBSOLETE } sfmt_int; 204 // OBSOLETE struct { /* */ 205 // OBSOLETE IADDR i_label12; 206 // OBSOLETE } sfmt_call; 207 // OBSOLETE struct { /* */ 208 // OBSOLETE SI f_s10; 209 // OBSOLETE unsigned char in_h_gr_SI_15; 210 // OBSOLETE unsigned char out_h_gr_SI_15; 211 // OBSOLETE } sfmt_addsp; 212 // OBSOLETE struct { /* */ 213 // OBSOLETE USI f_dir10; 214 // OBSOLETE unsigned char in_h_gr_SI_15; 215 // OBSOLETE unsigned char out_h_gr_SI_15; 216 // OBSOLETE } sfmt_dmovr15pi; 217 // OBSOLETE struct { /* */ 218 // OBSOLETE UINT f_dir8; 219 // OBSOLETE unsigned char in_h_gr_SI_13; 220 // OBSOLETE unsigned char out_h_gr_SI_13; 221 // OBSOLETE } sfmt_dmovr13pib; 222 // OBSOLETE struct { /* */ 223 // OBSOLETE USI f_dir9; 224 // OBSOLETE unsigned char in_h_gr_SI_13; 225 // OBSOLETE unsigned char out_h_gr_SI_13; 226 // OBSOLETE } sfmt_dmovr13pih; 227 // OBSOLETE struct { /* */ 228 // OBSOLETE USI f_dir10; 229 // OBSOLETE unsigned char in_h_gr_SI_13; 230 // OBSOLETE unsigned char out_h_gr_SI_13; 231 // OBSOLETE } sfmt_dmovr13pi; 232 // OBSOLETE struct { /* */ 233 // OBSOLETE UINT f_Rs2; 234 // OBSOLETE unsigned char in_h_gr_SI_15; 235 // OBSOLETE unsigned char out_h_gr_SI_15; 236 // OBSOLETE } sfmt_ldr15dr; 237 // OBSOLETE struct { /* */ 238 // OBSOLETE SI* i_Ri; 239 // OBSOLETE UINT f_Ri; 240 // OBSOLETE UINT f_Rs1; 241 // OBSOLETE unsigned char in_Ri; 242 // OBSOLETE } sfmt_mov2dr; 243 // OBSOLETE struct { /* */ 244 // OBSOLETE SI* i_Ri; 245 // OBSOLETE UINT f_Ri; 246 // OBSOLETE UINT f_Rs1; 247 // OBSOLETE unsigned char out_Ri; 248 // OBSOLETE } sfmt_movdr; 249 // OBSOLETE struct { /* */ 250 // OBSOLETE SI* i_Ri; 251 // OBSOLETE UINT f_Ri; 252 // OBSOLETE UINT f_i32; 253 // OBSOLETE unsigned char out_Ri; 254 // OBSOLETE } sfmt_ldi32; 255 // OBSOLETE struct { /* */ 256 // OBSOLETE SI* i_Ri; 257 // OBSOLETE UINT f_Ri; 258 // OBSOLETE UINT f_i20; 259 // OBSOLETE unsigned char out_Ri; 260 // OBSOLETE } sfmt_ldi20; 261 // OBSOLETE struct { /* */ 262 // OBSOLETE SI* i_Ri; 263 // OBSOLETE UINT f_Ri; 264 // OBSOLETE UINT f_i8; 265 // OBSOLETE unsigned char out_Ri; 266 // OBSOLETE } sfmt_ldi8; 267 // OBSOLETE struct { /* */ 268 // OBSOLETE USI f_u10; 269 // OBSOLETE unsigned char in_h_gr_SI_14; 270 // OBSOLETE unsigned char in_h_gr_SI_15; 271 // OBSOLETE unsigned char out_h_gr_SI_14; 272 // OBSOLETE unsigned char out_h_gr_SI_15; 273 // OBSOLETE } sfmt_enter; 274 // OBSOLETE struct { /* */ 275 // OBSOLETE SI* i_Ri; 276 // OBSOLETE UINT f_Ri; 277 // OBSOLETE unsigned char in_Ri; 278 // OBSOLETE unsigned char in_h_gr_SI_15; 279 // OBSOLETE unsigned char out_h_gr_SI_15; 280 // OBSOLETE } sfmt_str15gr; 281 // OBSOLETE struct { /* */ 282 // OBSOLETE SI* i_Ri; 283 // OBSOLETE UINT f_Ri; 284 // OBSOLETE USI f_udisp6; 285 // OBSOLETE unsigned char in_Ri; 286 // OBSOLETE unsigned char in_h_gr_SI_15; 287 // OBSOLETE } sfmt_str15; 288 // OBSOLETE struct { /* */ 289 // OBSOLETE SI* i_Ri; 290 // OBSOLETE INT f_disp8; 291 // OBSOLETE UINT f_Ri; 292 // OBSOLETE unsigned char in_Ri; 293 // OBSOLETE unsigned char in_h_gr_SI_14; 294 // OBSOLETE } sfmt_str14b; 295 // OBSOLETE struct { /* */ 296 // OBSOLETE SI* i_Ri; 297 // OBSOLETE SI f_disp9; 298 // OBSOLETE UINT f_Ri; 299 // OBSOLETE unsigned char in_Ri; 300 // OBSOLETE unsigned char in_h_gr_SI_14; 301 // OBSOLETE } sfmt_str14h; 302 // OBSOLETE struct { /* */ 303 // OBSOLETE SI* i_Ri; 304 // OBSOLETE SI f_disp10; 305 // OBSOLETE UINT f_Ri; 306 // OBSOLETE unsigned char in_Ri; 307 // OBSOLETE unsigned char in_h_gr_SI_14; 308 // OBSOLETE } sfmt_str14; 309 // OBSOLETE struct { /* */ 310 // OBSOLETE SI* i_Ri; 311 // OBSOLETE UINT f_Ri; 312 // OBSOLETE unsigned char in_h_gr_SI_15; 313 // OBSOLETE unsigned char out_Ri; 314 // OBSOLETE unsigned char out_h_gr_SI_15; 315 // OBSOLETE } sfmt_ldr15gr; 316 // OBSOLETE struct { /* */ 317 // OBSOLETE SI* i_Ri; 318 // OBSOLETE UINT f_Ri; 319 // OBSOLETE USI f_udisp6; 320 // OBSOLETE unsigned char in_h_gr_SI_15; 321 // OBSOLETE unsigned char out_Ri; 322 // OBSOLETE } sfmt_ldr15; 323 // OBSOLETE struct { /* */ 324 // OBSOLETE SI* i_Ri; 325 // OBSOLETE INT f_disp8; 326 // OBSOLETE UINT f_Ri; 327 // OBSOLETE unsigned char in_h_gr_SI_14; 328 // OBSOLETE unsigned char out_Ri; 329 // OBSOLETE } sfmt_ldr14ub; 330 // OBSOLETE struct { /* */ 331 // OBSOLETE SI* i_Ri; 332 // OBSOLETE SI f_disp9; 333 // OBSOLETE UINT f_Ri; 334 // OBSOLETE unsigned char in_h_gr_SI_14; 335 // OBSOLETE unsigned char out_Ri; 336 // OBSOLETE } sfmt_ldr14uh; 337 // OBSOLETE struct { /* */ 338 // OBSOLETE SI* i_Ri; 339 // OBSOLETE SI f_disp10; 340 // OBSOLETE UINT f_Ri; 341 // OBSOLETE unsigned char in_h_gr_SI_14; 342 // OBSOLETE unsigned char out_Ri; 343 // OBSOLETE } sfmt_ldr14; 344 // OBSOLETE struct { /* */ 345 // OBSOLETE SI* i_Ri; 346 // OBSOLETE SI f_m4; 347 // OBSOLETE UINT f_Ri; 348 // OBSOLETE unsigned char in_Ri; 349 // OBSOLETE unsigned char out_Ri; 350 // OBSOLETE } sfmt_add2; 351 // OBSOLETE struct { /* */ 352 // OBSOLETE SI* i_Ri; 353 // OBSOLETE UINT f_Ri; 354 // OBSOLETE UINT f_u4; 355 // OBSOLETE unsigned char in_Ri; 356 // OBSOLETE unsigned char out_Ri; 357 // OBSOLETE } sfmt_addi; 358 // OBSOLETE struct { /* */ 359 // OBSOLETE SI* i_Ri; 360 // OBSOLETE SI* i_Rj; 361 // OBSOLETE UINT f_Ri; 362 // OBSOLETE UINT f_Rj; 363 // OBSOLETE unsigned char in_Ri; 364 // OBSOLETE unsigned char in_Rj; 365 // OBSOLETE unsigned char in_h_gr_SI_13; 366 // OBSOLETE } sfmt_str13; 367 // OBSOLETE struct { /* */ 368 // OBSOLETE SI* i_Ri; 369 // OBSOLETE SI* i_Rj; 370 // OBSOLETE UINT f_Ri; 371 // OBSOLETE UINT f_Rj; 372 // OBSOLETE unsigned char in_Rj; 373 // OBSOLETE unsigned char in_h_gr_SI_13; 374 // OBSOLETE unsigned char out_Ri; 375 // OBSOLETE } sfmt_ldr13; 376 // OBSOLETE struct { /* */ 377 // OBSOLETE SI* i_Ri; 378 // OBSOLETE SI* i_Rj; 379 // OBSOLETE UINT f_Ri; 380 // OBSOLETE UINT f_Rj; 381 // OBSOLETE unsigned char in_Ri; 382 // OBSOLETE unsigned char in_Rj; 383 // OBSOLETE unsigned char out_Ri; 384 // OBSOLETE } sfmt_add; 385 // OBSOLETE struct { /* */ 386 // OBSOLETE UINT f_reglist_hi_st; 387 // OBSOLETE unsigned char in_h_gr_SI_10; 388 // OBSOLETE unsigned char in_h_gr_SI_11; 389 // OBSOLETE unsigned char in_h_gr_SI_12; 390 // OBSOLETE unsigned char in_h_gr_SI_13; 391 // OBSOLETE unsigned char in_h_gr_SI_14; 392 // OBSOLETE unsigned char in_h_gr_SI_15; 393 // OBSOLETE unsigned char in_h_gr_SI_8; 394 // OBSOLETE unsigned char in_h_gr_SI_9; 395 // OBSOLETE unsigned char out_h_gr_SI_15; 396 // OBSOLETE } sfmt_stm1; 397 // OBSOLETE struct { /* */ 398 // OBSOLETE UINT f_reglist_hi_ld; 399 // OBSOLETE unsigned char in_h_gr_SI_15; 400 // OBSOLETE unsigned char out_h_gr_SI_10; 401 // OBSOLETE unsigned char out_h_gr_SI_11; 402 // OBSOLETE unsigned char out_h_gr_SI_12; 403 // OBSOLETE unsigned char out_h_gr_SI_13; 404 // OBSOLETE unsigned char out_h_gr_SI_14; 405 // OBSOLETE unsigned char out_h_gr_SI_15; 406 // OBSOLETE unsigned char out_h_gr_SI_8; 407 // OBSOLETE unsigned char out_h_gr_SI_9; 408 // OBSOLETE } sfmt_ldm1; 409 // OBSOLETE struct { /* */ 410 // OBSOLETE UINT f_reglist_low_st; 411 // OBSOLETE unsigned char in_h_gr_SI_0; 412 // OBSOLETE unsigned char in_h_gr_SI_1; 413 // OBSOLETE unsigned char in_h_gr_SI_15; 414 // OBSOLETE unsigned char in_h_gr_SI_2; 415 // OBSOLETE unsigned char in_h_gr_SI_3; 416 // OBSOLETE unsigned char in_h_gr_SI_4; 417 // OBSOLETE unsigned char in_h_gr_SI_5; 418 // OBSOLETE unsigned char in_h_gr_SI_6; 419 // OBSOLETE unsigned char in_h_gr_SI_7; 420 // OBSOLETE unsigned char out_h_gr_SI_15; 421 // OBSOLETE } sfmt_stm0; 422 // OBSOLETE struct { /* */ 423 // OBSOLETE UINT f_reglist_low_ld; 424 // OBSOLETE unsigned char in_h_gr_SI_15; 425 // OBSOLETE unsigned char out_h_gr_SI_0; 426 // OBSOLETE unsigned char out_h_gr_SI_1; 427 // OBSOLETE unsigned char out_h_gr_SI_15; 428 // OBSOLETE unsigned char out_h_gr_SI_2; 429 // OBSOLETE unsigned char out_h_gr_SI_3; 430 // OBSOLETE unsigned char out_h_gr_SI_4; 431 // OBSOLETE unsigned char out_h_gr_SI_5; 432 // OBSOLETE unsigned char out_h_gr_SI_6; 433 // OBSOLETE unsigned char out_h_gr_SI_7; 434 // OBSOLETE } sfmt_ldm0; 435 // OBSOLETE #if WITH_SCACHE_PBB 436 // OBSOLETE /* Writeback handler. */ 437 // OBSOLETE struct { 438 // OBSOLETE /* Pointer to argbuf entry for insn whose results need writing back. */ 439 // OBSOLETE const struct argbuf *abuf; 440 // OBSOLETE } write; 441 // OBSOLETE /* x-before handler */ 442 // OBSOLETE struct { 443 // OBSOLETE /*const SCACHE *insns[MAX_PARALLEL_INSNS];*/ 444 // OBSOLETE int first_p; 445 // OBSOLETE } before; 446 // OBSOLETE /* x-after handler */ 447 // OBSOLETE struct { 448 // OBSOLETE int empty; 449 // OBSOLETE } after; 450 // OBSOLETE /* This entry is used to terminate each pbb. */ 451 // OBSOLETE struct { 452 // OBSOLETE /* Number of insns in pbb. */ 453 // OBSOLETE int insn_count; 454 // OBSOLETE /* Next pbb to execute. */ 455 // OBSOLETE SCACHE *next; 456 // OBSOLETE SCACHE *branch_target; 457 // OBSOLETE } chain; 458 // OBSOLETE #endif 459 // OBSOLETE }; 460 // OBSOLETE 461 // OBSOLETE /* The ARGBUF struct. */ 462 // OBSOLETE struct argbuf { 463 // OBSOLETE /* These are the baseclass definitions. */ 464 // OBSOLETE IADDR addr; 465 // OBSOLETE const IDESC *idesc; 466 // OBSOLETE char trace_p; 467 // OBSOLETE char profile_p; 468 // OBSOLETE /* ??? Temporary hack for skip insns. */ 469 // OBSOLETE char skip_count; 470 // OBSOLETE char unused; 471 // OBSOLETE /* cpu specific data follows */ 472 // OBSOLETE union sem semantic; 473 // OBSOLETE int written; 474 // OBSOLETE union sem_fields fields; 475 // OBSOLETE }; 476 // OBSOLETE 477 // OBSOLETE /* A cached insn. 478 // OBSOLETE 479 // OBSOLETE ??? SCACHE used to contain more than just argbuf. We could delete the 480 // OBSOLETE type entirely and always just use ARGBUF, but for future concerns and as 481 // OBSOLETE a level of abstraction it is left in. */ 482 // OBSOLETE 483 // OBSOLETE struct scache { 484 // OBSOLETE struct argbuf argbuf; 485 // OBSOLETE }; 486 // OBSOLETE 487 // OBSOLETE /* Macros to simplify extraction, reading and semantic code. 488 // OBSOLETE These define and assign the local vars that contain the insn's fields. */ 489 // OBSOLETE 490 // OBSOLETE #define EXTRACT_IFMT_EMPTY_VARS \ 491 // OBSOLETE unsigned int length; 492 // OBSOLETE #define EXTRACT_IFMT_EMPTY_CODE \ 493 // OBSOLETE length = 0; \ 494 // OBSOLETE 495 // OBSOLETE #define EXTRACT_IFMT_ADD_VARS \ 496 // OBSOLETE UINT f_op1; \ 497 // OBSOLETE UINT f_op2; \ 498 // OBSOLETE UINT f_Rj; \ 499 // OBSOLETE UINT f_Ri; \ 500 // OBSOLETE unsigned int length; 501 // OBSOLETE #define EXTRACT_IFMT_ADD_CODE \ 502 // OBSOLETE length = 2; \ 503 // OBSOLETE f_op1 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \ 504 // OBSOLETE f_op2 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); \ 505 // OBSOLETE f_Rj = EXTRACT_MSB0_UINT (insn, 16, 8, 4); \ 506 // OBSOLETE f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4); \ 507 // OBSOLETE 508 // OBSOLETE #define EXTRACT_IFMT_ADDI_VARS \ 509 // OBSOLETE UINT f_op1; \ 510 // OBSOLETE UINT f_op2; \ 511 // OBSOLETE UINT f_u4; \ 512 // OBSOLETE UINT f_Ri; \ 513 // OBSOLETE unsigned int length; 514 // OBSOLETE #define EXTRACT_IFMT_ADDI_CODE \ 515 // OBSOLETE length = 2; \ 516 // OBSOLETE f_op1 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \ 517 // OBSOLETE f_op2 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); \ 518 // OBSOLETE f_u4 = EXTRACT_MSB0_UINT (insn, 16, 8, 4); \ 519 // OBSOLETE f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4); \ 520 // OBSOLETE 521 // OBSOLETE #define EXTRACT_IFMT_ADD2_VARS \ 522 // OBSOLETE UINT f_op1; \ 523 // OBSOLETE UINT f_op2; \ 524 // OBSOLETE SI f_m4; \ 525 // OBSOLETE UINT f_Ri; \ 526 // OBSOLETE unsigned int length; 527 // OBSOLETE #define EXTRACT_IFMT_ADD2_CODE \ 528 // OBSOLETE length = 2; \ 529 // OBSOLETE f_op1 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \ 530 // OBSOLETE f_op2 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); \ 531 // OBSOLETE f_m4 = ((EXTRACT_MSB0_UINT (insn, 16, 8, 4)) | (((-1) << (4)))); \ 532 // OBSOLETE f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4); \ 533 // OBSOLETE 534 // OBSOLETE #define EXTRACT_IFMT_DIV0S_VARS \ 535 // OBSOLETE UINT f_op1; \ 536 // OBSOLETE UINT f_op2; \ 537 // OBSOLETE UINT f_op3; \ 538 // OBSOLETE UINT f_Ri; \ 539 // OBSOLETE unsigned int length; 540 // OBSOLETE #define EXTRACT_IFMT_DIV0S_CODE \ 541 // OBSOLETE length = 2; \ 542 // OBSOLETE f_op1 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \ 543 // OBSOLETE f_op2 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); \ 544 // OBSOLETE f_op3 = EXTRACT_MSB0_UINT (insn, 16, 8, 4); \ 545 // OBSOLETE f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4); \ 546 // OBSOLETE 547 // OBSOLETE #define EXTRACT_IFMT_DIV3_VARS \ 548 // OBSOLETE UINT f_op1; \ 549 // OBSOLETE UINT f_op2; \ 550 // OBSOLETE UINT f_op3; \ 551 // OBSOLETE UINT f_op4; \ 552 // OBSOLETE unsigned int length; 553 // OBSOLETE #define EXTRACT_IFMT_DIV3_CODE \ 554 // OBSOLETE length = 2; \ 555 // OBSOLETE f_op1 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \ 556 // OBSOLETE f_op2 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); \ 557 // OBSOLETE f_op3 = EXTRACT_MSB0_UINT (insn, 16, 8, 4); \ 558 // OBSOLETE f_op4 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); \ 559 // OBSOLETE 560 // OBSOLETE #define EXTRACT_IFMT_LDI8_VARS \ 561 // OBSOLETE UINT f_op1; \ 562 // OBSOLETE UINT f_i8; \ 563 // OBSOLETE UINT f_Ri; \ 564 // OBSOLETE unsigned int length; 565 // OBSOLETE #define EXTRACT_IFMT_LDI8_CODE \ 566 // OBSOLETE length = 2; \ 567 // OBSOLETE f_op1 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \ 568 // OBSOLETE f_i8 = EXTRACT_MSB0_UINT (insn, 16, 4, 8); \ 569 // OBSOLETE f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4); \ 570 // OBSOLETE 571 // OBSOLETE #define EXTRACT_IFMT_LDI20_VARS \ 572 // OBSOLETE UINT f_op1; \ 573 // OBSOLETE UINT f_i20_4; \ 574 // OBSOLETE UINT f_i20_16; \ 575 // OBSOLETE UINT f_i20; \ 576 // OBSOLETE UINT f_op2; \ 577 // OBSOLETE UINT f_Ri; \ 578 // OBSOLETE /* Contents of trailing part of insn. */ \ 579 // OBSOLETE UINT word_1; \ 580 // OBSOLETE unsigned int length; 581 // OBSOLETE #define EXTRACT_IFMT_LDI20_CODE \ 582 // OBSOLETE length = 4; \ 583 // OBSOLETE word_1 = GETIMEMUHI (current_cpu, pc + 2); \ 584 // OBSOLETE f_op1 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \ 585 // OBSOLETE f_i20_4 = EXTRACT_MSB0_UINT (insn, 16, 8, 4); \ 586 // OBSOLETE f_i20_16 = (0|(EXTRACT_MSB0_UINT (word_1, 16, 0, 16) << 0)); \ 587 // OBSOLETE {\ 588 // OBSOLETE f_i20 = ((((f_i20_4) << (16))) | (f_i20_16));\ 589 // OBSOLETE }\ 590 // OBSOLETE f_op2 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); \ 591 // OBSOLETE f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4); \ 592 // OBSOLETE 593 // OBSOLETE #define EXTRACT_IFMT_LDI32_VARS \ 594 // OBSOLETE UINT f_op1; \ 595 // OBSOLETE UINT f_i32; \ 596 // OBSOLETE UINT f_op2; \ 597 // OBSOLETE UINT f_op3; \ 598 // OBSOLETE UINT f_Ri; \ 599 // OBSOLETE /* Contents of trailing part of insn. */ \ 600 // OBSOLETE UINT word_1; \ 601 // OBSOLETE UINT word_2; \ 602 // OBSOLETE unsigned int length; 603 // OBSOLETE #define EXTRACT_IFMT_LDI32_CODE \ 604 // OBSOLETE length = 6; \ 605 // OBSOLETE word_1 = GETIMEMUHI (current_cpu, pc + 2); \ 606 // OBSOLETE word_2 = GETIMEMUHI (current_cpu, pc + 4); \ 607 // OBSOLETE f_op1 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \ 608 // OBSOLETE f_i32 = (0|(EXTRACT_MSB0_UINT (word_2, 16, 0, 16) << 0)|(EXTRACT_MSB0_UINT (word_1, 16, 0, 16) << 16)); \ 609 // OBSOLETE f_op2 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); \ 610 // OBSOLETE f_op3 = EXTRACT_MSB0_UINT (insn, 16, 8, 4); \ 611 // OBSOLETE f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4); \ 612 // OBSOLETE 613 // OBSOLETE #define EXTRACT_IFMT_LDR14_VARS \ 614 // OBSOLETE UINT f_op1; \ 615 // OBSOLETE SI f_disp10; \ 616 // OBSOLETE UINT f_Ri; \ 617 // OBSOLETE unsigned int length; 618 // OBSOLETE #define EXTRACT_IFMT_LDR14_CODE \ 619 // OBSOLETE length = 2; \ 620 // OBSOLETE f_op1 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \ 621 // OBSOLETE f_disp10 = ((EXTRACT_MSB0_INT (insn, 16, 4, 8)) << (2)); \ 622 // OBSOLETE f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4); \ 623 // OBSOLETE 624 // OBSOLETE #define EXTRACT_IFMT_LDR14UH_VARS \ 625 // OBSOLETE UINT f_op1; \ 626 // OBSOLETE SI f_disp9; \ 627 // OBSOLETE UINT f_Ri; \ 628 // OBSOLETE unsigned int length; 629 // OBSOLETE #define EXTRACT_IFMT_LDR14UH_CODE \ 630 // OBSOLETE length = 2; \ 631 // OBSOLETE f_op1 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \ 632 // OBSOLETE f_disp9 = ((EXTRACT_MSB0_INT (insn, 16, 4, 8)) << (1)); \ 633 // OBSOLETE f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4); \ 634 // OBSOLETE 635 // OBSOLETE #define EXTRACT_IFMT_LDR14UB_VARS \ 636 // OBSOLETE UINT f_op1; \ 637 // OBSOLETE INT f_disp8; \ 638 // OBSOLETE UINT f_Ri; \ 639 // OBSOLETE unsigned int length; 640 // OBSOLETE #define EXTRACT_IFMT_LDR14UB_CODE \ 641 // OBSOLETE length = 2; \ 642 // OBSOLETE f_op1 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \ 643 // OBSOLETE f_disp8 = EXTRACT_MSB0_INT (insn, 16, 4, 8); \ 644 // OBSOLETE f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4); \ 645 // OBSOLETE 646 // OBSOLETE #define EXTRACT_IFMT_LDR15_VARS \ 647 // OBSOLETE UINT f_op1; \ 648 // OBSOLETE UINT f_op2; \ 649 // OBSOLETE USI f_udisp6; \ 650 // OBSOLETE UINT f_Ri; \ 651 // OBSOLETE unsigned int length; 652 // OBSOLETE #define EXTRACT_IFMT_LDR15_CODE \ 653 // OBSOLETE length = 2; \ 654 // OBSOLETE f_op1 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \ 655 // OBSOLETE f_op2 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); \ 656 // OBSOLETE f_udisp6 = ((EXTRACT_MSB0_UINT (insn, 16, 8, 4)) << (2)); \ 657 // OBSOLETE f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4); \ 658 // OBSOLETE 659 // OBSOLETE #define EXTRACT_IFMT_LDR15DR_VARS \ 660 // OBSOLETE UINT f_op1; \ 661 // OBSOLETE UINT f_op2; \ 662 // OBSOLETE UINT f_op3; \ 663 // OBSOLETE UINT f_Rs2; \ 664 // OBSOLETE unsigned int length; 665 // OBSOLETE #define EXTRACT_IFMT_LDR15DR_CODE \ 666 // OBSOLETE length = 2; \ 667 // OBSOLETE f_op1 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \ 668 // OBSOLETE f_op2 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); \ 669 // OBSOLETE f_op3 = EXTRACT_MSB0_UINT (insn, 16, 8, 4); \ 670 // OBSOLETE f_Rs2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4); \ 671 // OBSOLETE 672 // OBSOLETE #define EXTRACT_IFMT_MOVDR_VARS \ 673 // OBSOLETE UINT f_op1; \ 674 // OBSOLETE UINT f_op2; \ 675 // OBSOLETE UINT f_Rs1; \ 676 // OBSOLETE UINT f_Ri; \ 677 // OBSOLETE unsigned int length; 678 // OBSOLETE #define EXTRACT_IFMT_MOVDR_CODE \ 679 // OBSOLETE length = 2; \ 680 // OBSOLETE f_op1 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \ 681 // OBSOLETE f_op2 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); \ 682 // OBSOLETE f_Rs1 = EXTRACT_MSB0_UINT (insn, 16, 8, 4); \ 683 // OBSOLETE f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4); \ 684 // OBSOLETE 685 // OBSOLETE #define EXTRACT_IFMT_CALL_VARS \ 686 // OBSOLETE UINT f_op1; \ 687 // OBSOLETE UINT f_op5; \ 688 // OBSOLETE SI f_rel12; \ 689 // OBSOLETE unsigned int length; 690 // OBSOLETE #define EXTRACT_IFMT_CALL_CODE \ 691 // OBSOLETE length = 2; \ 692 // OBSOLETE f_op1 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \ 693 // OBSOLETE f_op5 = EXTRACT_MSB0_UINT (insn, 16, 4, 1); \ 694 // OBSOLETE f_rel12 = ((((EXTRACT_MSB0_INT (insn, 16, 5, 11)) << (1))) + (((pc) + (2)))); \ 695 // OBSOLETE 696 // OBSOLETE #define EXTRACT_IFMT_INT_VARS \ 697 // OBSOLETE UINT f_op1; \ 698 // OBSOLETE UINT f_op2; \ 699 // OBSOLETE UINT f_u8; \ 700 // OBSOLETE unsigned int length; 701 // OBSOLETE #define EXTRACT_IFMT_INT_CODE \ 702 // OBSOLETE length = 2; \ 703 // OBSOLETE f_op1 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \ 704 // OBSOLETE f_op2 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); \ 705 // OBSOLETE f_u8 = EXTRACT_MSB0_UINT (insn, 16, 8, 8); \ 706 // OBSOLETE 707 // OBSOLETE #define EXTRACT_IFMT_BRAD_VARS \ 708 // OBSOLETE UINT f_op1; \ 709 // OBSOLETE UINT f_cc; \ 710 // OBSOLETE SI f_rel9; \ 711 // OBSOLETE unsigned int length; 712 // OBSOLETE #define EXTRACT_IFMT_BRAD_CODE \ 713 // OBSOLETE length = 2; \ 714 // OBSOLETE f_op1 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \ 715 // OBSOLETE f_cc = EXTRACT_MSB0_UINT (insn, 16, 4, 4); \ 716 // OBSOLETE f_rel9 = ((((EXTRACT_MSB0_INT (insn, 16, 8, 8)) << (1))) + (((pc) + (2)))); \ 717 // OBSOLETE 718 // OBSOLETE #define EXTRACT_IFMT_DMOVR13_VARS \ 719 // OBSOLETE UINT f_op1; \ 720 // OBSOLETE UINT f_op2; \ 721 // OBSOLETE USI f_dir10; \ 722 // OBSOLETE unsigned int length; 723 // OBSOLETE #define EXTRACT_IFMT_DMOVR13_CODE \ 724 // OBSOLETE length = 2; \ 725 // OBSOLETE f_op1 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \ 726 // OBSOLETE f_op2 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); \ 727 // OBSOLETE f_dir10 = ((EXTRACT_MSB0_UINT (insn, 16, 8, 8)) << (2)); \ 728 // OBSOLETE 729 // OBSOLETE #define EXTRACT_IFMT_DMOVR13H_VARS \ 730 // OBSOLETE UINT f_op1; \ 731 // OBSOLETE UINT f_op2; \ 732 // OBSOLETE USI f_dir9; \ 733 // OBSOLETE unsigned int length; 734 // OBSOLETE #define EXTRACT_IFMT_DMOVR13H_CODE \ 735 // OBSOLETE length = 2; \ 736 // OBSOLETE f_op1 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \ 737 // OBSOLETE f_op2 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); \ 738 // OBSOLETE f_dir9 = ((EXTRACT_MSB0_UINT (insn, 16, 8, 8)) << (1)); \ 739 // OBSOLETE 740 // OBSOLETE #define EXTRACT_IFMT_DMOVR13B_VARS \ 741 // OBSOLETE UINT f_op1; \ 742 // OBSOLETE UINT f_op2; \ 743 // OBSOLETE UINT f_dir8; \ 744 // OBSOLETE unsigned int length; 745 // OBSOLETE #define EXTRACT_IFMT_DMOVR13B_CODE \ 746 // OBSOLETE length = 2; \ 747 // OBSOLETE f_op1 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \ 748 // OBSOLETE f_op2 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); \ 749 // OBSOLETE f_dir8 = EXTRACT_MSB0_UINT (insn, 16, 8, 8); \ 750 // OBSOLETE 751 // OBSOLETE #define EXTRACT_IFMT_COPOP_VARS \ 752 // OBSOLETE UINT f_op1; \ 753 // OBSOLETE UINT f_ccc; \ 754 // OBSOLETE UINT f_op2; \ 755 // OBSOLETE UINT f_op3; \ 756 // OBSOLETE UINT f_CRj; \ 757 // OBSOLETE UINT f_u4c; \ 758 // OBSOLETE UINT f_CRi; \ 759 // OBSOLETE /* Contents of trailing part of insn. */ \ 760 // OBSOLETE UINT word_1; \ 761 // OBSOLETE unsigned int length; 762 // OBSOLETE #define EXTRACT_IFMT_COPOP_CODE \ 763 // OBSOLETE length = 4; \ 764 // OBSOLETE word_1 = GETIMEMUHI (current_cpu, pc + 2); \ 765 // OBSOLETE f_op1 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \ 766 // OBSOLETE f_ccc = (0|(EXTRACT_MSB0_UINT (word_1, 16, 0, 8) << 0)); \ 767 // OBSOLETE f_op2 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); \ 768 // OBSOLETE f_op3 = EXTRACT_MSB0_UINT (insn, 16, 8, 4); \ 769 // OBSOLETE f_CRj = (0|(EXTRACT_MSB0_UINT (word_1, 16, 8, 4) << 0)); \ 770 // OBSOLETE f_u4c = EXTRACT_MSB0_UINT (insn, 16, 12, 4); \ 771 // OBSOLETE f_CRi = (0|(EXTRACT_MSB0_UINT (word_1, 16, 12, 4) << 0)); \ 772 // OBSOLETE 773 // OBSOLETE #define EXTRACT_IFMT_COPLD_VARS \ 774 // OBSOLETE UINT f_op1; \ 775 // OBSOLETE UINT f_ccc; \ 776 // OBSOLETE UINT f_op2; \ 777 // OBSOLETE UINT f_op3; \ 778 // OBSOLETE UINT f_Rjc; \ 779 // OBSOLETE UINT f_u4c; \ 780 // OBSOLETE UINT f_CRi; \ 781 // OBSOLETE /* Contents of trailing part of insn. */ \ 782 // OBSOLETE UINT word_1; \ 783 // OBSOLETE unsigned int length; 784 // OBSOLETE #define EXTRACT_IFMT_COPLD_CODE \ 785 // OBSOLETE length = 4; \ 786 // OBSOLETE word_1 = GETIMEMUHI (current_cpu, pc + 2); \ 787 // OBSOLETE f_op1 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \ 788 // OBSOLETE f_ccc = (0|(EXTRACT_MSB0_UINT (word_1, 16, 0, 8) << 0)); \ 789 // OBSOLETE f_op2 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); \ 790 // OBSOLETE f_op3 = EXTRACT_MSB0_UINT (insn, 16, 8, 4); \ 791 // OBSOLETE f_Rjc = (0|(EXTRACT_MSB0_UINT (word_1, 16, 8, 4) << 0)); \ 792 // OBSOLETE f_u4c = EXTRACT_MSB0_UINT (insn, 16, 12, 4); \ 793 // OBSOLETE f_CRi = (0|(EXTRACT_MSB0_UINT (word_1, 16, 12, 4) << 0)); \ 794 // OBSOLETE 795 // OBSOLETE #define EXTRACT_IFMT_COPST_VARS \ 796 // OBSOLETE UINT f_op1; \ 797 // OBSOLETE UINT f_ccc; \ 798 // OBSOLETE UINT f_op2; \ 799 // OBSOLETE UINT f_op3; \ 800 // OBSOLETE UINT f_CRj; \ 801 // OBSOLETE UINT f_u4c; \ 802 // OBSOLETE UINT f_Ric; \ 803 // OBSOLETE /* Contents of trailing part of insn. */ \ 804 // OBSOLETE UINT word_1; \ 805 // OBSOLETE unsigned int length; 806 // OBSOLETE #define EXTRACT_IFMT_COPST_CODE \ 807 // OBSOLETE length = 4; \ 808 // OBSOLETE word_1 = GETIMEMUHI (current_cpu, pc + 2); \ 809 // OBSOLETE f_op1 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \ 810 // OBSOLETE f_ccc = (0|(EXTRACT_MSB0_UINT (word_1, 16, 0, 8) << 0)); \ 811 // OBSOLETE f_op2 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); \ 812 // OBSOLETE f_op3 = EXTRACT_MSB0_UINT (insn, 16, 8, 4); \ 813 // OBSOLETE f_CRj = (0|(EXTRACT_MSB0_UINT (word_1, 16, 8, 4) << 0)); \ 814 // OBSOLETE f_u4c = EXTRACT_MSB0_UINT (insn, 16, 12, 4); \ 815 // OBSOLETE f_Ric = (0|(EXTRACT_MSB0_UINT (word_1, 16, 12, 4) << 0)); \ 816 // OBSOLETE 817 // OBSOLETE #define EXTRACT_IFMT_ADDSP_VARS \ 818 // OBSOLETE UINT f_op1; \ 819 // OBSOLETE UINT f_op2; \ 820 // OBSOLETE SI f_s10; \ 821 // OBSOLETE unsigned int length; 822 // OBSOLETE #define EXTRACT_IFMT_ADDSP_CODE \ 823 // OBSOLETE length = 2; \ 824 // OBSOLETE f_op1 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \ 825 // OBSOLETE f_op2 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); \ 826 // OBSOLETE f_s10 = ((EXTRACT_MSB0_INT (insn, 16, 8, 8)) << (2)); \ 827 // OBSOLETE 828 // OBSOLETE #define EXTRACT_IFMT_LDM0_VARS \ 829 // OBSOLETE UINT f_op1; \ 830 // OBSOLETE UINT f_op2; \ 831 // OBSOLETE UINT f_reglist_low_ld; \ 832 // OBSOLETE unsigned int length; 833 // OBSOLETE #define EXTRACT_IFMT_LDM0_CODE \ 834 // OBSOLETE length = 2; \ 835 // OBSOLETE f_op1 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \ 836 // OBSOLETE f_op2 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); \ 837 // OBSOLETE f_reglist_low_ld = EXTRACT_MSB0_UINT (insn, 16, 8, 8); \ 838 // OBSOLETE 839 // OBSOLETE #define EXTRACT_IFMT_LDM1_VARS \ 840 // OBSOLETE UINT f_op1; \ 841 // OBSOLETE UINT f_op2; \ 842 // OBSOLETE UINT f_reglist_hi_ld; \ 843 // OBSOLETE unsigned int length; 844 // OBSOLETE #define EXTRACT_IFMT_LDM1_CODE \ 845 // OBSOLETE length = 2; \ 846 // OBSOLETE f_op1 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \ 847 // OBSOLETE f_op2 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); \ 848 // OBSOLETE f_reglist_hi_ld = EXTRACT_MSB0_UINT (insn, 16, 8, 8); \ 849 // OBSOLETE 850 // OBSOLETE #define EXTRACT_IFMT_STM0_VARS \ 851 // OBSOLETE UINT f_op1; \ 852 // OBSOLETE UINT f_op2; \ 853 // OBSOLETE UINT f_reglist_low_st; \ 854 // OBSOLETE unsigned int length; 855 // OBSOLETE #define EXTRACT_IFMT_STM0_CODE \ 856 // OBSOLETE length = 2; \ 857 // OBSOLETE f_op1 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \ 858 // OBSOLETE f_op2 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); \ 859 // OBSOLETE f_reglist_low_st = EXTRACT_MSB0_UINT (insn, 16, 8, 8); \ 860 // OBSOLETE 861 // OBSOLETE #define EXTRACT_IFMT_STM1_VARS \ 862 // OBSOLETE UINT f_op1; \ 863 // OBSOLETE UINT f_op2; \ 864 // OBSOLETE UINT f_reglist_hi_st; \ 865 // OBSOLETE unsigned int length; 866 // OBSOLETE #define EXTRACT_IFMT_STM1_CODE \ 867 // OBSOLETE length = 2; \ 868 // OBSOLETE f_op1 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \ 869 // OBSOLETE f_op2 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); \ 870 // OBSOLETE f_reglist_hi_st = EXTRACT_MSB0_UINT (insn, 16, 8, 8); \ 871 // OBSOLETE 872 // OBSOLETE #define EXTRACT_IFMT_ENTER_VARS \ 873 // OBSOLETE UINT f_op1; \ 874 // OBSOLETE UINT f_op2; \ 875 // OBSOLETE USI f_u10; \ 876 // OBSOLETE unsigned int length; 877 // OBSOLETE #define EXTRACT_IFMT_ENTER_CODE \ 878 // OBSOLETE length = 2; \ 879 // OBSOLETE f_op1 = EXTRACT_MSB0_UINT (insn, 16, 0, 4); \ 880 // OBSOLETE f_op2 = EXTRACT_MSB0_UINT (insn, 16, 4, 4); \ 881 // OBSOLETE f_u10 = ((EXTRACT_MSB0_UINT (insn, 16, 8, 8)) << (2)); \ 882 // OBSOLETE 883 // OBSOLETE /* Collection of various things for the trace handler to use. */ 884 // OBSOLETE 885 // OBSOLETE typedef struct trace_record { 886 // OBSOLETE IADDR pc; 887 // OBSOLETE /* FIXME:wip */ 888 // OBSOLETE } TRACE_RECORD; 889 // OBSOLETE 890 // OBSOLETE #endif /* CPU_FR30BF_H */ 891