Changeset 13672 in vbox for trunk/src/recompiler_new/target-i386
- Timestamp:
- Oct 30, 2008 12:09:07 PM (16 years ago)
- svn:sync-xref-src-repo-rev:
- 38627
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/recompiler_new/target-i386/translate.c
r13600 r13672 817 817 #endif /* VBOX */ 818 818 { 819 #ifdef VBOX820 gen_check_external_event();821 #endif /* VBOX */822 819 tcg_gen_movi_tl(cpu_tmp0, pc); 823 820 tcg_gen_st_tl(cpu_tmp0, cpu_env, offsetof(CPUState, eip)); … … 827 824 static void gen_check_external_event() 828 825 { 829 #if 0830 /** @todo: nike make it work */831 /* This code is more effective, but for whatever reason TCG fails to compile it */832 826 int skip_label; 833 827 TCGv t0; 834 828 835 829 skip_label = gen_new_label(); 836 t0 = tcg_temp_local_new(TCG_TYPE_TL);837 /* t0 = cpu_tmp0; */830 /* t0 = tcg_temp_local_new(TCG_TYPE_TL); */ 831 t0 = cpu_tmp0; 838 832 839 833 tcg_gen_ld32u_tl(t0, cpu_env, offsetof(CPUState, interrupt_request)); … … 844 838 | CPU_INTERRUPT_EXTERNAL_DMA 845 839 | CPU_INTERRUPT_EXTERNAL_HARD); 846 tcg_gen_brcond_i32(TCG_COND_EQ, t0, 0, skip_label); 847 tcg_temp_free(t0); 840 /** @todo: predict branch as taken */ 841 tcg_gen_brcondi_i32(TCG_COND_EQ, t0, 0, skip_label); 842 /* tcg_temp_free(t0); */ 848 843 849 844 tcg_gen_helper_0_0(helper_check_external_event); 850 845 851 846 gen_set_label(skip_label); 852 #else853 tcg_gen_helper_0_0(helper_check_external_event);854 #endif855 847 } 856 848 … … 7867 7859 mod = (modrm >> 6) & 3; 7868 7860 rm = modrm & 7; 7869 #ifdef VBOX /* Fix for obvious bug - T1 needs to be loaded */7870 /** @todo: how to do that right? */7871 //gen_op_mov_TN_reg[ot][1][reg]();7872 #endif7873 7861 if (mod != 3) { 7874 7862 gen_lea_modrm(s, modrm, ®_addr, &offset_addr);
Note:
See TracChangeset
for help on using the changeset viewer.