Home | History | Annotate | Download | only in target-i386

Lines Matching refs:sp_mask

451 #define SET_ESP(val, sp_mask)\
453 if ((sp_mask) == 0xffff)\
455 else if ((sp_mask) == 0xffffffffLL)\
461 #define SET_ESP(val, sp_mask) ESP = (ESP & ~(sp_mask)) | ((val) & (sp_mask))
466 #define SEG_ADDL(ssp, sp, sp_mask) ((uint32_t)((ssp) + (sp & (sp_mask))))
469 #define PUSHW(ssp, sp, sp_mask, val)\
472 cpu_stw_kernel(env, (ssp) + (sp & (sp_mask)), (val));\
475 sp_mask, val)\
478 cpu_stl_kernel(env, SEG_ADDL(ssp, sp, sp_mask), (uint32_t)(val));\
481 #define POPW(ssp, sp, sp_mask, val)\
483 val = cpu_lduw_kernel(env, (ssp) + (sp & (sp_mask)));\
487 #define POPL(ssp, sp, sp_mask, val)\
489 val = (uint32_t)cpu_ldl_kernel(env, SEG_ADDL(ssp, sp, sp_mask));\
503 uint32_t old_eip, sp_mask;
596 sp_mask = get_sp_mask(ss_e2);
603 sp_mask = get_sp_mask(env->segs[R_SS].flags);
610 sp_mask = 0; /* avoid warning */
627 PUSHL(ssp, esp, sp_mask, env->segs[R_GS].selector);
628 PUSHL(ssp, esp, sp_mask, env->segs[R_FS].selector);
629 PUSHL(ssp, esp, sp_mask, env->segs[R_DS].selector);
630 PUSHL(ssp, esp, sp_mask, env->segs[R_ES].selector);
632 PUSHL(ssp, esp, sp_mask, env->segs[R_SS].selector);
633 PUSHL(ssp, esp, sp_mask, ESP);
635 PUSHL(ssp, esp, sp_mask, cpu_compute_eflags(env));
636 PUSHL(ssp, esp, sp_mask, env->segs[R_CS].selector);
637 PUSHL(ssp, esp, sp_mask, old_eip);
639 PUSHL(ssp, esp, sp_mask, error_code);
644 PUSHW(ssp, esp, sp_mask, env->segs[R_GS].selector);
645 PUSHW(ssp, esp, sp_mask, env->segs[R_FS].selector);
646 PUSHW(ssp, esp, sp_mask, env->segs[R_DS].selector);
647 PUSHW(ssp, esp, sp_mask, env->segs[R_ES].selector);
649 PUSHW(ssp, esp, sp_mask, env->segs[R_SS].selector);
650 PUSHW(ssp, esp, sp_mask, ESP);
652 PUSHW(ssp, esp, sp_mask, cpu_compute_eflags(env));
653 PUSHW(ssp, esp, sp_mask, env->segs[R_CS].selector);
654 PUSHW(ssp, esp, sp_mask, old_eip);
656 PUSHW(ssp, esp, sp_mask, error_code);
671 SET_ESP(esp, sp_mask);
1528 uint32_t ss = 0, ss_e1 = 0, ss_e2 = 0, sp, type, ss_dpl, sp_mask;
1578 sp_mask = get_sp_mask(env->segs[R_SS].flags);
1581 PUSHL(ssp, sp, sp_mask, env->segs[R_CS].selector);
1582 PUSHL(ssp, sp, sp_mask, next_eip);
1584 PUSHW(ssp, sp, sp_mask, env->segs[R_CS].selector);
1585 PUSHW(ssp, sp, sp_mask, next_eip);
1592 SET_ESP(sp, sp_mask);
1667 sp_mask = get_sp_mask(ss_e2);
1670 PUSHL(ssp, sp, sp_mask, env->segs[R_SS].selector);
1671 PUSHL(ssp, sp, sp_mask, ESP);
1674 PUSHL(ssp, sp, sp_mask, val);
1677 PUSHW(ssp, sp, sp_mask, env->segs[R_SS].selector);
1678 PUSHW(ssp, sp, sp_mask, ESP);
1681 PUSHW(ssp, sp, sp_mask, val);
1688 sp_mask = get_sp_mask(env->segs[R_SS].flags);
1695 PUSHL(ssp, sp, sp_mask, env->segs[R_CS].selector);
1696 PUSHL(ssp, sp, sp_mask, next_eip);
1698 PUSHW(ssp, sp, sp_mask, env->segs[R_CS].selector);
1699 PUSHW(ssp, sp, sp_mask, next_eip);
1718 SET_ESP(sp, sp_mask);
1726 uint32_t sp, new_cs, new_eip, new_eflags, sp_mask;
1730 sp_mask = 0xffff; /* XXXX: use SS segment size ? */
1735 POPL(ssp, sp, sp_mask, new_eip);
1736 POPL(ssp, sp, sp_mask, new_cs);
1738 POPL(ssp, sp, sp_mask, new_eflags);
1741 POPW(ssp, sp, sp_mask, new_eip);
1742 POPW(ssp, sp, sp_mask, new_cs);
1743 POPW(ssp, sp, sp_mask, new_eflags);
1745 ESP = (ESP & ~sp_mask) | (sp & sp_mask);
1789 target_ulong ssp, sp, new_eip, new_esp, sp_mask;
1793 sp_mask = -1;
1796 sp_mask = get_sp_mask(env->segs[R_SS].flags);
1812 POPL(ssp, sp, sp_mask, new_eip);
1813 POPL(ssp, sp, sp_mask, new_cs);
1816 POPL(ssp, sp, sp_mask, new_eflags);
1822 POPW(ssp, sp, sp_mask, new_eip);
1823 POPW(ssp, sp, sp_mask, new_cs);
1825 POPW(ssp, sp, sp_mask, new_eflags);
1871 POPL(ssp, sp, sp_mask, new_esp);
1872 POPL(ssp, sp, sp_mask, new_ss);
1876 POPW(ssp, sp, sp_mask, new_esp);
1877 POPW(ssp, sp, sp_mask, new_ss);
1925 sp_mask = -1;
1928 sp_mask = get_sp_mask(ss_e2);
1938 SET_ESP(sp, sp_mask);
1955 POPL(ssp, sp, sp_mask, new_esp);
1956 POPL(ssp, sp, sp_mask, new_ss);
1957 POPL(ssp, sp, sp_mask, new_es);
1958 POPL(ssp, sp, sp_mask, new_ds);
1959 POPL(ssp, sp, sp_mask, new_fs);
1960 POPL(ssp, sp, sp_mask, new_gs);