Lines Matching refs:x86
3 * Realmode X86 Emulator Library
53 if (M.x86.intr & INTR_SYNCH) {
54 intno = M.x86.intno;
58 push_word((u16)M.x86.R_FLG);
61 push_word(M.x86.R_CS);
62 M.x86.R_CS = mem_access_word(intno * 4 + 2);
63 push_word(M.x86.R_IP);
64 M.x86.R_IP = mem_access_word(intno * 4);
65 M.x86.intr = 0;
81 M.x86.intno = intrnum;
82 M.x86.intr |= INTR_SYNCH;
95 M.x86.intr = 0;
102 SAVE_IP_CS(M.x86.R_CS, M.x86.R_IP);
104 if (M.x86.intr) {
105 if (M.x86.intr & INTR_HALTED) {
106 DB( if (M.x86.R_SP != 0) {
111 if (M.x86.debug)
116 if (((M.x86.intr & INTR_SYNCH) && (M.x86.intno == 0 || M.x86.intno == 2)) ||
121 op1 = (*sys_rdb)(((u32)M.x86.R_CS << 4) + (M.x86.R_IP++));
123 if (M.x86.debug & DEBUG_EXIT) {
124 M.x86.debug &= ~DEBUG_EXIT;
136 M.x86.intr |= INTR_HALTED;
160 fetched = (*sys_rdb)(((u32)M.x86.R_CS << 4) + (M.x86.R_IP++));
183 fetched = (*sys_rdb)(((u32)M.x86.R_CS << 4) + (M.x86.R_IP++));
204 fetched = (*sys_rdw)(((u32)M.x86.R_CS << 4) + (M.x86.R_IP));
205 M.x86.R_IP += 2;
226 fetched = (*sys_rdl)(((u32)M.x86.R_CS << 4) + (M.x86.R_IP));
227 M.x86.R_IP += 4;
240 On the x86 processor, the default segment is not always DS if there is
245 cpu-state-varible M.x86.mode. There are several potential states:
264 switch (M.x86.mode & SYSMODE_SEGMASK) {
268 return M.x86.R_DS;
270 return M.x86.R_SS;
273 return M.x86.R_CS;
276 return M.x86.R_ES;
279 return M.x86.R_FS;
282 return M.x86.R_GS;
285 return M.x86.R_SS;
567 return &M.x86.R_AL;
570 return &M.x86.R_CL;
573 return &M.x86.R_DL;
576 return &M.x86.R_BL;
579 return &M.x86.R_AH;
582 return &M.x86.R_CH;
585 return &M.x86.R_DH;
588 return &M.x86.R_BH;
611 return &M.x86.R_AX;
614 return &M.x86.R_CX;
617 return &M.x86.R_DX;
620 return &M.x86.R_BX;
623 return &M.x86.R_SP;
626 return &M.x86.R_BP;
629 return &M.x86.R_SI;
632 return &M.x86.R_DI;
655 return &M.x86.R_EAX;
658 return &M.x86.R_ECX;
661 return &M.x86.R_EDX;
664 return &M.x86.R_EBX;
667 return &M.x86.R_ESP;
670 return &M.x86.R_EBP;
673 return &M.x86.R_ESI;
676 return &M.x86.R_EDI;
700 return &M.x86.R_ES;
703 return &M.x86.R_CS;
706 return &M.x86.R_SS;
709 return &M.x86.R_DS;
712 return &M.x86.R_FS;
715 return &M.x86.R_GS;
736 base = M.x86.R_EAX;
740 base = M.x86.R_ECX;
744 base = M.x86.R_EDX;
748 base = M.x86.R_EBX;
752 base = M.x86.R_ESP;
753 M.x86.mode |= SYSMODE_SEG_DS_SS;
761 base = M.x86.R_ESP;
762 M.x86.mode |= SYSMODE_SEG_DS_SS;
767 base = M.x86.R_ESI;
771 base = M.x86.R_EDI;
777 i = M.x86.R_EAX;
781 i = M.x86.R_ECX;
785 i = M.x86.R_EDX;
789 i = M.x86.R_EBX;
796 i = M.x86.R_EBP;
800 i = M.x86.R_ESI;
804 i = M.x86.R_EDI;
844 if (M.x86.mode & SYSMODE_PREFIX_ADDR) {
849 return M.x86.R_EAX;
852 return M.x86.R_ECX;
855 return M.x86.R_EDX;
858 return M.x86.R_EBX;
868 return M.x86.R_ESI;
871 return M.x86.R_EDI;
879 return (M.x86.R_BX + M.x86.R_SI) & 0xffff;
882 return (M.x86.R_BX + M.x86.R_DI) & 0xffff;
885 M.x86.mode |= SYSMODE_SEG_DS_SS;
886 return (M.x86.R_BP + M.x86.R_SI) & 0xffff;
889 M.x86.mode |= SYSMODE_SEG_DS_SS;
890 return (M.x86.R_BP + M.x86.R_DI) & 0xffff;
893 return M.x86.R_SI;
896 return M.x86.R_DI;
903 return M.x86.R_BX;
928 if (!((M.x86.mode & SYSMODE_PREFIX_ADDR) && (rm == 4)))
931 if (M.x86.mode & SYSMODE_PREFIX_ADDR) {
936 return M.x86.R_EAX + displacement;
939 return M.x86.R_ECX + displacement;
942 return M.x86.R_EDX + displacement;
945 return M.x86.R_EBX + displacement;
953 return M.x86.R_EBP + displacement;
956 return M.x86.R_ESI + displacement;
959 return M.x86.R_EDI + displacement;
967 return (M.x86.R_BX + M.x86.R_SI + displacement) & 0xffff;
970 return (M.x86.R_BX + M.x86.R_DI + displacement) & 0xffff;
973 M.x86.mode |= SYSMODE_SEG_DS_SS;
974 return (M.x86.R_BP + M.x86.R_SI + displacement) & 0xffff;
977 M.x86.mode |= SYSMODE_SEG_DS_SS;
978 return (M.x86.R_BP + M.x86.R_DI + displacement) & 0xffff;
981 return (M.x86.R_SI + displacement) & 0xffff;
984 return (M.x86.R_DI + displacement) & 0xffff;
987 M.x86.mode |= SYSMODE_SEG_DS_SS;
988 return (M.x86.R_BP + displacement) & 0xffff;
991 return (M.x86.R_BX + displacement) & 0xffff;
1016 if (!(M.x86.mode & SYSMODE_PREFIX_ADDR))
1024 if (M.x86.mode & SYSMODE_PREFIX_ADDR) {
1029 return M.x86.R_EAX + displacement;
1032 return M.x86.R_ECX + displacement;
1035 M.x86.mode |= SYSMODE_SEG_DS_SS;
1036 return M.x86.R_EDX + displacement;
1039 return M.x86.R_EBX + displacement;
1048 return M.x86.R_EBP + displacement;
1051 return M.x86.R_ESI + displacement;
1054 return M.x86.R_EDI + displacement;
1062 return (M.x86.R_BX + M.x86.R_SI + displacement) & 0xffff;
1065 return (M.x86.R_BX + M.x86.R_DI + displacement) & 0xffff;
1068 M.x86.mode |= SYSMODE_SEG_DS_SS;
1069 return (M.x86.R_BP + M.x86.R_SI + displacement) & 0xffff;
1072 M.x86.mode |= SYSMODE_SEG_DS_SS;
1073 return (M.x86.R_BP + M.x86.R_DI + displacement) & 0xffff;
1076 return (M.x86.R_SI + displacement) & 0xffff;
1079 return (M.x86.R_DI + displacement) & 0xffff;
1082 M.x86.mode |= SYSMODE_SEG_DS_SS;
1083 return (M.x86.R_BP + displacement) & 0xffff;
1086 return (M.x86.R_BX + displacement) & 0xffff;