Changeset 66262 in vbox for trunk/src/recompiler/target-i386
- Timestamp:
- Mar 27, 2017 10:25:29 AM (8 years ago)
- svn:sync-xref-src-repo-rev:
- 114183
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/recompiler/target-i386/op_helper.c
r58562 r66262 311 311 cpu_abort(env, "invalid tss"); 312 312 type = (env->tr.flags >> DESC_TYPE_SHIFT) & 0xf; 313 if ((type & 7) != 1)313 if ((type & 7) != 3) 314 314 cpu_abort(env, "invalid tss type"); 315 315 shift = type >> 3; … … 596 596 env->tr.flags = e2 & ~DESC_TSS_BUSY_MASK; 597 597 #else 598 env->tr.flags = e2 & (DESC_RAW_FLAG_BITS & ~(DESC_TSS_BUSY_MASK)); /** @todo stop clearing the busy bit, VT-x and AMD-V seems to set it in the hidden bits. */598 env->tr.flags = (e2 | DESC_TSS_BUSY_MASK) & DESC_RAW_FLAG_BITS; 599 599 env->tr.fVBoxFlags = CPUMSELREG_FLAGS_VALID; 600 600 env->tr.newselector = 0; … … 704 704 /* TSS must be a valid 32 bit one */ 705 705 if (!(env->tr.flags & DESC_P_MASK) || 706 ((env->tr.flags >> DESC_TYPE_SHIFT) & 0xf) != 9||706 ((env->tr.flags >> DESC_TYPE_SHIFT) & 0xf) != 11 || 707 707 env->tr.limit < 103) 708 708 goto fail; … … 1127 1127 /* TSS must be a valid 32 bit one */ 1128 1128 if (!(env->tr.flags & DESC_P_MASK) || 1129 ((env->tr.flags >> DESC_TYPE_SHIFT) & 0xf) != 9||1129 ((env->tr.flags >> DESC_TYPE_SHIFT) & 0xf) != 11 || 1130 1130 env->tr.limit < 103) 1131 1131 goto fail; … … 2639 2639 load_seg_cache_raw_dt(&env->tr, e1, e2); 2640 2640 } 2641 env->tr.flags |= DESC_TSS_BUSY_MASK; 2641 2642 e2 |= DESC_TSS_BUSY_MASK; 2642 2643 stl_kernel(ptr + 4, e2); … … 6123 6124 cpu_abort(env, "invalid tss"); 6124 6125 type = (env->tr.flags >> DESC_TYPE_SHIFT) & 0xf; 6125 if ((type & 7) != 1)6126 if ((type & 7) != 3) 6126 6127 cpu_abort(env, "invalid tss type %d", type); 6127 6128 shift = type >> 3;
Note:
See TracChangeset
for help on using the changeset viewer.