Commit ba7cd150ff7617d1c9b491d6b9c25a1e74fdf708

Authored by bellard
1 parent 19e6c4b8

FPU fixes

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4445 c046a42c-6fe2-441c-8c8c-71466251a162
Showing 1 changed file with 11 additions and 11 deletions
target-i386/translate.c
@@ -4535,12 +4535,12 @@ static target_ulong disas_insn(DisasContext *s, target_ulong pc_start) @@ -4535,12 +4535,12 @@ static target_ulong disas_insn(DisasContext *s, target_ulong pc_start)
4535 4535
4536 switch(op >> 4) { 4536 switch(op >> 4) {
4537 case 0: 4537 case 0:
4538 - gen_op_ld_T0_A0(OT_LONG); 4538 + gen_op_ld_T0_A0(OT_LONG + s->mem_index);
4539 tcg_gen_trunc_tl_i32(cpu_tmp2, cpu_T[0]); 4539 tcg_gen_trunc_tl_i32(cpu_tmp2, cpu_T[0]);
4540 tcg_gen_helper_0_1(helper_flds_FT0, cpu_tmp2); 4540 tcg_gen_helper_0_1(helper_flds_FT0, cpu_tmp2);
4541 break; 4541 break;
4542 case 1: 4542 case 1:
4543 - gen_op_ld_T0_A0(OT_LONG); 4543 + gen_op_ld_T0_A0(OT_LONG + s->mem_index);
4544 tcg_gen_trunc_tl_i32(cpu_tmp2, cpu_T[0]); 4544 tcg_gen_trunc_tl_i32(cpu_tmp2, cpu_T[0]);
4545 tcg_gen_helper_0_1(helper_fildl_FT0, cpu_tmp2); 4545 tcg_gen_helper_0_1(helper_fildl_FT0, cpu_tmp2);
4546 break; 4546 break;
@@ -4551,7 +4551,7 @@ static target_ulong disas_insn(DisasContext *s, target_ulong pc_start) @@ -4551,7 +4551,7 @@ static target_ulong disas_insn(DisasContext *s, target_ulong pc_start)
4551 break; 4551 break;
4552 case 3: 4552 case 3:
4553 default: 4553 default:
4554 - gen_op_ld_T0_A0(OT_WORD); 4554 + gen_op_lds_T0_A0(OT_WORD + s->mem_index);
4555 tcg_gen_trunc_tl_i32(cpu_tmp2, cpu_T[0]); 4555 tcg_gen_trunc_tl_i32(cpu_tmp2, cpu_T[0]);
4556 tcg_gen_helper_0_1(helper_fildl_FT0, cpu_tmp2); 4556 tcg_gen_helper_0_1(helper_fildl_FT0, cpu_tmp2);
4557 break; 4557 break;
@@ -4574,12 +4574,12 @@ static target_ulong disas_insn(DisasContext *s, target_ulong pc_start) @@ -4574,12 +4574,12 @@ static target_ulong disas_insn(DisasContext *s, target_ulong pc_start)
4574 case 0: 4574 case 0:
4575 switch(op >> 4) { 4575 switch(op >> 4) {
4576 case 0: 4576 case 0:
4577 - gen_op_ld_T0_A0(OT_LONG); 4577 + gen_op_ld_T0_A0(OT_LONG + s->mem_index);
4578 tcg_gen_trunc_tl_i32(cpu_tmp2, cpu_T[0]); 4578 tcg_gen_trunc_tl_i32(cpu_tmp2, cpu_T[0]);
4579 tcg_gen_helper_0_1(helper_flds_ST0, cpu_tmp2); 4579 tcg_gen_helper_0_1(helper_flds_ST0, cpu_tmp2);
4580 break; 4580 break;
4581 case 1: 4581 case 1:
4582 - gen_op_ld_T0_A0(OT_LONG); 4582 + gen_op_ld_T0_A0(OT_LONG + s->mem_index);
4583 tcg_gen_trunc_tl_i32(cpu_tmp2, cpu_T[0]); 4583 tcg_gen_trunc_tl_i32(cpu_tmp2, cpu_T[0]);
4584 tcg_gen_helper_0_1(helper_fildl_ST0, cpu_tmp2); 4584 tcg_gen_helper_0_1(helper_fildl_ST0, cpu_tmp2);
4585 break; 4585 break;
@@ -4590,7 +4590,7 @@ static target_ulong disas_insn(DisasContext *s, target_ulong pc_start) @@ -4590,7 +4590,7 @@ static target_ulong disas_insn(DisasContext *s, target_ulong pc_start)
4590 break; 4590 break;
4591 case 3: 4591 case 3:
4592 default: 4592 default:
4593 - gen_op_ld_T0_A0(OT_WORD); 4593 + gen_op_lds_T0_A0(OT_WORD + s->mem_index);
4594 tcg_gen_trunc_tl_i32(cpu_tmp2, cpu_T[0]); 4594 tcg_gen_trunc_tl_i32(cpu_tmp2, cpu_T[0]);
4595 tcg_gen_helper_0_1(helper_fildl_ST0, cpu_tmp2); 4595 tcg_gen_helper_0_1(helper_fildl_ST0, cpu_tmp2);
4596 break; 4596 break;
@@ -4602,7 +4602,7 @@ static target_ulong disas_insn(DisasContext *s, target_ulong pc_start) @@ -4602,7 +4602,7 @@ static target_ulong disas_insn(DisasContext *s, target_ulong pc_start)
4602 case 1: 4602 case 1:
4603 tcg_gen_helper_1_0(helper_fisttl_ST0, cpu_tmp2); 4603 tcg_gen_helper_1_0(helper_fisttl_ST0, cpu_tmp2);
4604 tcg_gen_extu_i32_tl(cpu_T[0], cpu_tmp2); 4604 tcg_gen_extu_i32_tl(cpu_T[0], cpu_tmp2);
4605 - gen_op_st_T0_A0(OT_LONG); 4605 + gen_op_st_T0_A0(OT_LONG + s->mem_index);
4606 break; 4606 break;
4607 case 2: 4607 case 2:
4608 tcg_gen_helper_1_0(helper_fisttll_ST0, cpu_tmp1); 4608 tcg_gen_helper_1_0(helper_fisttll_ST0, cpu_tmp1);
@@ -4613,7 +4613,7 @@ static target_ulong disas_insn(DisasContext *s, target_ulong pc_start) @@ -4613,7 +4613,7 @@ static target_ulong disas_insn(DisasContext *s, target_ulong pc_start)
4613 default: 4613 default:
4614 tcg_gen_helper_1_0(helper_fistt_ST0, cpu_tmp2); 4614 tcg_gen_helper_1_0(helper_fistt_ST0, cpu_tmp2);
4615 tcg_gen_extu_i32_tl(cpu_T[0], cpu_tmp2); 4615 tcg_gen_extu_i32_tl(cpu_T[0], cpu_tmp2);
4616 - gen_op_st_T0_A0(OT_WORD); 4616 + gen_op_st_T0_A0(OT_WORD + s->mem_index);
4617 break; 4617 break;
4618 } 4618 }
4619 tcg_gen_helper_0_0(helper_fpop); 4619 tcg_gen_helper_0_0(helper_fpop);
@@ -4623,12 +4623,12 @@ static target_ulong disas_insn(DisasContext *s, target_ulong pc_start) @@ -4623,12 +4623,12 @@ static target_ulong disas_insn(DisasContext *s, target_ulong pc_start)
4623 case 0: 4623 case 0:
4624 tcg_gen_helper_1_0(helper_fsts_ST0, cpu_tmp2); 4624 tcg_gen_helper_1_0(helper_fsts_ST0, cpu_tmp2);
4625 tcg_gen_extu_i32_tl(cpu_T[0], cpu_tmp2); 4625 tcg_gen_extu_i32_tl(cpu_T[0], cpu_tmp2);
4626 - gen_op_st_T0_A0(OT_LONG); 4626 + gen_op_st_T0_A0(OT_LONG + s->mem_index);
4627 break; 4627 break;
4628 case 1: 4628 case 1:
4629 tcg_gen_helper_1_0(helper_fistl_ST0, cpu_tmp2); 4629 tcg_gen_helper_1_0(helper_fistl_ST0, cpu_tmp2);
4630 tcg_gen_extu_i32_tl(cpu_T[0], cpu_tmp2); 4630 tcg_gen_extu_i32_tl(cpu_T[0], cpu_tmp2);
4631 - gen_op_st_T0_A0(OT_LONG); 4631 + gen_op_st_T0_A0(OT_LONG + s->mem_index);
4632 break; 4632 break;
4633 case 2: 4633 case 2:
4634 tcg_gen_helper_1_0(helper_fstl_ST0, cpu_tmp1); 4634 tcg_gen_helper_1_0(helper_fstl_ST0, cpu_tmp1);
@@ -4639,7 +4639,7 @@ static target_ulong disas_insn(DisasContext *s, target_ulong pc_start) @@ -4639,7 +4639,7 @@ static target_ulong disas_insn(DisasContext *s, target_ulong pc_start)
4639 default: 4639 default:
4640 tcg_gen_helper_1_0(helper_fist_ST0, cpu_tmp2); 4640 tcg_gen_helper_1_0(helper_fist_ST0, cpu_tmp2);
4641 tcg_gen_extu_i32_tl(cpu_T[0], cpu_tmp2); 4641 tcg_gen_extu_i32_tl(cpu_T[0], cpu_tmp2);
4642 - gen_op_st_T0_A0(OT_WORD); 4642 + gen_op_st_T0_A0(OT_WORD + s->mem_index);
4643 break; 4643 break;
4644 } 4644 }
4645 if ((op & 7) == 3) 4645 if ((op & 7) == 3)