Lines Matching defs:sp_mask

843 #define SET_ESP(val, sp_mask)\
845 if ((sp_mask) == 0xffff)\
847 else if ((sp_mask) == 0xffffffffLL)\
853 #define SET_ESP(val, sp_mask) ESP = (ESP & ~(sp_mask)) | ((val) & (sp_mask))
858 #define SEG_ADDL(ssp, sp, sp_mask) ((uint32_t)((ssp) + (sp & (sp_mask))))
861 #define PUSHW(ssp, sp, sp_mask, val)\
864 stw_kernel((ssp) + (sp & (sp_mask)), (val));\
867 #define PUSHL(ssp, sp, sp_mask, val)\
870 stl_kernel(SEG_ADDL(ssp, sp, sp_mask), (uint32_t)(val));\
873 #define POPW(ssp, sp, sp_mask, val)\
875 val = lduw_kernel((ssp) + (sp & (sp_mask)));\
879 #define POPL(ssp, sp, sp_mask, val)\
881 val = (uint32_t)ldl_kernel(SEG_ADDL(ssp, sp, sp_mask));\
894 uint32_t old_eip, sp_mask;
1015 sp_mask = get_sp_mask(ss_e2);
1025 sp_mask = get_sp_mask(env->segs[R_SS].flags);
1032 sp_mask = 0; /* avoid warning */
1049 PUSHL(ssp, esp, sp_mask, env->segs[R_GS].selector);
1050 PUSHL(ssp, esp, sp_mask, env->segs[R_FS].selector);
1051 PUSHL(ssp, esp, sp_mask, env->segs[R_DS].selector);
1052 PUSHL(ssp, esp, sp_mask, env->segs[R_ES].selector);
1054 PUSHL(ssp, esp, sp_mask, env->segs[R_SS].selector);
1055 PUSHL(ssp, esp, sp_mask, ESP);
1057 PUSHL(ssp, esp, sp_mask, compute_eflags());
1058 PUSHL(ssp, esp, sp_mask, env->segs[R_CS].selector);
1059 PUSHL(ssp, esp, sp_mask, old_eip);
1061 PUSHL(ssp, esp, sp_mask, error_code);
1066 PUSHW(ssp, esp, sp_mask, env->segs[R_GS].selector);
1067 PUSHW(ssp, esp, sp_mask, env->segs[R_FS].selector);
1068 PUSHW(ssp, esp, sp_mask, env->segs[R_DS].selector);
1069 PUSHW(ssp, esp, sp_mask, env->segs[R_ES].selector);
1071 PUSHW(ssp, esp, sp_mask, env->segs[R_SS].selector);
1072 PUSHW(ssp, esp, sp_mask, ESP);
1074 PUSHW(ssp, esp, sp_mask, compute_eflags());
1075 PUSHW(ssp, esp, sp_mask, env->segs[R_CS].selector);
1076 PUSHW(ssp, esp, sp_mask, old_eip);
1078 PUSHW(ssp, esp, sp_mask, error_code);
1093 SET_ESP(esp, sp_mask);
2888 uint32_t ss = 0, ss_e1 = 0, ss_e2 = 0, sp, type, ss_dpl, sp_mask;
2945 sp_mask = get_sp_mask(env->segs[R_SS].flags);
2948 PUSHL(ssp, sp, sp_mask, env->segs[R_CS].selector);
2949 PUSHL(ssp, sp, sp_mask, next_eip);
2951 PUSHW(ssp, sp, sp_mask, env->segs[R_CS].selector);
2952 PUSHW(ssp, sp, sp_mask, next_eip);
2959 SET_ESP(sp, sp_mask);
3038 sp_mask = get_sp_mask(ss_e2);
3041 PUSHL(ssp, sp, sp_mask, env->segs[R_SS].selector);
3042 PUSHL(ssp, sp, sp_mask, ESP);
3045 PUSHL(ssp, sp, sp_mask, val);
3048 PUSHW(ssp, sp, sp_mask, env->segs[R_SS].selector);
3049 PUSHW(ssp, sp, sp_mask, ESP);
3052 PUSHW(ssp, sp, sp_mask, val);
3059 sp_mask = get_sp_mask(env->segs[R_SS].flags);
3066 PUSHL(ssp, sp, sp_mask, env->segs[R_CS].selector);
3067 PUSHL(ssp, sp, sp_mask, next_eip);
3069 PUSHW(ssp, sp, sp_mask, env->segs[R_CS].selector);
3070 PUSHW(ssp, sp, sp_mask, next_eip);
3089 SET_ESP(sp, sp_mask);
3097 uint32_t sp, new_cs, new_eip, new_eflags, sp_mask;
3106 sp_mask = 0xffff; /* XXXX: use SS segment size ? */
3111 POPL(ssp, sp, sp_mask, new_eip);
3112 POPL(ssp, sp, sp_mask, new_cs);
3114 POPL(ssp, sp, sp_mask, new_eflags);
3117 POPW(ssp, sp, sp_mask, new_eip);
3118 POPW(ssp, sp, sp_mask, new_cs);
3119 POPW(ssp, sp, sp_mask, new_eflags);
3134 ESP = (ESP & ~sp_mask) | (sp & sp_mask);
3191 target_ulong ssp, sp, new_eip, new_esp, sp_mask;
3199 sp_mask = -1;
3202 sp_mask = get_sp_mask(env->segs[R_SS].flags);
3218 POPL(ssp, sp, sp_mask, new_eip);
3219 POPL(ssp, sp, sp_mask, new_cs);
3222 POPL(ssp, sp, sp_mask, new_eflags);
3256 POPW(ssp, sp, sp_mask, new_eip);
3257 POPW(ssp, sp, sp_mask, new_cs);
3259 POPW(ssp, sp, sp_mask, new_eflags);
3345 POPL(ssp, sp, sp_mask, new_esp);
3346 POPL(ssp, sp, sp_mask, new_ss);
3350 POPW(ssp, sp, sp_mask, new_esp);
3351 POPW(ssp, sp, sp_mask, new_ss);
3444 sp_mask = -1;
3447 sp_mask = get_sp_mask(ss_e2);
3457 SET_ESP(sp, sp_mask);
3478 POPL(ssp, sp, sp_mask, new_esp);
3479 POPL(ssp, sp, sp_mask, new_ss);
3480 POPL(ssp, sp, sp_mask, new_es);
3481 POPL(ssp, sp, sp_mask, new_ds);
3482 POPL(ssp, sp, sp_mask, new_fs);
3483 POPL(ssp, sp, sp_mask, new_gs);