src/emu/cpu/i386/i386op32.c
| r6585 | r6586 | |
| 2655 | 2655 | |
| 2656 | 2656 | switch( (modrm >> 3) & 0x7 ) |
| 2657 | 2657 | { |
| 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; |
| 2658 | 2694 | case 2: /* LLDT */ |
| 2659 | 2695 | if ( PROTECTED_MODE && !V8086_MODE ) |
| 2660 | 2696 | { |