diff options
Diffstat (limited to 'sim/fr30/cpu.h')
-rw-r--r-- | sim/fr30/cpu.h | 72 |
1 files changed, 47 insertions, 25 deletions
diff --git a/sim/fr30/cpu.h b/sim/fr30/cpu.h index 27745da1..ac1af48 100644 --- a/sim/fr30/cpu.h +++ b/sim/fr30/cpu.h @@ -54,14 +54,14 @@ typedef struct { #define SET_H_DR(index, x) \ do { \ fr30bf_h_dr_set_handler (current_cpu, (index), (x));\ -} while (0) +;} while (0) /* processor status */ USI h_ps; #define GET_H_PS() fr30bf_h_ps_get_handler (current_cpu) #define SET_H_PS(x) \ do { \ fr30bf_h_ps_set_handler (current_cpu, (x));\ -} while (0) +;} while (0) /* General Register 13 explicitly required */ SI h_r13; #define GET_H_R13() CPU (h_r13) @@ -100,7 +100,7 @@ fr30bf_h_ps_set_handler (current_cpu, (x));\ #define SET_H_SBIT(x) \ do { \ fr30bf_h_sbit_set_handler (current_cpu, (x));\ -} while (0) +;} while (0) /* trace trap bit */ BI h_tbit; #define GET_H_TBIT() CPU (h_tbit) @@ -119,21 +119,21 @@ fr30bf_h_sbit_set_handler (current_cpu, (x));\ #define SET_H_CCR(x) \ do { \ fr30bf_h_ccr_set_handler (current_cpu, (x));\ -} while (0) +;} while (0) /* system condition bits */ UQI h_scr; #define GET_H_SCR() fr30bf_h_scr_get_handler (current_cpu) #define SET_H_SCR(x) \ do { \ fr30bf_h_scr_set_handler (current_cpu, (x));\ -} while (0) +;} while (0) /* interrupt level mask */ UQI h_ilm; #define GET_H_ILM() fr30bf_h_ilm_get_handler (current_cpu) #define SET_H_ILM(x) \ do { \ fr30bf_h_ilm_set_handler (current_cpu, (x));\ -} while (0) +;} while (0) } hardware; #define CPU_CGEN_HW(cpu) (& (cpu)->cpu_data.hardware) } FR30BF_CPU_DATA; @@ -230,43 +230,57 @@ union sem_fields { unsigned char out_h_gr_13; } sfmt_dmovr13pi; struct { /* */ + UINT f_Rs2; + unsigned char in_h_gr_15; + unsigned char out_h_gr_15; + } sfmt_ldr15dr; + struct { /* */ SI* i_Ri; + UINT f_Ri; UINT f_Rs1; unsigned char in_Ri; } sfmt_mov2dr; struct { /* */ SI* i_Ri; + UINT f_Ri; UINT f_Rs1; unsigned char out_Ri; } sfmt_movdr; struct { /* */ - UINT f_Rs2; - unsigned char in_h_gr_15; - unsigned char out_h_gr_15; - } sfmt_ldr15dr; - struct { /* */ SI* i_Ri; + UINT f_Ri; UINT f_i32; unsigned char out_Ri; } sfmt_ldi32; struct { /* */ SI* i_Ri; + UINT f_Ri; UINT f_i20; unsigned char out_Ri; } sfmt_ldi20; struct { /* */ SI* i_Ri; + UINT f_Ri; UINT f_i8; unsigned char out_Ri; } sfmt_ldi8; struct { /* */ + USI f_u10; + unsigned char in_h_gr_14; + unsigned char in_h_gr_15; + unsigned char out_h_gr_14; + unsigned char out_h_gr_15; + } sfmt_enter; + struct { /* */ SI* i_Ri; + UINT f_Ri; unsigned char in_Ri; unsigned char in_h_gr_15; unsigned char out_h_gr_15; } sfmt_str15gr; struct { /* */ SI* i_Ri; + UINT f_Ri; USI f_udisp6; unsigned char in_Ri; unsigned char in_h_gr_15; @@ -274,23 +288,34 @@ union sem_fields { struct { /* */ SI* i_Ri; INT f_disp8; + UINT f_Ri; unsigned char in_Ri; unsigned char in_h_gr_14; } sfmt_str14b; struct { /* */ SI* i_Ri; SI f_disp9; + UINT f_Ri; unsigned char in_Ri; unsigned char in_h_gr_14; } sfmt_str14h; struct { /* */ SI* i_Ri; SI f_disp10; + UINT f_Ri; unsigned char in_Ri; unsigned char in_h_gr_14; } sfmt_str14; struct { /* */ SI* i_Ri; + UINT f_Ri; + unsigned char in_h_gr_15; + unsigned char out_Ri; + unsigned char out_h_gr_15; + } sfmt_ldr15gr; + struct { /* */ + SI* i_Ri; + UINT f_Ri; USI f_udisp6; unsigned char in_h_gr_15; unsigned char out_Ri; @@ -298,57 +323,52 @@ union sem_fields { struct { /* */ SI* i_Ri; INT f_disp8; + UINT f_Ri; unsigned char in_h_gr_14; unsigned char out_Ri; } sfmt_ldr14ub; struct { /* */ SI* i_Ri; SI f_disp9; + UINT f_Ri; unsigned char in_h_gr_14; unsigned char out_Ri; } sfmt_ldr14uh; struct { /* */ SI* i_Ri; SI f_disp10; + UINT f_Ri; unsigned char in_h_gr_14; unsigned char out_Ri; } sfmt_ldr14; struct { /* */ SI* i_Ri; SI f_m4; + UINT f_Ri; unsigned char in_Ri; unsigned char out_Ri; } sfmt_add2; struct { /* */ SI* i_Ri; + UINT f_Ri; UINT f_u4; unsigned char in_Ri; unsigned char out_Ri; } sfmt_addi; struct { /* */ - USI f_u10; - unsigned char in_h_gr_14; - unsigned char in_h_gr_15; - unsigned char out_h_gr_14; - unsigned char out_h_gr_15; - } sfmt_enter; - struct { /* */ SI* i_Ri; SI* i_Rj; + UINT f_Ri; + UINT f_Rj; unsigned char in_Ri; unsigned char in_Rj; unsigned char in_h_gr_13; } sfmt_str13; struct { /* */ SI* i_Ri; - UINT f_Ri; - unsigned char in_h_gr_15; - unsigned char out_Ri; - unsigned char out_h_gr_15; - } sfmt_ldr15gr; - struct { /* */ - SI* i_Ri; SI* i_Rj; + UINT f_Ri; + UINT f_Rj; unsigned char in_Rj; unsigned char in_h_gr_13; unsigned char out_Ri; @@ -356,6 +376,8 @@ union sem_fields { struct { /* */ SI* i_Ri; SI* i_Rj; + UINT f_Ri; + UINT f_Rj; unsigned char in_Ri; unsigned char in_Rj; unsigned char out_Ri; |