1
0
Fork 0

fix push/pop instructions

Imported-from: https://svn.code.sf.net/p/dosbox/code-0/dosbox/trunk@1583
This commit is contained in:
Sjoerd van der Berg 2004-01-14 17:09:41 +00:00
parent 73943385cd
commit 6455ddbd6e

View file

@ -16,7 +16,7 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
/* $Id: cpu.cpp,v 1.52 2004-01-13 08:56:10 harekiet Exp $ */
/* $Id: cpu.cpp,v 1.53 2004-01-14 17:09:41 harekiet Exp $ */
#include <assert.h>
#include "dosbox.h"
@ -55,24 +55,24 @@ void CPU_Core_Normal_Init(void);
void CPU_Core_Dyn_X86_Init(void);
void CPU_Push16(Bitu value) {
reg_esp=(reg_esp&~cpu.stack.mask)|(reg_esp-2)&cpu.stack.mask;
reg_esp=(reg_esp&~cpu.stack.mask)|((reg_esp-2)&cpu.stack.mask);
mem_writew(SegPhys(ss) + (reg_esp & cpu.stack.mask) ,value);
}
void CPU_Push32(Bitu value) {
reg_esp=(reg_esp&~cpu.stack.mask)|(reg_esp-4)&cpu.stack.mask;
reg_esp=(reg_esp&~cpu.stack.mask)|((reg_esp-4)&cpu.stack.mask);
mem_writed(SegPhys(ss) + (reg_esp & cpu.stack.mask) ,value);
}
Bitu CPU_Pop16(void) {
Bitu val=mem_readw(SegPhys(ss) + (reg_esp & cpu.stack.mask));
reg_esp=(reg_esp&~cpu.stack.mask)|(reg_esp+2)&cpu.stack.mask;
reg_esp=(reg_esp&~cpu.stack.mask)|((reg_esp+2)&cpu.stack.mask);
return val;
}
Bitu CPU_Pop32(void) {
Bitu val=mem_readd(SegPhys(ss) + (reg_esp & cpu.stack.mask));
reg_esp=(reg_esp&~cpu.stack.mask)|(reg_esp+4)&cpu.stack.mask;
reg_esp=(reg_esp&~cpu.stack.mask)|((reg_esp+4)&cpu.stack.mask);
return val;
}