i386: Fixed STR and SLDT instructions.

This commit is contained in:
mahlemiut 2012-01-20 11:16:07 +00:00
parent b0eaeb8922
commit e8404e05a4
2 changed files with 4 additions and 8 deletions

View File

@ -2870,8 +2870,7 @@ static void I386OP(group0F00_16)(i386_state *cpustate) // Opcode 0x0f 00
if ( PROTECTED_MODE && !V8086_MODE ) if ( PROTECTED_MODE && !V8086_MODE )
{ {
if( modrm >= 0xc0 ) { if( modrm >= 0xc0 ) {
address = LOAD_RM16(modrm); STORE_RM16(modrm, cpustate->ldtr.segment);
STORE_RM16(address, cpustate->ldtr.segment);
CYCLES(cpustate,CYCLES_SLDT_REG); CYCLES(cpustate,CYCLES_SLDT_REG);
} else { } else {
ea = GetEA(cpustate,modrm); ea = GetEA(cpustate,modrm);
@ -2888,8 +2887,7 @@ static void I386OP(group0F00_16)(i386_state *cpustate) // Opcode 0x0f 00
if ( PROTECTED_MODE && !V8086_MODE ) if ( PROTECTED_MODE && !V8086_MODE )
{ {
if( modrm >= 0xc0 ) { if( modrm >= 0xc0 ) {
address = LOAD_RM16(modrm); STORE_RM16(modrm, cpustate->task.segment);
STORE_RM16(address, cpustate->task.segment);
CYCLES(cpustate,CYCLES_STR_REG); CYCLES(cpustate,CYCLES_STR_REG);
} else { } else {
ea = GetEA(cpustate,modrm); ea = GetEA(cpustate,modrm);

View File

@ -2719,8 +2719,7 @@ static void I386OP(group0F00_32)(i386_state *cpustate) // Opcode 0x0f 00
if ( PROTECTED_MODE && !V8086_MODE ) if ( PROTECTED_MODE && !V8086_MODE )
{ {
if( modrm >= 0xc0 ) { if( modrm >= 0xc0 ) {
address = LOAD_RM32(modrm); STORE_RM32(modrm, cpustate->ldtr.segment);
STORE_RM32(address, cpustate->ldtr.segment);
CYCLES(cpustate,CYCLES_SLDT_REG); CYCLES(cpustate,CYCLES_SLDT_REG);
} else { } else {
ea = GetEA(cpustate,modrm); ea = GetEA(cpustate,modrm);
@ -2737,8 +2736,7 @@ static void I386OP(group0F00_32)(i386_state *cpustate) // Opcode 0x0f 00
if ( PROTECTED_MODE && !V8086_MODE ) if ( PROTECTED_MODE && !V8086_MODE )
{ {
if( modrm >= 0xc0 ) { if( modrm >= 0xc0 ) {
address = LOAD_RM32(modrm); STORE_RM32(modrm, cpustate->task.segment);
STORE_RM32(address, cpustate->task.segment);
CYCLES(cpustate,CYCLES_STR_REG); CYCLES(cpustate,CYCLES_STR_REG);
} else { } else {
ea = GetEA(cpustate,modrm); ea = GetEA(cpustate,modrm);