VirtualBox

Ignore:
Timestamp:
Nov 5, 2008 3:27:47 AM (16 years ago)
Author:
vboxsync
Message:

And yet more %V* -> %R* changes...

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/recompiler_new/target-i386/translate.c

    r13672 r13839  
    519519}
    520520#endif
    521    
     521
    522522static void gen_add_A0_im(DisasContext *s, int val)
    523523{
     
    624624{
    625625    tcg_gen_ld_tl(cpu_tmp0, cpu_env, offsetof(CPUState, regs[reg]));
    626     if (shift != 0) 
     626    if (shift != 0)
    627627        tcg_gen_shli_tl(cpu_tmp0, cpu_tmp0, shift);
    628628    tcg_gen_add_tl(cpu_A0, cpu_A0, cpu_tmp0);
     
    690690{
    691691    tcg_gen_ld_tl(cpu_tmp0, cpu_env, offsetof(CPUState, regs[reg]));
    692     if (shift != 0) 
     692    if (shift != 0)
    693693        tcg_gen_shli_tl(cpu_tmp0, cpu_tmp0, shift);
    694694    tcg_gen_add_tl(cpu_A0, cpu_A0, cpu_tmp0);
     
    826826    int skip_label;
    827827    TCGv t0;
    828    
     828
    829829    skip_label = gen_new_label();
    830830    /* t0 = tcg_temp_local_new(TCG_TYPE_TL); */
    831     t0 = cpu_tmp0; 
     831    t0 = cpu_tmp0;
    832832
    833833    tcg_gen_ld32u_tl(t0, cpu_env, offsetof(CPUState, interrupt_request));
    834834    /* Keep in sync with helper_check_external_event() */
    835     tcg_gen_andi_tl(t0, t0, 
     835    tcg_gen_andi_tl(t0, t0,
    836836                    CPU_INTERRUPT_EXTERNAL_EXIT
    837837                    | CPU_INTERRUPT_EXTERNAL_TIMER
     
    923923
    924924#ifndef VBOX
    925 static inline void gen_op_movl_T0_Dshift(int ot) 
     925static inline void gen_op_movl_T0_Dshift(int ot)
    926926#else /* VBOX */
    927 DECLINLINE(void) gen_op_movl_T0_Dshift(int ot) 
     927DECLINLINE(void) gen_op_movl_T0_Dshift(int ot)
    928928#endif /* VBOX */
    929929{
     
    11091109#if TCG_TARGET_REG_BITS == 32
    11101110    tcg_gen_shli_i32(cpu_tmp2_i32, cpu_cc_op, 3);
    1111     tcg_gen_addi_i32(cpu_tmp2_i32, cpu_tmp2_i32, 
     1111    tcg_gen_addi_i32(cpu_tmp2_i32, cpu_tmp2_i32,
    11121112                     (long)cc_table + offsetof(CCTable, compute_c));
    11131113    tcg_gen_ld_i32(cpu_tmp2_i32, cpu_tmp2_i32, 0);
    1114     tcg_gen_call(&tcg_ctx, cpu_tmp2_i32, TCG_CALL_PURE, 
     1114    tcg_gen_call(&tcg_ctx, cpu_tmp2_i32, TCG_CALL_PURE,
    11151115                 1, &cpu_tmp2_i32, 0, NULL);
    11161116#else
    11171117    tcg_gen_extu_i32_tl(cpu_tmp1_i64, cpu_cc_op);
    11181118    tcg_gen_shli_i64(cpu_tmp1_i64, cpu_tmp1_i64, 4);
    1119     tcg_gen_addi_i64(cpu_tmp1_i64, cpu_tmp1_i64, 
     1119    tcg_gen_addi_i64(cpu_tmp1_i64, cpu_tmp1_i64,
    11201120                     (long)cc_table + offsetof(CCTable, compute_c));
    11211121    tcg_gen_ld_i64(cpu_tmp1_i64, cpu_tmp1_i64, 0);
    1122     tcg_gen_call(&tcg_ctx, cpu_tmp1_i64, TCG_CALL_PURE, 
     1122    tcg_gen_call(&tcg_ctx, cpu_tmp1_i64, TCG_CALL_PURE,
    11231123                 1, &cpu_tmp2_i32, 0, NULL);
    11241124#endif
     
    11311131#if TCG_TARGET_REG_BITS == 32
    11321132    tcg_gen_shli_i32(cpu_tmp2_i32, cpu_cc_op, 3);
    1133     tcg_gen_addi_i32(cpu_tmp2_i32, cpu_tmp2_i32, 
     1133    tcg_gen_addi_i32(cpu_tmp2_i32, cpu_tmp2_i32,
    11341134                     (long)cc_table + offsetof(CCTable, compute_all));
    11351135    tcg_gen_ld_i32(cpu_tmp2_i32, cpu_tmp2_i32, 0);
    1136     tcg_gen_call(&tcg_ctx, cpu_tmp2_i32, TCG_CALL_PURE, 
     1136    tcg_gen_call(&tcg_ctx, cpu_tmp2_i32, TCG_CALL_PURE,
    11371137                 1, &cpu_tmp2_i32, 0, NULL);
    11381138#else
    11391139    tcg_gen_extu_i32_tl(cpu_tmp1_i64, cpu_cc_op);
    11401140    tcg_gen_shli_i64(cpu_tmp1_i64, cpu_tmp1_i64, 4);
    1141     tcg_gen_addi_i64(cpu_tmp1_i64, cpu_tmp1_i64, 
     1141    tcg_gen_addi_i64(cpu_tmp1_i64, cpu_tmp1_i64,
    11421142                     (long)cc_table + offsetof(CCTable, compute_all));
    11431143    tcg_gen_ld_i64(cpu_tmp1_i64, cpu_tmp1_i64, 0);
    1144     tcg_gen_call(&tcg_ctx, cpu_tmp1_i64, TCG_CALL_PURE, 
     1144    tcg_gen_call(&tcg_ctx, cpu_tmp1_i64, TCG_CALL_PURE,
    11451145                 1, &cpu_tmp2_i32, 0, NULL);
    11461146#endif
     
    12771277    case CC_OP_SUBL:
    12781278    case CC_OP_SUBQ:
    1279        
     1279
    12801280        size = cc_op - CC_OP_SUBB;
    12811281        switch(jcc_op) {
     
    13081308            case 0:
    13091309                tcg_gen_andi_tl(cpu_tmp0, cpu_cc_dst, 0x80);
    1310                 tcg_gen_brcondi_tl(inv ? TCG_COND_EQ : TCG_COND_NE, cpu_tmp0, 
     1310                tcg_gen_brcondi_tl(inv ? TCG_COND_EQ : TCG_COND_NE, cpu_tmp0,
    13111311                                   0, l1);
    13121312                break;
    13131313            case 1:
    13141314                tcg_gen_andi_tl(cpu_tmp0, cpu_cc_dst, 0x8000);
    1315                 tcg_gen_brcondi_tl(inv ? TCG_COND_EQ : TCG_COND_NE, cpu_tmp0, 
     1315                tcg_gen_brcondi_tl(inv ? TCG_COND_EQ : TCG_COND_NE, cpu_tmp0,
    13161316                                   0, l1);
    13171317                break;
     
    13191319            case 2:
    13201320                tcg_gen_andi_tl(cpu_tmp0, cpu_cc_dst, 0x80000000);
    1321                 tcg_gen_brcondi_tl(inv ? TCG_COND_EQ : TCG_COND_NE, cpu_tmp0, 
     1321                tcg_gen_brcondi_tl(inv ? TCG_COND_EQ : TCG_COND_NE, cpu_tmp0,
    13221322                                   0, l1);
    13231323                break;
    13241324#endif
    13251325            default:
    1326                 tcg_gen_brcondi_tl(inv ? TCG_COND_GE : TCG_COND_LT, cpu_cc_dst, 
     1326                tcg_gen_brcondi_tl(inv ? TCG_COND_GE : TCG_COND_LT, cpu_cc_dst,
    13271327                                   0, l1);
    13281328                break;
    13291329            }
    13301330            break;
    1331            
     1331
    13321332        case JCC_B:
    13331333            cond = inv ? TCG_COND_GEU : TCG_COND_LTU;
     
    13611361            tcg_gen_brcond_tl(cond, cpu_tmp4, t0, l1);
    13621362            break;
    1363            
     1363
    13641364        case JCC_L:
    13651365            cond = inv ? TCG_COND_GE : TCG_COND_LT;
     
    13931393            tcg_gen_brcond_tl(cond, cpu_tmp4, t0, l1);
    13941394            break;
    1395            
     1395
    13961396        default:
    13971397            goto slow_jcc;
    13981398        }
    13991399        break;
    1400        
     1400
    14011401        /* some jumps are easy to compute */
    14021402    case CC_OP_ADDB:
     
    14041404    case CC_OP_ADDL:
    14051405    case CC_OP_ADDQ:
    1406        
     1406
    14071407    case CC_OP_ADCB:
    14081408    case CC_OP_ADCW:
    14091409    case CC_OP_ADCL:
    14101410    case CC_OP_ADCQ:
    1411        
     1411
    14121412    case CC_OP_SBBB:
    14131413    case CC_OP_SBBW:
    14141414    case CC_OP_SBBL:
    14151415    case CC_OP_SBBQ:
    1416        
     1416
    14171417    case CC_OP_LOGICB:
    14181418    case CC_OP_LOGICW:
    14191419    case CC_OP_LOGICL:
    14201420    case CC_OP_LOGICQ:
    1421        
     1421
    14221422    case CC_OP_INCB:
    14231423    case CC_OP_INCW:
    14241424    case CC_OP_INCL:
    14251425    case CC_OP_INCQ:
    1426        
     1426
    14271427    case CC_OP_DECB:
    14281428    case CC_OP_DECW:
    14291429    case CC_OP_DECL:
    14301430    case CC_OP_DECQ:
    1431        
     1431
    14321432    case CC_OP_SHLB:
    14331433    case CC_OP_SHLW:
    14341434    case CC_OP_SHLL:
    14351435    case CC_OP_SHLQ:
    1436        
     1436
    14371437    case CC_OP_SARB:
    14381438    case CC_OP_SARW:
     
    14531453    slow_jcc:
    14541454        gen_setcc_slow_T0(s, jcc_op);
    1455         tcg_gen_brcondi_tl(inv ? TCG_COND_EQ : TCG_COND_NE, 
     1455        tcg_gen_brcondi_tl(inv ? TCG_COND_EQ : TCG_COND_NE,
    14561456                           cpu_T[0], 0, l1);
    14571457        break;
     
    18021802}
    18031803
    1804 static void gen_shift_rm_T1(DisasContext *s, int ot, int op1, 
     1804static void gen_shift_rm_T1(DisasContext *s, int ot, int op1,
    18051805                            int is_right, int is_arith)
    18061806{
     
    18441844    else
    18451845        gen_op_mov_reg_T0(ot, op1);
    1846        
     1846
    18471847    /* update eflags if non zero shift */
    18481848    if (s->cc_op != CC_OP_DYNAMIC)
     
    18651865    else
    18661866        tcg_gen_movi_i32(cpu_cc_op, CC_OP_SHLB + ot);
    1867        
     1867
    18681868    gen_set_label(shift_label);
    18691869    s->cc_op = CC_OP_DYNAMIC; /* cannot predict flags after */
     
    18771877{
    18781878    int mask;
    1879    
     1879
    18801880    if (ot == OT_QUAD)
    18811881        mask = 0x3f;
     
    19121912    else
    19131913        gen_op_mov_reg_T0(ot, op1);
    1914        
     1914
    19151915    /* update eflags if non zero shift */
    19161916    if (op2 != 0) {
     
    19371937
    19381938/* XXX: add faster immediate case */
    1939 static void gen_rot_rm_T1(DisasContext *s, int ot, int op1, 
     1939static void gen_rot_rm_T1(DisasContext *s, int ot, int op1,
    19401940                          int is_right)
    19411941{
     
    19711971    label1 = gen_new_label();
    19721972    tcg_gen_brcondi_tl(TCG_COND_EQ, t1, 0, label1);
    1973    
     1973
    19741974    if (ot <= OT_WORD)
    19751975        tcg_gen_andi_tl(cpu_tmp0, t1, (1 << (3 + ot)) - 1);
    19761976    else
    19771977        tcg_gen_mov_tl(cpu_tmp0, t1);
    1978    
     1978
    19791979    gen_extu(ot, t0);
    19801980    tcg_gen_mov_tl(t2, t0);
     
    20012001        gen_op_mov_reg_v(ot, op1, t0);
    20022002    }
    2003    
     2003
    20042004    /* update eflags */
    20052005    if (s->cc_op != CC_OP_DYNAMIC)
     
    20202020    tcg_gen_andi_tl(t0, t0, CC_C);
    20212021    tcg_gen_or_tl(cpu_cc_src, cpu_cc_src, t0);
    2022    
     2022
    20232023    tcg_gen_discard_tl(cpu_cc_dst);
    20242024    tcg_gen_movi_i32(cpu_cc_op, CC_OP_EFLAGS);
    2025        
     2025
    20262026    gen_set_label(label2);
    20272027    s->cc_op = CC_OP_DYNAMIC; /* cannot predict flags after */
     
    20452045
    20462046/* XXX: add faster immediate = 1 case */
    2047 static void gen_rotc_rm_T1(DisasContext *s, int ot, int op1, 
     2047static void gen_rotc_rm_T1(DisasContext *s, int ot, int op1,
    20482048                           int is_right)
    20492049{
     
    20582058    else
    20592059        gen_op_mov_TN_reg(ot, 0, op1);
    2060    
     2060
    20612061    tcg_gen_helper_1_2(helper_rotc[ot + (is_right * 4)],
    20622062                       cpu_T[0], cpu_T[0], cpu_T[1]);
     
    20742074    tcg_gen_discard_tl(cpu_cc_dst);
    20752075    tcg_gen_movi_i32(cpu_cc_op, CC_OP_EFLAGS);
    2076        
     2076
    20772077    gen_set_label(label1);
    20782078    s->cc_op = CC_OP_DYNAMIC; /* cannot predict flags after */
     
    20802080
    20812081/* XXX: add faster immediate case */
    2082 static void gen_shiftd_rm_T1_T3(DisasContext *s, int ot, int op1, 
     2082static void gen_shiftd_rm_T1_T3(DisasContext *s, int ot, int op1,
    20832083                                int is_right)
    20842084{
     
    21142114    label1 = gen_new_label();
    21152115    tcg_gen_brcondi_tl(TCG_COND_EQ, t2, 0, label1);
    2116    
     2116
    21172117    tcg_gen_addi_tl(cpu_tmp5, t2, -1);
    21182118    if (ot == OT_WORD) {
     
    21252125
    21262126            tcg_gen_shr_tl(cpu_tmp4, t0, cpu_tmp5);
    2127            
     2127
    21282128            /* only needed if count > 16, but a test would complicate */
    21292129            tcg_gen_sub_tl(cpu_tmp5, tcg_const_tl(32), t2);
     
    21392139            tcg_gen_or_tl(t1, t1, t0);
    21402140            tcg_gen_ext32u_tl(t1, t1);
    2141            
     2141
    21422142            tcg_gen_shl_tl(cpu_tmp4, t0, cpu_tmp5);
    21432143            tcg_gen_sub_tl(cpu_tmp0, tcg_const_tl(32), cpu_tmp5);
     
    21622162            tcg_gen_shl_tl(t1, t1, cpu_tmp5);
    21632163            tcg_gen_or_tl(t0, t0, t1);
    2164            
     2164
    21652165        } else {
    21662166            if (ot == OT_LONG)
     
    21682168
    21692169            tcg_gen_shl_tl(cpu_tmp4, t0, cpu_tmp5);
    2170            
     2170
    21712171            tcg_gen_shl_tl(t0, t0, t2);
    21722172            tcg_gen_sub_tl(cpu_tmp5, tcg_const_tl(data_bits), t2);
     
    21842184        gen_op_mov_reg_v(ot, op1, t0);
    21852185    }
    2186    
     2186
    21872187    /* update eflags */
    21882188    if (s->cc_op != CC_OP_DYNAMIC)
     
    26322632        l1 = gen_new_label();
    26332633        gen_jcc1(s, cc_op, b, l1);
    2634        
     2634
    26352635        gen_goto_tb(s, 0, next_eip);
    26362636
     
    26892689#endif /* VBOX */
    26902690{
    2691     tcg_gen_ld32u_tl(cpu_T[0], cpu_env, 
     2691    tcg_gen_ld32u_tl(cpu_T[0], cpu_env,
    26922692                     offsetof(CPUX86State,segs[seg_reg].selector));
    26932693}
     
    27002700{
    27012701    tcg_gen_andi_tl(cpu_T[0], cpu_T[0], 0xffff);
    2702     tcg_gen_st32_tl(cpu_T[0], cpu_env, 
     2702    tcg_gen_st32_tl(cpu_T[0], cpu_env,
    27032703                    offsetof(CPUX86State,segs[seg_reg].selector));
    27042704    tcg_gen_shli_tl(cpu_T[0], cpu_T[0], 4);
    2705     tcg_gen_st_tl(cpu_T[0], cpu_env, 
     2705    tcg_gen_st_tl(cpu_T[0], cpu_env,
    27062706                  offsetof(CPUX86State,segs[seg_reg].base));
    27072707#ifdef VBOX
     
    27612761        gen_op_set_cc_op(s->cc_op);
    27622762    gen_jmp_im(pc_start - s->cs_base);
    2763     tcg_gen_helper_0_2(helper_svm_check_intercept_param, 
     2763    tcg_gen_helper_0_2(helper_svm_check_intercept_param,
    27642764                       tcg_const_i32(type), tcg_const_i64(param));
    27652765}
     
    30313031        gen_op_set_cc_op(s->cc_op);
    30323032    gen_jmp_im(cur_eip);
    3033     tcg_gen_helper_0_2(helper_raise_interrupt, 
    3034                        tcg_const_i32(intno), 
     3033    tcg_gen_helper_0_2(helper_raise_interrupt,
     3034                       tcg_const_i32(intno),
    30353035                       tcg_const_i32(next_eip - cur_eip));
    30363036    s->is_jmp = 3;
     
    35583558            {
    35593559                gen_ldst_modrm(s, modrm, OT_LONG, OR_TMP0, 0);
    3560                 tcg_gen_addi_ptr(cpu_ptr0, cpu_env, 
     3560                tcg_gen_addi_ptr(cpu_ptr0, cpu_env,
    35613561                                 offsetof(CPUX86State,fpregs[reg].mmx));
    35623562                tcg_gen_helper_0_2(helper_movl_mm_T0_mmx, cpu_ptr0, cpu_T[0]);
     
    35673567            if (s->dflag == 2) {
    35683568                gen_ldst_modrm(s, modrm, OT_QUAD, OR_TMP0, 0);
    3569                 tcg_gen_addi_ptr(cpu_ptr0, cpu_env, 
     3569                tcg_gen_addi_ptr(cpu_ptr0, cpu_env,
    35703570                                 offsetof(CPUX86State,xmm_regs[reg]));
    35713571                tcg_gen_helper_0_2(helper_movq_mm_T0_xmm, cpu_ptr0, cpu_T[0]);
     
    35743574            {
    35753575                gen_ldst_modrm(s, modrm, OT_LONG, OR_TMP0, 0);
    3576                 tcg_gen_addi_ptr(cpu_ptr0, cpu_env, 
     3576                tcg_gen_addi_ptr(cpu_ptr0, cpu_env,
    35773577                                 offsetof(CPUX86State,xmm_regs[reg]));
    35783578                tcg_gen_trunc_tl_i32(cpu_tmp2_i32, cpu_T[0]);
     
    37063706#ifdef TARGET_X86_64
    37073707            if (s->dflag == 2) {
    3708                 tcg_gen_ld_i64(cpu_T[0], cpu_env, 
     3708                tcg_gen_ld_i64(cpu_T[0], cpu_env,
    37093709                               offsetof(CPUX86State,fpregs[reg].mmx));
    37103710                gen_ldst_modrm(s, modrm, OT_QUAD, OR_TMP0, 1);
     
    37123712#endif
    37133713            {
    3714                 tcg_gen_ld32u_tl(cpu_T[0], cpu_env, 
     3714                tcg_gen_ld32u_tl(cpu_T[0], cpu_env,
    37153715                                 offsetof(CPUX86State,fpregs[reg].mmx.MMX_L(0)));
    37163716                gen_ldst_modrm(s, modrm, OT_LONG, OR_TMP0, 1);
     
    37203720#ifdef TARGET_X86_64
    37213721            if (s->dflag == 2) {
    3722                 tcg_gen_ld_i64(cpu_T[0], cpu_env, 
     3722                tcg_gen_ld_i64(cpu_T[0], cpu_env,
    37233723                               offsetof(CPUX86State,xmm_regs[reg].XMM_Q(0)));
    37243724                gen_ldst_modrm(s, modrm, OT_QUAD, OR_TMP0, 1);
     
    37263726#endif
    37273727            {
    3728                 tcg_gen_ld32u_tl(cpu_T[0], cpu_env, 
     3728                tcg_gen_ld32u_tl(cpu_T[0], cpu_env,
    37293729                                 offsetof(CPUX86State,xmm_regs[reg].XMM_L(0)));
    37303730                gen_ldst_modrm(s, modrm, OT_LONG, OR_TMP0, 1);
     
    38423842        case 0x050: /* movmskps */
    38433843            rm = (modrm & 7) | REX_B(s);
    3844             tcg_gen_addi_ptr(cpu_ptr0, cpu_env, 
     3844            tcg_gen_addi_ptr(cpu_ptr0, cpu_env,
    38453845                             offsetof(CPUX86State,xmm_regs[rm]));
    38463846            tcg_gen_helper_1_1(helper_movmskps, cpu_tmp2_i32, cpu_ptr0);
     
    38503850        case 0x150: /* movmskpd */
    38513851            rm = (modrm & 7) | REX_B(s);
    3852             tcg_gen_addi_ptr(cpu_ptr0, cpu_env, 
     3852            tcg_gen_addi_ptr(cpu_ptr0, cpu_env,
    38533853                             offsetof(CPUX86State,xmm_regs[rm]));
    38543854            tcg_gen_helper_1_1(helper_movmskpd, cpu_tmp2_i32, cpu_ptr0);
     
    45414541    /* illegal sequence. The s->pc is past the lock prefix and that
    45424542       is sufficient for the TB, I think. */
    4543     Log(("illegal lock sequence %VGv (b=%#x)\n", pc_start, b));
     4543    Log(("illegal lock sequence %RGv (b=%#x)\n", pc_start, b));
    45444544    return true;
    45454545}
     
    51365136                tcg_gen_helper_0_4(helper_lcall_protected,
    51375137                                   cpu_tmp2_i32, cpu_T[1],
    5138                                    tcg_const_i32(dflag), 
     5138                                   tcg_const_i32(dflag),
    51395139                                   tcg_const_i32(s->pc - pc_start));
    51405140            } else {
     
    51425142                tcg_gen_helper_0_4(helper_lcall_real,
    51435143                                   cpu_tmp2_i32, cpu_T[1],
    5144                                    tcg_const_i32(dflag), 
     5144                                   tcg_const_i32(dflag),
    51455145                                   tcg_const_i32(s->pc - s->cs_base));
    51465146            }
     
    54115411            tcg_gen_helper_0_1(helper_cmpxchg16b, cpu_A0);
    54125412        } else
    5413 #endif       
     5413#endif
    54145414        {
    54155415            if (!(s->cpuid_features & CPUID_CX8))
     
    59905990                        break;
    59915991                    case 2:
    5992                         tcg_gen_qemu_ld64(cpu_tmp1_i64, cpu_A0, 
     5992                        tcg_gen_qemu_ld64(cpu_tmp1_i64, cpu_A0,
    59935993                                          (s->mem_index >> 2) - 1);
    59945994                        tcg_gen_helper_0_1(helper_fldl_FT0, cpu_tmp1_i64);
     
    60296029                        break;
    60306030                    case 2:
    6031                         tcg_gen_qemu_ld64(cpu_tmp1_i64, cpu_A0, 
     6031                        tcg_gen_qemu_ld64(cpu_tmp1_i64, cpu_A0,
    60326032                                          (s->mem_index >> 2) - 1);
    60336033                        tcg_gen_helper_0_1(helper_fldl_ST0, cpu_tmp1_i64);
     
    60516051                    case 2:
    60526052                        tcg_gen_helper_1_0(helper_fisttll_ST0, cpu_tmp1_i64);
    6053                         tcg_gen_qemu_st64(cpu_tmp1_i64, cpu_A0, 
     6053                        tcg_gen_qemu_st64(cpu_tmp1_i64, cpu_A0,
    60546054                                          (s->mem_index >> 2) - 1);
    60556055                        break;
     
    60776077                    case 2:
    60786078                        tcg_gen_helper_1_0(helper_fstl_ST0, cpu_tmp1_i64);
    6079                         tcg_gen_qemu_st64(cpu_tmp1_i64, cpu_A0, 
     6079                        tcg_gen_qemu_st64(cpu_tmp1_i64, cpu_A0,
    60806080                                          (s->mem_index >> 2) - 1);
    60816081                        break;
     
    60966096                    gen_op_set_cc_op(s->cc_op);
    60976097                gen_jmp_im(pc_start - s->cs_base);
    6098                 tcg_gen_helper_0_2(helper_fldenv, 
     6098                tcg_gen_helper_0_2(helper_fldenv,
    60996099                                   cpu_A0, tcg_const_i32(s->dflag));
    61006100                break;
     
    61626162                break;
    61636163            case 0x3d: /* fildll */
    6164                 tcg_gen_qemu_ld64(cpu_tmp1_i64, cpu_A0, 
     6164                tcg_gen_qemu_ld64(cpu_tmp1_i64, cpu_A0,
    61656165                                  (s->mem_index >> 2) - 1);
    61666166                tcg_gen_helper_0_1(helper_fildll_ST0, cpu_tmp1_i64);
     
    61686168            case 0x3f: /* fistpll */
    61696169                tcg_gen_helper_1_0(helper_fistll_ST0, cpu_tmp1_i64);
    6170                 tcg_gen_qemu_st64(cpu_tmp1_i64, cpu_A0, 
     6170                tcg_gen_qemu_st64(cpu_tmp1_i64, cpu_A0,
    61716171                                  (s->mem_index >> 2) - 1);
    61726172                tcg_gen_helper_0_0(helper_fpop);
     
    65566556        gen_op_mov_TN_reg(OT_WORD, 0, R_EDX);
    65576557        gen_op_andl_T0_ffff();
    6558         gen_check_io(s, ot, pc_start - s->cs_base, 
     6558        gen_check_io(s, ot, pc_start - s->cs_base,
    65596559                     SVM_IOIO_TYPE_MASK | svm_is_rep(prefixes) | 4);
    65606560        if (prefixes & (PREFIX_REPZ | PREFIX_REPNZ)) {
     
    67126712            gen_jmp_im(pc_start - s->cs_base);
    67136713            tcg_gen_helper_0_2(helper_lret_protected,
    6714                                tcg_const_i32(s->dflag), 
     6714                               tcg_const_i32(s->dflag),
    67156715                               tcg_const_i32(val));
    67166716        } else {
     
    67576757            gen_jmp_im(pc_start - s->cs_base);
    67586758            tcg_gen_helper_0_2(helper_iret_protected,
    6759                                tcg_const_i32(s->dflag), 
     6759                               tcg_const_i32(s->dflag),
    67606760                               tcg_const_i32(s->pc - s->cs_base));
    67616761            s->cc_op = CC_OP_EFLAGS;
     
    73157315            TCGv tmp0;
    73167316            gen_op_mov_TN_reg(OT_LONG, 0, reg);
    7317            
     7317
    73187318            tmp0 = tcg_temp_new(TCG_TYPE_I32);
    73197319            tcg_gen_trunc_i64_i32(tmp0, cpu_T[0]);
     
    76627662                        break;
    76637663                    } else {
    7664                         tcg_gen_helper_0_2(helper_vmrun, 
     7664                        tcg_gen_helper_0_2(helper_vmrun,
    76657665                                           tcg_const_i32(s->aflag),
    76667666                                           tcg_const_i32(s->pc - pc_start));
     
    76987698                case 4: /* STGI */
    76997699                    if ((!(s->flags & HF_SVME_MASK) &&
    7700                          !(s->cpuid_ext3_features & CPUID_EXT3_SKINIT)) || 
     7700                         !(s->cpuid_ext3_features & CPUID_EXT3_SKINIT)) ||
    77017701                        !s->pe)
    77027702                        goto illegal_op;
     
    77197719                    break;
    77207720                case 6: /* SKINIT */
    7721                     if ((!(s->flags & HF_SVME_MASK) && 
    7722                          !(s->cpuid_ext3_features & CPUID_EXT3_SKINIT)) || 
     7721                    if ((!(s->flags & HF_SVME_MASK) &&
     7722                         !(s->cpuid_ext3_features & CPUID_EXT3_SKINIT)) ||
    77237723                        !s->pe)
    77247724                        goto illegal_op;
     
    79667966                if (b & 2) {
    79677967                    gen_op_mov_TN_reg(ot, 0, rm);
    7968                     tcg_gen_helper_0_2(helper_write_crN, 
     7968                    tcg_gen_helper_0_2(helper_write_crN,
    79697969                                       tcg_const_i32(reg), cpu_T[0]);
    79707970                    gen_jmp_im(s->pc - s->cs_base);
    79717971                    gen_eob(s);
    79727972                } else {
    7973                     tcg_gen_helper_1_1(helper_read_crN, 
     7973                    tcg_gen_helper_1_1(helper_read_crN,
    79747974                                       cpu_T[0], tcg_const_i32(reg));
    79757975                    gen_op_mov_reg_T0(ot, rm);
     
    80538053                gen_op_set_cc_op(s->cc_op);
    80548054            gen_jmp_im(pc_start - s->cs_base);
    8055             tcg_gen_helper_0_2(helper_fxsave, 
     8055            tcg_gen_helper_0_2(helper_fxsave,
    80568056                               cpu_A0, tcg_const_i32((s->dflag == 2)));
    80578057            break;
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette