📄 cpu.h
字号:
// OBSOLETE /* CPU family header for fr30bf.// OBSOLETE // OBSOLETE THIS FILE IS MACHINE GENERATED WITH CGEN.// OBSOLETE // OBSOLETE Copyright 1996, 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.// OBSOLETE // OBSOLETE This file is part of the GNU simulators.// OBSOLETE // OBSOLETE This program is free software; you can redistribute it and/or modify// OBSOLETE it under the terms of the GNU General Public License as published by// OBSOLETE the Free Software Foundation; either version 2, or (at your option)// OBSOLETE any later version.// OBSOLETE // OBSOLETE This program is distributed in the hope that it will be useful,// OBSOLETE but WITHOUT ANY WARRANTY; without even the implied warranty of// OBSOLETE MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the// OBSOLETE GNU General Public License for more details.// OBSOLETE // OBSOLETE You should have received a copy of the GNU General Public License along// OBSOLETE with this program; if not, write to the Free Software Foundation, Inc.,// OBSOLETE 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.// OBSOLETE // OBSOLETE */// OBSOLETE // OBSOLETE #ifndef CPU_FR30BF_H// OBSOLETE #define CPU_FR30BF_H// OBSOLETE // OBSOLETE /* Maximum number of instructions that are fetched at a time.// OBSOLETE This is for LIW type instructions sets (e.g. m32r). */// OBSOLETE #define MAX_LIW_INSNS 1// OBSOLETE // OBSOLETE /* Maximum number of instructions that can be executed in parallel. */// OBSOLETE #define MAX_PARALLEL_INSNS 1// OBSOLETE // OBSOLETE /* CPU state information. */// OBSOLETE typedef struct {// OBSOLETE /* Hardware elements. */// OBSOLETE struct {// OBSOLETE /* program counter */// OBSOLETE USI h_pc;// OBSOLETE #define GET_H_PC() CPU (h_pc)// OBSOLETE #define SET_H_PC(x) (CPU (h_pc) = (x))// OBSOLETE /* general registers */// OBSOLETE SI h_gr[16];// OBSOLETE #define GET_H_GR(a1) CPU (h_gr)[a1]// OBSOLETE #define SET_H_GR(a1, x) (CPU (h_gr)[a1] = (x))// OBSOLETE /* coprocessor registers */// OBSOLETE SI h_cr[16];// OBSOLETE #define GET_H_CR(a1) CPU (h_cr)[a1]// OBSOLETE #define SET_H_CR(a1, x) (CPU (h_cr)[a1] = (x))// OBSOLETE /* dedicated registers */// OBSOLETE SI h_dr[6];// OBSOLETE #define GET_H_DR(index) fr30bf_h_dr_get_handler (current_cpu, index)// OBSOLETE #define SET_H_DR(index, x) \// OBSOLETE do { \// OBSOLETE fr30bf_h_dr_set_handler (current_cpu, (index), (x));\// OBSOLETE ;} while (0)// OBSOLETE /* processor status */// OBSOLETE USI h_ps;// OBSOLETE #define GET_H_PS() fr30bf_h_ps_get_handler (current_cpu)// OBSOLETE #define SET_H_PS(x) \// OBSOLETE do { \// OBSOLETE fr30bf_h_ps_set_handler (current_cpu, (x));\// OBSOLETE ;} while (0)// OBSOLETE /* General Register 13 explicitly required */// OBSOLETE SI h_r13;// OBSOLETE #define GET_H_R13() CPU (h_r13)// OBSOLETE #define SET_H_R13(x) (CPU (h_r13) = (x))// OBSOLETE /* General Register 14 explicitly required */// OBSOLETE SI h_r14;// OBSOLETE #define GET_H_R14() CPU (h_r14)// OBSOLETE #define SET_H_R14(x) (CPU (h_r14) = (x))// OBSOLETE /* General Register 15 explicitly required */// OBSOLETE SI h_r15;// OBSOLETE #define GET_H_R15() CPU (h_r15)// OBSOLETE #define SET_H_R15(x) (CPU (h_r15) = (x))// OBSOLETE /* negative bit */// OBSOLETE BI h_nbit;// OBSOLETE #define GET_H_NBIT() CPU (h_nbit)// OBSOLETE #define SET_H_NBIT(x) (CPU (h_nbit) = (x))// OBSOLETE /* zero bit */// OBSOLETE BI h_zbit;// OBSOLETE #define GET_H_ZBIT() CPU (h_zbit)// OBSOLETE #define SET_H_ZBIT(x) (CPU (h_zbit) = (x))// OBSOLETE /* overflow bit */// OBSOLETE BI h_vbit;// OBSOLETE #define GET_H_VBIT() CPU (h_vbit)// OBSOLETE #define SET_H_VBIT(x) (CPU (h_vbit) = (x))// OBSOLETE /* carry bit */// OBSOLETE BI h_cbit;// OBSOLETE #define GET_H_CBIT() CPU (h_cbit)// OBSOLETE #define SET_H_CBIT(x) (CPU (h_cbit) = (x))// OBSOLETE /* interrupt enable bit */// OBSOLETE BI h_ibit;// OBSOLETE #define GET_H_IBIT() CPU (h_ibit)// OBSOLETE #define SET_H_IBIT(x) (CPU (h_ibit) = (x))// OBSOLETE /* stack bit */// OBSOLETE BI h_sbit;// OBSOLETE #define GET_H_SBIT() fr30bf_h_sbit_get_handler (current_cpu)// OBSOLETE #define SET_H_SBIT(x) \// OBSOLETE do { \// OBSOLETE fr30bf_h_sbit_set_handler (current_cpu, (x));\// OBSOLETE ;} while (0)// OBSOLETE /* trace trap bit */// OBSOLETE BI h_tbit;// OBSOLETE #define GET_H_TBIT() CPU (h_tbit)// OBSOLETE #define SET_H_TBIT(x) (CPU (h_tbit) = (x))// OBSOLETE /* division 0 bit */// OBSOLETE BI h_d0bit;// OBSOLETE #define GET_H_D0BIT() CPU (h_d0bit)// OBSOLETE #define SET_H_D0BIT(x) (CPU (h_d0bit) = (x))// OBSOLETE /* division 1 bit */// OBSOLETE BI h_d1bit;// OBSOLETE #define GET_H_D1BIT() CPU (h_d1bit)// OBSOLETE #define SET_H_D1BIT(x) (CPU (h_d1bit) = (x))// OBSOLETE /* condition code bits */// OBSOLETE UQI h_ccr;// OBSOLETE #define GET_H_CCR() fr30bf_h_ccr_get_handler (current_cpu)// OBSOLETE #define SET_H_CCR(x) \// OBSOLETE do { \// OBSOLETE fr30bf_h_ccr_set_handler (current_cpu, (x));\// OBSOLETE ;} while (0)// OBSOLETE /* system condition bits */// OBSOLETE UQI h_scr;// OBSOLETE #define GET_H_SCR() fr30bf_h_scr_get_handler (current_cpu)// OBSOLETE #define SET_H_SCR(x) \// OBSOLETE do { \// OBSOLETE fr30bf_h_scr_set_handler (current_cpu, (x));\// OBSOLETE ;} while (0)// OBSOLETE /* interrupt level mask */// OBSOLETE UQI h_ilm;// OBSOLETE #define GET_H_ILM() fr30bf_h_ilm_get_handler (current_cpu)// OBSOLETE #define SET_H_ILM(x) \// OBSOLETE do { \// OBSOLETE fr30bf_h_ilm_set_handler (current_cpu, (x));\// OBSOLETE ;} while (0)// OBSOLETE } hardware;// OBSOLETE #define CPU_CGEN_HW(cpu) (& (cpu)->cpu_data.hardware)// OBSOLETE } FR30BF_CPU_DATA;// OBSOLETE // OBSOLETE /* Cover fns for register access. */// OBSOLETE USI fr30bf_h_pc_get (SIM_CPU *);// OBSOLETE void fr30bf_h_pc_set (SIM_CPU *, USI);// OBSOLETE SI fr30bf_h_gr_get (SIM_CPU *, UINT);// OBSOLETE void fr30bf_h_gr_set (SIM_CPU *, UINT, SI);// OBSOLETE SI fr30bf_h_cr_get (SIM_CPU *, UINT);// OBSOLETE void fr30bf_h_cr_set (SIM_CPU *, UINT, SI);// OBSOLETE SI fr30bf_h_dr_get (SIM_CPU *, UINT);// OBSOLETE void fr30bf_h_dr_set (SIM_CPU *, UINT, SI);// OBSOLETE USI fr30bf_h_ps_get (SIM_CPU *);// OBSOLETE void fr30bf_h_ps_set (SIM_CPU *, USI);// OBSOLETE SI fr30bf_h_r13_get (SIM_CPU *);// OBSOLETE void fr30bf_h_r13_set (SIM_CPU *, SI);// OBSOLETE SI fr30bf_h_r14_get (SIM_CPU *);// OBSOLETE void fr30bf_h_r14_set (SIM_CPU *, SI);// OBSOLETE SI fr30bf_h_r15_get (SIM_CPU *);// OBSOLETE void fr30bf_h_r15_set (SIM_CPU *, SI);// OBSOLETE BI fr30bf_h_nbit_get (SIM_CPU *);// OBSOLETE void fr30bf_h_nbit_set (SIM_CPU *, BI);// OBSOLETE BI fr30bf_h_zbit_get (SIM_CPU *);// OBSOLETE void fr30bf_h_zbit_set (SIM_CPU *, BI);// OBSOLETE BI fr30bf_h_vbit_get (SIM_CPU *);// OBSOLETE void fr30bf_h_vbit_set (SIM_CPU *, BI);// OBSOLETE BI fr30bf_h_cbit_get (SIM_CPU *);// OBSOLETE void fr30bf_h_cbit_set (SIM_CPU *, BI);// OBSOLETE BI fr30bf_h_ibit_get (SIM_CPU *);// OBSOLETE void fr30bf_h_ibit_set (SIM_CPU *, BI);// OBSOLETE BI fr30bf_h_sbit_get (SIM_CPU *);// OBSOLETE void fr30bf_h_sbit_set (SIM_CPU *, BI);// OBSOLETE BI fr30bf_h_tbit_get (SIM_CPU *);// OBSOLETE void fr30bf_h_tbit_set (SIM_CPU *, BI);// OBSOLETE BI fr30bf_h_d0bit_get (SIM_CPU *);// OBSOLETE void fr30bf_h_d0bit_set (SIM_CPU *, BI);// OBSOLETE BI fr30bf_h_d1bit_get (SIM_CPU *);// OBSOLETE void fr30bf_h_d1bit_set (SIM_CPU *, BI);// OBSOLETE UQI fr30bf_h_ccr_get (SIM_CPU *);// OBSOLETE void fr30bf_h_ccr_set (SIM_CPU *, UQI);// OBSOLETE UQI fr30bf_h_scr_get (SIM_CPU *);// OBSOLETE void fr30bf_h_scr_set (SIM_CPU *, UQI);// OBSOLETE UQI fr30bf_h_ilm_get (SIM_CPU *);// OBSOLETE void fr30bf_h_ilm_set (SIM_CPU *, UQI);// OBSOLETE // OBSOLETE /* These must be hand-written. */// OBSOLETE extern CPUREG_FETCH_FN fr30bf_fetch_register;// OBSOLETE extern CPUREG_STORE_FN fr30bf_store_register;// OBSOLETE // OBSOLETE typedef struct {// OBSOLETE UINT load_regs;// OBSOLETE UINT load_regs_pending;// OBSOLETE } MODEL_FR30_1_DATA;// OBSOLETE // OBSOLETE /* Instruction argument buffer. */// OBSOLETE // OBSOLETE union sem_fields {// OBSOLETE struct { /* no operands */// OBSOLETE int empty;// OBSOLETE } fmt_empty;// OBSOLETE struct { /* */// OBSOLETE IADDR i_label9;// OBSOLETE } sfmt_brad;// OBSOLETE struct { /* */// OBSOLETE UINT f_u8;// OBSOLETE } sfmt_int;// OBSOLETE struct { /* */// OBSOLETE IADDR i_label12;// OBSOLETE } sfmt_call;// OBSOLETE struct { /* */// OBSOLETE SI f_s10;// OBSOLETE unsigned char in_h_gr_SI_15;// OBSOLETE unsigned char out_h_gr_SI_15;// OBSOLETE } sfmt_addsp;// OBSOLETE struct { /* */// OBSOLETE USI f_dir10;// OBSOLETE unsigned char in_h_gr_SI_15;// OBSOLETE unsigned char out_h_gr_SI_15;// OBSOLETE } sfmt_dmovr15pi;// OBSOLETE struct { /* */// OBSOLETE UINT f_dir8;// OBSOLETE unsigned char in_h_gr_SI_13;// OBSOLETE unsigned char out_h_gr_SI_13;// OBSOLETE } sfmt_dmovr13pib;// OBSOLETE struct { /* */// OBSOLETE USI f_dir9;// OBSOLETE unsigned char in_h_gr_SI_13;// OBSOLETE unsigned char out_h_gr_SI_13;// OBSOLETE } sfmt_dmovr13pih;// OBSOLETE struct { /* */// OBSOLETE USI f_dir10;// OBSOLETE unsigned char in_h_gr_SI_13;// OBSOLETE unsigned char out_h_gr_SI_13;// OBSOLETE } sfmt_dmovr13pi;// OBSOLETE struct { /* */// OBSOLETE UINT f_Rs2;// OBSOLETE unsigned char in_h_gr_SI_15;// OBSOLETE unsigned char out_h_gr_SI_15;// OBSOLETE } sfmt_ldr15dr;// OBSOLETE struct { /* */// OBSOLETE SI* i_Ri;// OBSOLETE UINT f_Ri;// OBSOLETE UINT f_Rs1;// OBSOLETE unsigned char in_Ri;// OBSOLETE } sfmt_mov2dr;// OBSOLETE struct { /* */// OBSOLETE SI* i_Ri;// OBSOLETE UINT f_Ri;// OBSOLETE UINT f_Rs1;// OBSOLETE unsigned char out_Ri;// OBSOLETE } sfmt_movdr;// OBSOLETE struct { /* */// OBSOLETE SI* i_Ri;// OBSOLETE UINT f_Ri;// OBSOLETE UINT f_i32;// OBSOLETE unsigned char out_Ri;// OBSOLETE } sfmt_ldi32;// OBSOLETE struct { /* */// OBSOLETE SI* i_Ri;// OBSOLETE UINT f_Ri;// OBSOLETE UINT f_i20;// OBSOLETE unsigned char out_Ri;// OBSOLETE } sfmt_ldi20;// OBSOLETE struct { /* */// OBSOLETE SI* i_Ri;// OBSOLETE UINT f_Ri;// OBSOLETE UINT f_i8;// OBSOLETE unsigned char out_Ri;// OBSOLETE } sfmt_ldi8;// OBSOLETE struct { /* */// OBSOLETE USI f_u10;// OBSOLETE unsigned char in_h_gr_SI_14;// OBSOLETE unsigned char in_h_gr_SI_15;// OBSOLETE unsigned char out_h_gr_SI_14;// OBSOLETE unsigned char out_h_gr_SI_15;// OBSOLETE } sfmt_enter;// OBSOLETE struct { /* */// OBSOLETE SI* i_Ri;// OBSOLETE UINT f_Ri;// OBSOLETE unsigned char in_Ri;// OBSOLETE unsigned char in_h_gr_SI_15;// OBSOLETE unsigned char out_h_gr_SI_15;// OBSOLETE } sfmt_str15gr;// OBSOLETE struct { /* */// OBSOLETE SI* i_Ri;// OBSOLETE UINT f_Ri;// OBSOLETE USI f_udisp6;// OBSOLETE unsigned char in_Ri;// OBSOLETE unsigned char in_h_gr_SI_15;// OBSOLETE } sfmt_str15;// OBSOLETE struct { /* */// OBSOLETE SI* i_Ri;// OBSOLETE INT f_disp8;// OBSOLETE UINT f_Ri;// OBSOLETE unsigned char in_Ri;// OBSOLETE unsigned char in_h_gr_SI_14;// OBSOLETE } sfmt_str14b;// OBSOLETE struct { /* */// OBSOLETE SI* i_Ri;// OBSOLETE SI f_disp9;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -