mirror of
https://github.com/TomHarte/CLK.git
synced 2025-08-15 14:27:29 +00:00
Eliminate INSD.
This commit is contained in:
@@ -244,7 +244,7 @@ std::pair<int, typename Decoder<model>::InstructionT> Decoder<model>::decode(con
|
|||||||
RequiresMin(i80186);
|
RequiresMin(i80186);
|
||||||
Complete(INS, None, None, DataSize::Byte);
|
Complete(INS, None, None, DataSize::Byte);
|
||||||
break;
|
break;
|
||||||
case 0x6d: // INSW
|
case 0x6d: // INSW/INSD
|
||||||
RequiresMin(i80186);
|
RequiresMin(i80186);
|
||||||
Complete(INS, None, None, data_size_);
|
Complete(INS, None, None, data_size_);
|
||||||
break;
|
break;
|
||||||
@@ -252,7 +252,7 @@ std::pair<int, typename Decoder<model>::InstructionT> Decoder<model>::decode(con
|
|||||||
RequiresMin(i80186);
|
RequiresMin(i80186);
|
||||||
Complete(OUTS, None, None, DataSize::Byte);
|
Complete(OUTS, None, None, DataSize::Byte);
|
||||||
break;
|
break;
|
||||||
case 0x6f: // OUTSW
|
case 0x6f: // OUTSW/OUSD
|
||||||
RequiresMin(i80186);
|
RequiresMin(i80186);
|
||||||
Complete(OUTS, None, None, data_size_);
|
Complete(OUTS, None, None, data_size_);
|
||||||
break;
|
break;
|
||||||
|
@@ -88,7 +88,7 @@ enum class Operation: uint8_t {
|
|||||||
|
|
||||||
/// Far call; see the segment() and offset() fields.
|
/// Far call; see the segment() and offset() fields.
|
||||||
CALLfar,
|
CALLfar,
|
||||||
/// Displacement call; followed by a 16-bit operand providing a call offset.
|
/// Relative call; see displacement().
|
||||||
CALLrel,
|
CALLrel,
|
||||||
/// Near call.
|
/// Near call.
|
||||||
CALLabs,
|
CALLabs,
|
||||||
@@ -216,11 +216,12 @@ enum class Operation: uint8_t {
|
|||||||
/// Procedure exit; copies BP to SP, then pops a new BP from the stack.
|
/// Procedure exit; copies BP to SP, then pops a new BP from the stack.
|
||||||
LEAVE,
|
LEAVE,
|
||||||
|
|
||||||
// TODO: expand detail on all operations below.
|
/// Inputs a byte, word or double word from the port specified by DX, writing it to
|
||||||
|
/// ES:[e]DI and incrementing or decrementing [e]DI as per the
|
||||||
/// Inputs from a port, incrementing or decrementing the destination.
|
/// current EFLAGS DF flag.
|
||||||
INS,
|
INS,
|
||||||
/// Outputs to a port, incrementing or decrementing the destination.
|
/// Outputs a byte, word or double word from ES:[e]DI to the port specified by DX,
|
||||||
|
/// incrementing or decrementing [e]DI as per the current EFLAGS DF flag.]
|
||||||
OUTS,
|
OUTS,
|
||||||
|
|
||||||
/// Pushes all general purpose registers to the stack, in the order:
|
/// Pushes all general purpose registers to the stack, in the order:
|
||||||
@@ -234,6 +235,8 @@ enum class Operation: uint8_t {
|
|||||||
// 80286 additions.
|
// 80286 additions.
|
||||||
//
|
//
|
||||||
|
|
||||||
|
// TODO: expand detail on all operations below.
|
||||||
|
|
||||||
/// Adjusts requested privilege level.
|
/// Adjusts requested privilege level.
|
||||||
ARPL,
|
ARPL,
|
||||||
/// Clears the task-switched flag.
|
/// Clears the task-switched flag.
|
||||||
@@ -312,11 +315,6 @@ enum class Operation: uint8_t {
|
|||||||
/// [Early 80386s only] Insert bit string.
|
/// [Early 80386s only] Insert bit string.
|
||||||
IBTS,
|
IBTS,
|
||||||
|
|
||||||
/// Inputs a double word the port specified by DX, writing it to
|
|
||||||
/// ES:[e]DI and incrementing or decrementing [e]DI as per the
|
|
||||||
/// current EFLAGS DF flag.
|
|
||||||
INSD,
|
|
||||||
|
|
||||||
/// Convert dword to qword; fills EDX with the sign bit of EAX.
|
/// Convert dword to qword; fills EDX with the sign bit of EAX.
|
||||||
CDQ,
|
CDQ,
|
||||||
/// Convert word to dword; AX will be expanded to fill EAX.
|
/// Convert word to dword; AX will be expanded to fill EAX.
|
||||||
|
Reference in New Issue
Block a user