Commit 2f6445458e5e9eec54c9f47071bbc6ac70c54c02
1 parent
b48cfdff
Make SYNCI_Step and CCRes CPU-specific.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2651 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
2 changed files
with
16 additions
and
3 deletions
target-mips/translate.c
| ... | ... | @@ -5435,9 +5435,6 @@ void cpu_reset (CPUMIPSState *env) |
| 5435 | 5435 | env->hflags |= MIPS_HFLAG_UM; |
| 5436 | 5436 | env->user_mode_only = 1; |
| 5437 | 5437 | #endif |
| 5438 | - /* XXX some guesswork here, values are CPU specific */ | |
| 5439 | - env->SYNCI_Step = 16; | |
| 5440 | - env->CCRes = 2; | |
| 5441 | 5438 | } |
| 5442 | 5439 | |
| 5443 | 5440 | #include "translate_init.c" | ... | ... |
target-mips/translate_init.c
| ... | ... | @@ -67,6 +67,8 @@ struct mips_def_t { |
| 67 | 67 | int32_t CP0_Config3; |
| 68 | 68 | int32_t CP0_Config6; |
| 69 | 69 | int32_t CP0_Config7; |
| 70 | + int32_t SYNCI_Step; | |
| 71 | + int32_t CCRes; | |
| 70 | 72 | int32_t CP1_fcr0; |
| 71 | 73 | }; |
| 72 | 74 | |
| ... | ... | @@ -82,6 +84,8 @@ static mips_def_t mips_defs[] = |
| 82 | 84 | .CP0_Config1 = MIPS_CONFIG1, |
| 83 | 85 | .CP0_Config2 = MIPS_CONFIG2, |
| 84 | 86 | .CP0_Config3 = MIPS_CONFIG3, |
| 87 | + .SYNCI_Step = 32, | |
| 88 | + .CCRes = 2, | |
| 85 | 89 | .CP1_fcr0 = MIPS_FCR0, |
| 86 | 90 | }, |
| 87 | 91 | { |
| ... | ... | @@ -91,6 +95,8 @@ static mips_def_t mips_defs[] = |
| 91 | 95 | .CP0_Config1 = MIPS_CONFIG1, |
| 92 | 96 | .CP0_Config2 = MIPS_CONFIG2, |
| 93 | 97 | .CP0_Config3 = MIPS_CONFIG3, |
| 98 | + .SYNCI_Step = 32, | |
| 99 | + .CCRes = 2, | |
| 94 | 100 | .CP1_fcr0 = MIPS_FCR0, |
| 95 | 101 | }, |
| 96 | 102 | { |
| ... | ... | @@ -100,6 +106,8 @@ static mips_def_t mips_defs[] = |
| 100 | 106 | .CP0_Config1 = MIPS_CONFIG1, |
| 101 | 107 | .CP0_Config2 = MIPS_CONFIG2, |
| 102 | 108 | .CP0_Config3 = MIPS_CONFIG3, |
| 109 | + .SYNCI_Step = 32, | |
| 110 | + .CCRes = 2, | |
| 103 | 111 | .CP1_fcr0 = MIPS_FCR0, |
| 104 | 112 | }, |
| 105 | 113 | { |
| ... | ... | @@ -109,6 +117,8 @@ static mips_def_t mips_defs[] = |
| 109 | 117 | .CP0_Config1 = MIPS_CONFIG1, |
| 110 | 118 | .CP0_Config2 = MIPS_CONFIG2, |
| 111 | 119 | .CP0_Config3 = MIPS_CONFIG3, |
| 120 | + .SYNCI_Step = 32, | |
| 121 | + .CCRes = 2, | |
| 112 | 122 | .CP1_fcr0 = MIPS_FCR0, |
| 113 | 123 | }, |
| 114 | 124 | { |
| ... | ... | @@ -118,6 +128,8 @@ static mips_def_t mips_defs[] = |
| 118 | 128 | .CP0_Config1 = MIPS_CONFIG1 | (1 << CP0C1_FP), |
| 119 | 129 | .CP0_Config2 = MIPS_CONFIG2, |
| 120 | 130 | .CP0_Config3 = MIPS_CONFIG3, |
| 131 | + .SYNCI_Step = 32, | |
| 132 | + .CCRes = 2, | |
| 121 | 133 | .CP1_fcr0 = MIPS_FCR0, |
| 122 | 134 | }, |
| 123 | 135 | #else |
| ... | ... | @@ -128,6 +140,8 @@ static mips_def_t mips_defs[] = |
| 128 | 140 | .CP0_Config1 = MIPS_CONFIG1 | (1 << CP0C1_FP), |
| 129 | 141 | .CP0_Config2 = MIPS_CONFIG2, |
| 130 | 142 | .CP0_Config3 = MIPS_CONFIG3, |
| 143 | + .SYNCI_Step = 16, | |
| 144 | + .CCRes = 2, | |
| 131 | 145 | .CP1_fcr0 = MIPS_FCR0, |
| 132 | 146 | }, |
| 133 | 147 | #endif |
| ... | ... | @@ -175,6 +189,8 @@ int cpu_mips_register (CPUMIPSState *env, mips_def_t *def) |
| 175 | 189 | env->CP0_Config3 = def->CP0_Config3; |
| 176 | 190 | env->CP0_Config6 = def->CP0_Config6; |
| 177 | 191 | env->CP0_Config7 = def->CP0_Config7; |
| 192 | + env->SYNCI_Step = def->SYNCI_Step; | |
| 193 | + env->CCRes = def->CCRes; | |
| 178 | 194 | env->fcr0 = def->CP1_fcr0; |
| 179 | 195 | return 0; |
| 180 | 196 | } | ... | ... |