Commit 8c0ab41f4abdd2e7f47a5cf54a242573e09b96e2

Authored by aurel32
1 parent aefbc83e

Revert "target-mips: fix call to check_*() functions"

This reverts commit r7127, r7132 is a better fix for that.

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@7133 c046a42c-6fe2-441c-8c8c-71466251a162
Showing 1 changed file with 12 additions and 24 deletions
target-mips/translate.c
@@ -6378,13 +6378,10 @@ static void gen_farith (DisasContext *ctx, uint32_t op1, @@ -6378,13 +6378,10 @@ static void gen_farith (DisasContext *ctx, uint32_t op1,
6378 TCGv_i32 fp0 = tcg_temp_new_i32(); 6378 TCGv_i32 fp0 = tcg_temp_new_i32();
6379 TCGv_i32 fp1 = tcg_temp_new_i32(); 6379 TCGv_i32 fp1 = tcg_temp_new_i32();
6380 6380
6381 - if (ctx->opcode & (1 << 6)) {  
6382 - check_cop1x(ctx);  
6383 - }  
6384 -  
6385 gen_load_fpr32(fp0, fs); 6381 gen_load_fpr32(fp0, fs);
6386 gen_load_fpr32(fp1, ft); 6382 gen_load_fpr32(fp1, ft);
6387 if (ctx->opcode & (1 << 6)) { 6383 if (ctx->opcode & (1 << 6)) {
  6384 + check_cop1x(ctx);
6388 gen_cmpabs_s(func-48, fp0, fp1, cc); 6385 gen_cmpabs_s(func-48, fp0, fp1, cc);
6389 opn = condnames_abs[func-48]; 6386 opn = condnames_abs[func-48];
6390 } else { 6387 } else {
@@ -6743,17 +6740,16 @@ static void gen_farith (DisasContext *ctx, uint32_t op1, @@ -6743,17 +6740,16 @@ static void gen_farith (DisasContext *ctx, uint32_t op1,
6743 { 6740 {
6744 TCGv_i64 fp0 = tcg_temp_new_i64(); 6741 TCGv_i64 fp0 = tcg_temp_new_i64();
6745 TCGv_i64 fp1 = tcg_temp_new_i64(); 6742 TCGv_i64 fp1 = tcg_temp_new_i64();
6746 - if (ctx->opcode & (1 << 6)) {  
6747 - check_cop1x(ctx);  
6748 - }  
6749 - check_cp1_registers(ctx, fs | ft);  
6750 6743
6751 gen_load_fpr64(ctx, fp0, fs); 6744 gen_load_fpr64(ctx, fp0, fs);
6752 gen_load_fpr64(ctx, fp1, ft); 6745 gen_load_fpr64(ctx, fp1, ft);
6753 if (ctx->opcode & (1 << 6)) { 6746 if (ctx->opcode & (1 << 6)) {
  6747 + check_cop1x(ctx);
  6748 + check_cp1_registers(ctx, fs | ft);
6754 gen_cmpabs_d(func-48, fp0, fp1, cc); 6749 gen_cmpabs_d(func-48, fp0, fp1, cc);
6755 opn = condnames_abs[func-48]; 6750 opn = condnames_abs[func-48];
6756 } else { 6751 } else {
  6752 + check_cp1_registers(ctx, fs | ft);
6757 gen_cmp_d(func-48, fp0, fp1, cc); 6753 gen_cmp_d(func-48, fp0, fp1, cc);
6758 opn = condnames[func-48]; 6754 opn = condnames[func-48];
6759 } 6755 }
@@ -7222,22 +7218,6 @@ static void gen_flt3_ldst (DisasContext *ctx, uint32_t opc, @@ -7222,22 +7218,6 @@ static void gen_flt3_ldst (DisasContext *ctx, uint32_t opc,
7222 int store = 0; 7218 int store = 0;
7223 TCGv t0 = tcg_temp_new(); 7219 TCGv t0 = tcg_temp_new();
7224 7220
7225 - switch (opc) {  
7226 - case OPC_LWXC1:  
7227 - case OPC_SWXC1:  
7228 - check_cop1x(ctx);  
7229 - break;  
7230 - case OPC_LDXC1:  
7231 - case OPC_SDXC1:  
7232 - check_cop1x(ctx);  
7233 - check_cp1_registers(ctx, fd);  
7234 - break;  
7235 - case OPC_LUXC1:  
7236 - case OPC_SUXC1:  
7237 - check_cp1_64bitmode(ctx);  
7238 - break;  
7239 - }  
7240 -  
7241 if (base == 0) { 7221 if (base == 0) {
7242 gen_load_gpr(t0, index); 7222 gen_load_gpr(t0, index);
7243 } else if (index == 0) { 7223 } else if (index == 0) {
@@ -7251,6 +7231,7 @@ static void gen_flt3_ldst (DisasContext *ctx, uint32_t opc, @@ -7251,6 +7231,7 @@ static void gen_flt3_ldst (DisasContext *ctx, uint32_t opc,
7251 save_cpu_state(ctx, 0); 7231 save_cpu_state(ctx, 0);
7252 switch (opc) { 7232 switch (opc) {
7253 case OPC_LWXC1: 7233 case OPC_LWXC1:
  7234 + check_cop1x(ctx);
7254 { 7235 {
7255 TCGv_i32 fp0 = tcg_temp_new_i32(); 7236 TCGv_i32 fp0 = tcg_temp_new_i32();
7256 7237
@@ -7262,6 +7243,8 @@ static void gen_flt3_ldst (DisasContext *ctx, uint32_t opc, @@ -7262,6 +7243,8 @@ static void gen_flt3_ldst (DisasContext *ctx, uint32_t opc,
7262 opn = "lwxc1"; 7243 opn = "lwxc1";
7263 break; 7244 break;
7264 case OPC_LDXC1: 7245 case OPC_LDXC1:
  7246 + check_cop1x(ctx);
  7247 + check_cp1_registers(ctx, fd);
7265 { 7248 {
7266 TCGv_i64 fp0 = tcg_temp_new_i64(); 7249 TCGv_i64 fp0 = tcg_temp_new_i64();
7267 7250
@@ -7272,6 +7255,7 @@ static void gen_flt3_ldst (DisasContext *ctx, uint32_t opc, @@ -7272,6 +7255,7 @@ static void gen_flt3_ldst (DisasContext *ctx, uint32_t opc,
7272 opn = "ldxc1"; 7255 opn = "ldxc1";
7273 break; 7256 break;
7274 case OPC_LUXC1: 7257 case OPC_LUXC1:
  7258 + check_cp1_64bitmode(ctx);
7275 tcg_gen_andi_tl(t0, t0, ~0x7); 7259 tcg_gen_andi_tl(t0, t0, ~0x7);
7276 { 7260 {
7277 TCGv_i64 fp0 = tcg_temp_new_i64(); 7261 TCGv_i64 fp0 = tcg_temp_new_i64();
@@ -7283,6 +7267,7 @@ static void gen_flt3_ldst (DisasContext *ctx, uint32_t opc, @@ -7283,6 +7267,7 @@ static void gen_flt3_ldst (DisasContext *ctx, uint32_t opc,
7283 opn = "luxc1"; 7267 opn = "luxc1";
7284 break; 7268 break;
7285 case OPC_SWXC1: 7269 case OPC_SWXC1:
  7270 + check_cop1x(ctx);
7286 { 7271 {
7287 TCGv_i32 fp0 = tcg_temp_new_i32(); 7272 TCGv_i32 fp0 = tcg_temp_new_i32();
7288 TCGv t1 = tcg_temp_new(); 7273 TCGv t1 = tcg_temp_new();
@@ -7297,6 +7282,8 @@ static void gen_flt3_ldst (DisasContext *ctx, uint32_t opc, @@ -7297,6 +7282,8 @@ static void gen_flt3_ldst (DisasContext *ctx, uint32_t opc,
7297 store = 1; 7282 store = 1;
7298 break; 7283 break;
7299 case OPC_SDXC1: 7284 case OPC_SDXC1:
  7285 + check_cop1x(ctx);
  7286 + check_cp1_registers(ctx, fs);
7300 { 7287 {
7301 TCGv_i64 fp0 = tcg_temp_new_i64(); 7288 TCGv_i64 fp0 = tcg_temp_new_i64();
7302 7289
@@ -7308,6 +7295,7 @@ static void gen_flt3_ldst (DisasContext *ctx, uint32_t opc, @@ -7308,6 +7295,7 @@ static void gen_flt3_ldst (DisasContext *ctx, uint32_t opc,
7308 store = 1; 7295 store = 1;
7309 break; 7296 break;
7310 case OPC_SUXC1: 7297 case OPC_SUXC1:
  7298 + check_cp1_64bitmode(ctx);
7311 tcg_gen_andi_tl(t0, t0, ~0x7); 7299 tcg_gen_andi_tl(t0, t0, ~0x7);
7312 { 7300 {
7313 TCGv_i64 fp0 = tcg_temp_new_i64(); 7301 TCGv_i64 fp0 = tcg_temp_new_i64();