Previous 15994 Revisions Next

r6586 Wednesday 9th December, 2009 at 05:29:36 UTC by Barry Rodewald
[i386] Implemented 32-bit SLDT and STR instructions, fixed FPU instruction use on i386.
[src/emu/cpu/i386]i386op32.c i386ops.c

src/emu/cpu/i386/i386ops.c
r6585r6586
22122212static void I386OP(escape)(i386_state *cpustate)         // Opcodes 0xd8 - 0xdf
22132213{
22142214   UINT8 modrm = FETCH(cpustate);
2215   if(modrm < 0xc0)
2216   {
2217      UINT32 ea;
2218      ea = GetEA(cpustate,modrm);
2219   }
22152220   CYCLES(cpustate,3);   // TODO: confirm this
22162221   (void) LOAD_RM8(modrm);
22172222}
src/emu/cpu/i386/i386op32.c
r6585r6586
26552655
26562656   switch( (modrm >> 3) & 0x7 )
26572657   {
2658      case 0:         /* SLDT */
2659         if ( PROTECTED_MODE && !V8086_MODE )
2660         {
2661            if( modrm >= 0xc0 ) {
2662               address = LOAD_RM32(modrm);
2663               STORE_RM32(address, cpustate->ldtr.segment);
2664               CYCLES(cpustate,CYCLES_SLDT_REG);
2665            } else {
2666               ea = GetEA(cpustate,modrm);
2667               WRITE32(cpustate, ea, cpustate->ldtr.segment);
2668               CYCLES(cpustate,CYCLES_SLDT_MEM);
2669            }
2670         }
2671         else
2672         {
2673            i386_trap(cpustate,6, 0);
2674         }
2675         break;
2676      case 1:       /* STR */
2677         if ( PROTECTED_MODE && !V8086_MODE )
2678         {
2679            if( modrm >= 0xc0 ) {
2680               address = LOAD_RM32(modrm);
2681               STORE_RM32(address, cpustate->task.segment);
2682               CYCLES(cpustate,CYCLES_STR_REG);
2683            } else {
2684               ea = GetEA(cpustate,modrm);
2685               WRITE32(cpustate, ea, cpustate->task.segment);
2686               CYCLES(cpustate,CYCLES_STR_MEM);
2687            }
2688         }
2689         else
2690         {
2691            i386_trap(cpustate,6, 0);
2692         }
2693         break;
26582694      case 2:         /* LLDT */
26592695         if ( PROTECTED_MODE && !V8086_MODE )
26602696         {

Previous 15994 Revisions Next


© 1998-2018 The MESS Team