Lines Matching refs:selector

133                                uint32_t *e2_ptr, int selector,  in load_segment_ra()  argument
140 if (selector & 0x4) { in load_segment_ra()
145 index = selector & ~7; in load_segment_ra()
156 uint32_t *e2_ptr, int selector) in load_segment() argument
158 return load_segment_ra(env, e1_ptr, e2_ptr, selector, 0); in load_segment()
186 static inline void load_seg_vm(CPUX86State *env, int seg, int selector) in load_seg_vm() argument
188 selector &= 0xffff; in load_seg_vm()
190 cpu_x86_load_seg_cache(env, seg, selector, (selector << 4), 0xffff, in load_seg_vm()
226 raise_exception_err_ra(env, EXCP0A_TSS, env->tr.selector & 0xfffc, retaddr); in get_ss_esp_from_tss()
237 static void tss_load_seg(CPUX86State *env, X86Seg seg_reg, int selector, in tss_load_seg() argument
243 if ((selector & 0xfffc) != 0) { in tss_load_seg()
244 if (load_segment_ra(env, &e1, &e2, selector, retaddr) != 0) { in tss_load_seg()
245 raise_exception_err_ra(env, EXCP0A_TSS, selector & 0xfffc, retaddr); in tss_load_seg()
248 raise_exception_err_ra(env, EXCP0A_TSS, selector & 0xfffc, retaddr); in tss_load_seg()
250 rpl = selector & 3; in tss_load_seg()
254 raise_exception_err_ra(env, EXCP0A_TSS, selector & 0xfffc, retaddr); in tss_load_seg()
257 raise_exception_err_ra(env, EXCP0A_TSS, selector & 0xfffc, retaddr); in tss_load_seg()
262 raise_exception_err_ra(env, EXCP0A_TSS, selector & 0xfffc, retaddr); in tss_load_seg()
265 raise_exception_err_ra(env, EXCP0A_TSS, selector & 0xfffc, retaddr); in tss_load_seg()
270 raise_exception_err_ra(env, EXCP0A_TSS, selector & 0xfffc, retaddr); in tss_load_seg()
275 raise_exception_err_ra(env, EXCP0A_TSS, selector & 0xfffc, retaddr); in tss_load_seg()
280 raise_exception_err_ra(env, EXCP0B_NOSEG, selector & 0xfffc, retaddr); in tss_load_seg()
282 cpu_x86_load_seg_cache(env, seg_reg, selector, in tss_load_seg()
288 raise_exception_err_ra(env, EXCP0A_TSS, selector & 0xfffc, retaddr); in tss_load_seg()
409 env->segs[i].selector); in switch_tss_ra()
425 env->segs[i].selector); in switch_tss_ra()
466 tss_set_busy(env, env->tr.selector, 0, retaddr); in switch_tss_ra()
483 access_stw(&new, tss_base, env->tr.selector); in switch_tss_ra()
498 env->tr.selector = tss_selector; in switch_tss_ra()
534 env->ldt.selector = new_ldt & ~4; in switch_tss_ra()
649 int type, dpl, selector, ss_dpl, cpl; in do_interrupt_protected() local
733 selector = e1 >> 16; in do_interrupt_protected()
735 if ((selector & 0xfffc) == 0) { in do_interrupt_protected()
738 if (load_segment(env, &e1, &e2, selector) != 0) { in do_interrupt_protected()
739 raise_exception_err(env, EXCP0D_GPF, selector & 0xfffc); in do_interrupt_protected()
742 raise_exception_err(env, EXCP0D_GPF, selector & 0xfffc); in do_interrupt_protected()
746 raise_exception_err(env, EXCP0D_GPF, selector & 0xfffc); in do_interrupt_protected()
749 raise_exception_err(env, EXCP0B_NOSEG, selector & 0xfffc); in do_interrupt_protected()
787 raise_exception_err(env, EXCP0D_GPF, selector & 0xfffc); in do_interrupt_protected()
817 pushl(&sa, env->segs[R_GS].selector); in do_interrupt_protected()
818 pushl(&sa, env->segs[R_FS].selector); in do_interrupt_protected()
819 pushl(&sa, env->segs[R_DS].selector); in do_interrupt_protected()
820 pushl(&sa, env->segs[R_ES].selector); in do_interrupt_protected()
822 pushl(&sa, env->segs[R_SS].selector); in do_interrupt_protected()
826 pushl(&sa, env->segs[R_CS].selector); in do_interrupt_protected()
834 pushw(&sa, env->segs[R_GS].selector); in do_interrupt_protected()
835 pushw(&sa, env->segs[R_FS].selector); in do_interrupt_protected()
836 pushw(&sa, env->segs[R_DS].selector); in do_interrupt_protected()
837 pushw(&sa, env->segs[R_ES].selector); in do_interrupt_protected()
839 pushw(&sa, env->segs[R_SS].selector); in do_interrupt_protected()
843 pushw(&sa, env->segs[R_CS].selector); in do_interrupt_protected()
869 selector = (selector & ~3) | dpl; in do_interrupt_protected()
870 cpu_x86_load_seg_cache(env, R_CS, selector, in do_interrupt_protected()
909 raise_exception_err(env, EXCP0A_TSS, env->tr.selector & 0xfffc); in get_rsp_from_tss()
930 int type, dpl, selector, cpl, ist; in do_interrupt64() local
977 selector = e1 >> 16; in do_interrupt64()
980 if ((selector & 0xfffc) == 0) { in do_interrupt64()
984 if (load_segment(env, &e1, &e2, selector) != 0) { in do_interrupt64()
985 raise_exception_err(env, EXCP0D_GPF, selector & 0xfffc); in do_interrupt64()
988 raise_exception_err(env, EXCP0D_GPF, selector & 0xfffc); in do_interrupt64()
992 raise_exception_err(env, EXCP0D_GPF, selector & 0xfffc); in do_interrupt64()
995 raise_exception_err(env, EXCP0B_NOSEG, selector & 0xfffc); in do_interrupt64()
998 raise_exception_err(env, EXCP0D_GPF, selector & 0xfffc); in do_interrupt64()
1016 raise_exception_err(env, EXCP0D_GPF, selector & 0xfffc); in do_interrupt64()
1029 pushq(&sa, env->segs[R_SS].selector); in do_interrupt64()
1032 pushq(&sa, env->segs[R_CS].selector); in do_interrupt64()
1050 selector = (selector & ~3) | dpl; in do_interrupt64()
1051 cpu_x86_load_seg_cache(env, R_CS, selector, in do_interrupt64()
1061 int cpl, selector; in helper_sysret() local
1070 selector = (env->star >> 48) & 0xffff; in helper_sysret()
1077 cpu_x86_load_seg_cache(env, R_CS, (selector + 16) | 3, in helper_sysret()
1085 cpu_x86_load_seg_cache(env, R_CS, selector | 3, in helper_sysret()
1092 cpu_x86_load_seg_cache(env, R_SS, (selector + 8) | 3, in helper_sysret()
1101 cpu_x86_load_seg_cache(env, R_CS, selector | 3, in helper_sysret()
1107 cpu_x86_load_seg_cache(env, R_SS, (selector + 8) | 3, in helper_sysret()
1121 int selector; in do_interrupt_real() local
1133 selector = cpu_lduw_kernel(env, ptr + 2); in do_interrupt_real()
1147 old_cs = env->segs[R_CS].selector; in do_interrupt_real()
1156 env->segs[R_CS].selector = selector; in do_interrupt_real()
1157 env->segs[R_CS].base = (selector << 4); in do_interrupt_real()
1179 env->segs[R_CS].selector, env->eip, in do_interrupt_all()
1181 env->segs[R_SS].selector, env->regs[R_ESP]); in do_interrupt_all()
1248 void helper_lldt(CPUX86State *env, int selector) in helper_lldt() argument
1255 selector &= 0xffff; in helper_lldt()
1256 if ((selector & 0xfffc) == 0) { in helper_lldt()
1261 if (selector & 0x4) { in helper_lldt()
1262 raise_exception_err_ra(env, EXCP0D_GPF, selector & 0xfffc, GETPC()); in helper_lldt()
1265 index = selector & ~7; in helper_lldt()
1275 raise_exception_err_ra(env, EXCP0D_GPF, selector & 0xfffc, GETPC()); in helper_lldt()
1281 raise_exception_err_ra(env, EXCP0D_GPF, selector & 0xfffc, GETPC()); in helper_lldt()
1284 raise_exception_err_ra(env, EXCP0B_NOSEG, selector & 0xfffc, GETPC()); in helper_lldt()
1299 env->ldt.selector = selector; in helper_lldt()
1302 void helper_ltr(CPUX86State *env, int selector) in helper_ltr() argument
1309 selector &= 0xffff; in helper_ltr()
1310 if ((selector & 0xfffc) == 0) { in helper_ltr()
1316 if (selector & 0x4) { in helper_ltr()
1317 raise_exception_err_ra(env, EXCP0D_GPF, selector & 0xfffc, GETPC()); in helper_ltr()
1320 index = selector & ~7; in helper_ltr()
1330 raise_exception_err_ra(env, EXCP0D_GPF, selector & 0xfffc, GETPC()); in helper_ltr()
1338 raise_exception_err_ra(env, EXCP0D_GPF, selector & 0xfffc, GETPC()); in helper_ltr()
1341 raise_exception_err_ra(env, EXCP0B_NOSEG, selector & 0xfffc, GETPC()); in helper_ltr()
1350 raise_exception_err_ra(env, EXCP0D_GPF, selector & 0xfffc, GETPC()); in helper_ltr()
1362 env->tr.selector = selector; in helper_ltr()
1366 void helper_load_seg(CPUX86State *env, int seg_reg, int selector) in helper_load_seg() argument
1374 selector &= 0xffff; in helper_load_seg()
1376 if ((selector & 0xfffc) == 0) { in helper_load_seg()
1385 cpu_x86_load_seg_cache(env, seg_reg, selector, 0, 0, 0); in helper_load_seg()
1388 if (selector & 0x4) { in helper_load_seg()
1393 index = selector & ~7; in helper_load_seg()
1395 raise_exception_err_ra(env, EXCP0D_GPF, selector & 0xfffc, GETPC()); in helper_load_seg()
1402 raise_exception_err_ra(env, EXCP0D_GPF, selector & 0xfffc, GETPC()); in helper_load_seg()
1404 rpl = selector & 3; in helper_load_seg()
1409 raise_exception_err_ra(env, EXCP0D_GPF, selector & 0xfffc, GETPC()); in helper_load_seg()
1412 raise_exception_err_ra(env, EXCP0D_GPF, selector & 0xfffc, GETPC()); in helper_load_seg()
1417 raise_exception_err_ra(env, EXCP0D_GPF, selector & 0xfffc, GETPC()); in helper_load_seg()
1423 raise_exception_err_ra(env, EXCP0D_GPF, selector & 0xfffc, GETPC()); in helper_load_seg()
1430 raise_exception_err_ra(env, EXCP0C_STACK, selector & 0xfffc, GETPC()); in helper_load_seg()
1432 raise_exception_err_ra(env, EXCP0B_NOSEG, selector & 0xfffc, GETPC()); in helper_load_seg()
1442 cpu_x86_load_seg_cache(env, seg_reg, selector, in helper_load_seg()
1448 selector, (unsigned long)sc->base, sc->limit, sc->flags); in helper_load_seg()
1607 pushl(&sa, env->segs[R_CS].selector); in helper_lcall_real()
1610 pushw(&sa, env->segs[R_CS].selector); in helper_lcall_real()
1616 env->segs[R_CS].selector = new_cs; in helper_lcall_real()
1625 uint32_t e1, e2, cpl, dpl, rpl, selector, param_count; in helper_lcall_protected() local
1678 pushq(&sa, env->segs[R_CS].selector); in helper_lcall_protected()
1693 pushl(&sa, env->segs[R_CS].selector); in helper_lcall_protected()
1696 pushw(&sa, env->segs[R_CS].selector); in helper_lcall_protected()
1749 selector = e1 >> 16; in helper_lcall_protected()
1767 if ((selector & 0xfffc) == 0) { in helper_lcall_protected()
1771 if (load_segment_ra(env, &e1, &e2, selector, GETPC()) != 0) { in helper_lcall_protected()
1772 raise_exception_err_ra(env, EXCP0D_GPF, selector & 0xfffc, GETPC()); in helper_lcall_protected()
1775 raise_exception_err_ra(env, EXCP0D_GPF, selector & 0xfffc, GETPC()); in helper_lcall_protected()
1779 raise_exception_err_ra(env, EXCP0D_GPF, selector & 0xfffc, GETPC()); in helper_lcall_protected()
1784 raise_exception_err_ra(env, EXCP0D_GPF, selector & 0xfffc, GETPC()); in helper_lcall_protected()
1787 raise_exception_err_ra(env, EXCP0D_GPF, selector & 0xfffc, GETPC()); in helper_lcall_protected()
1793 raise_exception_err_ra(env, EXCP0B_NOSEG, selector & 0xfffc, GETPC()); in helper_lcall_protected()
1850 pushq(&sa, env->segs[R_SS].selector); in helper_lcall_protected()
1856 pushl(&sa, env->segs[R_SS].selector); in helper_lcall_protected()
1865 pushw(&sa, env->segs[R_SS].selector); in helper_lcall_protected()
1887 pushq(&sa, env->segs[R_CS].selector); in helper_lcall_protected()
1892 pushl(&sa, env->segs[R_CS].selector); in helper_lcall_protected()
1895 pushw(&sa, env->segs[R_CS].selector); in helper_lcall_protected()
1916 selector = (selector & ~3) | dpl; in helper_lcall_protected()
1917 cpu_x86_load_seg_cache(env, R_CS, selector, in helper_lcall_protected()
1952 env->segs[R_CS].selector = new_cs; in helper_iret_real()
1978 (env->segs[seg_reg].selector & 0xfffc) == 0) { in validate_seg()
2329 uint32_t e1, e2, selector; in helper_lsl() local
2332 selector = selector1 & 0xffff; in helper_lsl()
2334 if ((selector & 0xfffc) == 0) { in helper_lsl()
2337 if (load_segment_ra(env, &e1, &e2, selector, GETPC()) != 0) { in helper_lsl()
2340 rpl = selector & 3; in helper_lsl()
2376 uint32_t e1, e2, selector; in helper_lar() local
2379 selector = selector1 & 0xffff; in helper_lar()
2381 if ((selector & 0xfffc) == 0) { in helper_lar()
2384 if (load_segment_ra(env, &e1, &e2, selector, GETPC()) != 0) { in helper_lar()
2387 rpl = selector & 3; in helper_lar()
2425 uint32_t e1, e2, eflags, selector; in helper_verr() local
2428 selector = selector1 & 0xffff; in helper_verr()
2430 if ((selector & 0xfffc) == 0) { in helper_verr()
2433 if (load_segment_ra(env, &e1, &e2, selector, GETPC()) != 0) { in helper_verr()
2439 rpl = selector & 3; in helper_verr()
2463 uint32_t e1, e2, eflags, selector; in helper_verw() local
2466 selector = selector1 & 0xffff; in helper_verw()
2468 if ((selector & 0xfffc) == 0) { in helper_verw()
2471 if (load_segment_ra(env, &e1, &e2, selector, GETPC()) != 0) { in helper_verw()
2477 rpl = selector & 3; in helper_verw()