|
|
| version 1.1.1.1, 2003/10/16 17:57:44 | version 1.6, 2003/12/11 21:57:38 |
|---|---|
| Line 1 | Line 1 |
| #include "compiler.h" | #include "compiler.h" |
| #include "i286.h" | #include "cpucore.h" |
| #include "i286c.h" | #include "i286c.h" |
| #include "memory.h" | |
| #include "i286c.mcr" | #include "i286c.mcr" |
| #include "i286c_sf.mcr" | #include "i286c_sf.mcr" |
| #include "memory.h" | |
| #include "nevent.h" | |
| // ------------------------------------------------------------------------ | // ------------------------------------------------------------------------ |
| I286_SFT _rol_r8_1(BYTE *p) { | I286_SFT _rol_r8_1(UINT8 *p) { |
| DWORD src, dst; | UINT src; |
| UINT dst; | |
| src = *p; | src = *p; |
| BYTE_ROL1(dst, src) | BYTE_ROL1(dst, src) |
| *p = (BYTE)dst; | *p = (UINT8)dst; |
| } | } |
| I286_SFT _ror_r8_1(BYTE *p) { | I286_SFT _ror_r8_1(UINT8 *p) { |
| DWORD src, dst; | UINT src; |
| UINT dst; | |
| src = *p; | src = *p; |
| BYTE_ROR1(dst, src) | BYTE_ROR1(dst, src) |
| *p = (BYTE)dst; | *p = (UINT8)dst; |
| } | } |
| I286_SFT _rcl_r8_1(BYTE *p) { | I286_SFT _rcl_r8_1(UINT8 *p) { |
| DWORD src, dst; | UINT src; |
| UINT dst; | |
| src = *p; | src = *p; |
| BYTE_RCL1(dst, src) | BYTE_RCL1(dst, src) |
| *p = (BYTE)dst; | *p = (UINT8)dst; |
| } | } |
| I286_SFT _rcr_r8_1(BYTE *p) { | I286_SFT _rcr_r8_1(UINT8 *p) { |
| DWORD src, dst; | UINT src; |
| UINT dst; | |
| src = *p; | src = *p; |
| BYTE_RCR1(dst, src) | BYTE_RCR1(dst, src) |
| *p = (BYTE)dst; | *p = (UINT8)dst; |
| } | } |
| I286_SFT _shl_r8_1(BYTE *p) { | I286_SFT _shl_r8_1(UINT8 *p) { |
| DWORD src, dst; | UINT src; |
| UINT dst; | |
| src = *p; | src = *p; |
| BYTE_SHL1(dst, src) | BYTE_SHL1(dst, src) |
| *p = (BYTE)dst; | *p = (UINT8)dst; |
| } | } |
| I286_SFT _shr_r8_1(BYTE *p) { | I286_SFT _shr_r8_1(BYTE *p) { |
| DWORD src, dst; | UINT src; |
| UINT dst; | |
| src = *p; | src = *p; |
| BYTE_SHR1(dst, src) | BYTE_SHR1(dst, src) |
| *p = (BYTE)dst; | *p = (UINT8)dst; |
| } | } |
| I286_SFT _sar_r8_1(BYTE *p) { | I286_SFT _sar_r8_1(BYTE *p) { |
| DWORD src, dst; | UINT src; |
| UINT dst; | |
| src = *p; | src = *p; |
| BYTE_SAR1(dst, src) | BYTE_SAR1(dst, src) |
| *p = (BYTE)dst; | *p = (UINT8)dst; |
| } | } |
| I286_SFT _rol_e8_1(DWORD madr) { | I286_SFT _rol_e8_1(UINT32 madr) { |
| UINT src; | |
| UINT dst; | |
| DWORD src, dst; | |
| src = i286_memoryread(madr); | src = i286_memoryread(madr); |
| BYTE_ROL1(dst, src) | BYTE_ROL1(dst, src) |
| i286_memorywrite(madr, (BYTE)dst); | i286_memorywrite(madr, (REG8)dst); |
| } | } |
| I286_SFT _ror_e8_1(DWORD madr) { | I286_SFT _ror_e8_1(UINT32 madr) { |
| UINT src; | |
| UINT dst; | |
| DWORD src, dst; | |
| src = i286_memoryread(madr); | src = i286_memoryread(madr); |
| BYTE_ROR1(dst, src) | BYTE_ROR1(dst, src) |
| i286_memorywrite(madr, (BYTE)dst); | i286_memorywrite(madr, (REG8)dst); |
| } | } |
| I286_SFT _rcl_e8_1(DWORD madr) { | I286_SFT _rcl_e8_1(UINT32 madr) { |
| UINT src; | |
| UINT dst; | |
| DWORD src, dst; | |
| src = i286_memoryread(madr); | src = i286_memoryread(madr); |
| BYTE_RCL1(dst, src) | BYTE_RCL1(dst, src) |
| i286_memorywrite(madr, (BYTE)dst); | i286_memorywrite(madr, (REG8)dst); |
| } | } |
| I286_SFT _rcr_e8_1(DWORD madr) { | I286_SFT _rcr_e8_1(UINT32 madr) { |
| UINT src; | |
| UINT dst; | |
| DWORD src, dst; | |
| src = i286_memoryread(madr); | src = i286_memoryread(madr); |
| BYTE_RCR1(dst, src) | BYTE_RCR1(dst, src) |
| i286_memorywrite(madr, (BYTE)dst); | i286_memorywrite(madr, (REG8)dst); |
| } | } |
| I286_SFT _shl_e8_1(DWORD madr) { | I286_SFT _shl_e8_1(UINT32 madr) { |
| UINT src; | |
| UINT dst; | |
| DWORD src, dst; | |
| src = i286_memoryread(madr); | src = i286_memoryread(madr); |
| BYTE_SHL1(dst, src) | BYTE_SHL1(dst, src) |
| i286_memorywrite(madr, (BYTE)dst); | i286_memorywrite(madr, (REG8)dst); |
| } | } |
| I286_SFT _shr_e8_1(DWORD madr) { | I286_SFT _shr_e8_1(UINT32 madr) { |
| UINT src; | |
| UINT dst; | |
| DWORD src, dst; | |
| src = i286_memoryread(madr); | src = i286_memoryread(madr); |
| BYTE_SHR1(dst, src) | BYTE_SHR1(dst, src) |
| i286_memorywrite(madr, (BYTE)dst); | i286_memorywrite(madr, (REG8)dst); |
| } | } |
| I286_SFT _sar_e8_1(DWORD madr) { | I286_SFT _sar_e8_1(UINT32 madr) { |
| UINT src; | |
| UINT dst; | |
| DWORD src, dst; | |
| src = i286_memoryread(madr); | src = i286_memoryread(madr); |
| BYTE_SAR1(dst, src) | BYTE_SAR1(dst, src) |
| i286_memorywrite(madr, (BYTE)dst); | i286_memorywrite(madr, (REG8)dst); |
| } | } |
| Line 141 const I286OPSFTE8 sft_e8_table[] = { | Line 161 const I286OPSFTE8 sft_e8_table[] = { |
| // ------------------------------------------------------------------------ | // ------------------------------------------------------------------------ |
| I286_SFT _rol_r16_1(WORD *p) { | I286_SFT _rol_r16_1(UINT16 *p) { |
| DWORD src, dst; | UINT32 src; |
| UINT32 dst; | |
| src = *p; | src = *p; |
| WORD_ROL1(dst, src) | WORD_ROL1(dst, src) |
| *p = (WORD)dst; | *p = (UINT16)dst; |
| } | } |
| I286_SFT _ror_r16_1(WORD *p) { | I286_SFT _ror_r16_1(UINT16 *p) { |
| DWORD src, dst; | UINT32 src; |
| UINT32 dst; | |
| src = *p; | src = *p; |
| WORD_ROR1(dst, src) | WORD_ROR1(dst, src) |
| *p = (WORD)dst; | *p = (UINT16)dst; |
| } | } |
| I286_SFT _rcl_r16_1(WORD *p) { | I286_SFT _rcl_r16_1(UINT16 *p) { |
| DWORD src, dst; | UINT32 src; |
| UINT32 dst; | |
| src = *p; | src = *p; |
| WORD_RCL1(dst, src) | WORD_RCL1(dst, src) |
| *p = (WORD)dst; | *p = (UINT16)dst; |
| } | } |
| I286_SFT _rcr_r16_1(WORD *p) { | I286_SFT _rcr_r16_1(UINT16 *p) { |
| DWORD src, dst; | UINT32 src; |
| UINT32 dst; | |
| src = *p; | src = *p; |
| WORD_RCR1(dst, src) | WORD_RCR1(dst, src) |
| *p = (WORD)dst; | *p = (UINT16)dst; |
| } | } |
| I286_SFT _shl_r16_1(WORD *p) { | I286_SFT _shl_r16_1(UINT16 *p) { |
| DWORD src, dst; | UINT32 src; |
| UINT32 dst; | |
| src = *p; | src = *p; |
| WORD_SHL1(dst, src) | WORD_SHL1(dst, src) |
| *p = (WORD)dst; | *p = (UINT16)dst; |
| } | } |
| I286_SFT _shr_r16_1(WORD *p) { | I286_SFT _shr_r16_1(UINT16 *p) { |
| DWORD src, dst; | UINT32 src; |
| UINT32 dst; | |
| src = *p; | src = *p; |
| WORD_SHR1(dst, src) | WORD_SHR1(dst, src) |
| *p = (WORD)dst; | *p = (UINT16)dst; |
| } | } |
| I286_SFT _sar_r16_1(WORD *p) { | I286_SFT _sar_r16_1(UINT16 *p) { |
| DWORD src, dst; | UINT32 src; |
| UINT32 dst; | |
| src = *p; | src = *p; |
| WORD_SAR1(dst, src) | WORD_SAR1(dst, src) |
| *p = (WORD)dst; | *p = (UINT16)dst; |
| } | } |
| I286_SFT _rol_e16_1(DWORD madr) { | I286_SFT _rol_e16_1(UINT32 madr) { |
| DWORD src, dst; | UINT32 src; |
| UINT32 dst; | |
| src = i286_memoryread_w(madr); | src = i286_memoryread_w(madr); |
| WORD_ROL1(dst, src) | WORD_ROL1(dst, src) |
| i286_memorywrite_w(madr, (WORD)dst); | i286_memorywrite_w(madr, (REG16)dst); |
| } | } |
| I286_SFT _ror_e16_1(DWORD madr) { | I286_SFT _ror_e16_1(UINT32 madr) { |
| DWORD src, dst; | UINT32 src; |
| UINT32 dst; | |
| src = i286_memoryread_w(madr); | src = i286_memoryread_w(madr); |
| WORD_ROR1(dst, src) | WORD_ROR1(dst, src) |
| i286_memorywrite_w(madr, (WORD)dst); | i286_memorywrite_w(madr, (REG16)dst); |
| } | } |
| I286_SFT _rcl_e16_1(DWORD madr) { | I286_SFT _rcl_e16_1(UINT32 madr) { |
| DWORD src, dst; | UINT32 src; |
| UINT32 dst; | |
| src = i286_memoryread_w(madr); | src = i286_memoryread_w(madr); |
| WORD_RCL1(dst, src) | WORD_RCL1(dst, src) |
| i286_memorywrite_w(madr, (WORD)dst); | i286_memorywrite_w(madr, (REG16)dst); |
| } | } |
| I286_SFT _rcr_e16_1(DWORD madr) { | I286_SFT _rcr_e16_1(UINT32 madr) { |
| DWORD src, dst; | UINT32 src; |
| UINT32 dst; | |
| src = i286_memoryread_w(madr); | src = i286_memoryread_w(madr); |
| WORD_RCR1(dst, src) | WORD_RCR1(dst, src) |
| i286_memorywrite_w(madr, (WORD)dst); | i286_memorywrite_w(madr, (REG16)dst); |
| } | } |
| I286_SFT _shl_e16_1(DWORD madr) { | I286_SFT _shl_e16_1(UINT32 madr) { |
| DWORD src, dst; | UINT32 src; |
| UINT32 dst; | |
| src = i286_memoryread_w(madr); | src = i286_memoryread_w(madr); |
| WORD_SHL1(dst, src) | WORD_SHL1(dst, src) |
| i286_memorywrite_w(madr, (WORD)dst); | i286_memorywrite_w(madr, (REG16)dst); |
| } | } |
| I286_SFT _shr_e16_1(DWORD madr) { | I286_SFT _shr_e16_1(UINT32 madr) { |
| DWORD src, dst; | UINT32 src; |
| UINT32 dst; | |
| src = i286_memoryread_w(madr); | src = i286_memoryread_w(madr); |
| WORD_SHR1(dst, src) | WORD_SHR1(dst, src) |
| i286_memorywrite_w(madr, (WORD)dst); | i286_memorywrite_w(madr, (REG16)dst); |
| } | } |
| I286_SFT _sar_e16_1(DWORD madr) { | I286_SFT _sar_e16_1(UINT32 madr) { |
| DWORD src, dst; | UINT32 src; |
| UINT32 dst; | |
| src = i286_memoryread_w(madr); | src = i286_memoryread_w(madr); |
| WORD_SAR1(dst, src) | WORD_SAR1(dst, src) |
| i286_memorywrite_w(madr, (WORD)dst); | i286_memorywrite_w(madr, (REG16)dst); |
| } | } |
| Line 279 const I286OPSFTE16 sft_e16_table[] = { | Line 313 const I286OPSFTE16 sft_e16_table[] = { |
| // ------------------------------------------------------------------------ | // ------------------------------------------------------------------------ |
| I286_SFT _rol_r8_cl(BYTE *p, BYTE cl) { | I286_SFT _rol_r8_cl(UINT8 *p, REG8 cl) { |
| DWORD src, dst; | UINT src; |
| UINT dst; | |
| src = *p; | src = *p; |
| BYTE_ROLCL(dst, src, cl) | BYTE_ROLCL(dst, src, cl) |
| *p = (BYTE)dst; | *p = (UINT8)dst; |
| } | } |
| I286_SFT _ror_r8_cl(BYTE *p, BYTE cl) { | I286_SFT _ror_r8_cl(UINT8 *p, REG8 cl) { |
| DWORD src, dst; | UINT src; |
| UINT dst; | |
| src = *p; | src = *p; |
| BYTE_RORCL(dst, src, cl) | BYTE_RORCL(dst, src, cl) |
| *p = (BYTE)dst; | *p = (UINT8)dst; |
| } | } |
| I286_SFT _rcl_r8_cl(BYTE *p, BYTE cl) { | I286_SFT _rcl_r8_cl(UINT8 *p, REG8 cl) { |
| DWORD src, dst; | UINT src; |
| UINT dst; | |
| src = *p; | src = *p; |
| BYTE_RCLCL(dst, src, cl) | BYTE_RCLCL(dst, src, cl) |
| *p = (BYTE)dst; | *p = (UINT8)dst; |
| } | } |
| I286_SFT _rcr_r8_cl(BYTE *p, BYTE cl) { | I286_SFT _rcr_r8_cl(UINT8 *p, REG8 cl) { |
| DWORD src, dst; | UINT src; |
| UINT dst; | |
| src = *p; | src = *p; |
| BYTE_RCRCL(dst, src, cl) | BYTE_RCRCL(dst, src, cl) |
| *p = (BYTE)dst; | *p = (UINT8)dst; |
| } | } |
| I286_SFT _shl_r8_cl(BYTE *p, BYTE cl) { | I286_SFT _shl_r8_cl(UINT8 *p, REG8 cl) { |
| DWORD src, dst; | UINT src; |
| UINT dst; | |
| src = *p; | src = *p; |
| BYTE_SHLCL(dst, src, cl) | BYTE_SHLCL(dst, src, cl) |
| *p = (BYTE)dst; | *p = (UINT8)dst; |
| } | } |
| I286_SFT _shr_r8_cl(BYTE *p, BYTE cl) { | I286_SFT _shr_r8_cl(UINT8 *p, REG8 cl) { |
| DWORD src, dst; | UINT src; |
| UINT dst; | |
| src = *p; | src = *p; |
| BYTE_SHRCL(dst, src, cl) | BYTE_SHRCL(dst, src, cl) |
| *p = (BYTE)dst; | *p = (UINT8)dst; |
| } | } |
| I286_SFT _sar_r8_cl(BYTE *p, BYTE cl) { | I286_SFT _sar_r8_cl(UINT8 *p, REG8 cl) { |
| DWORD src, dst; | UINT src; |
| UINT dst; | |
| src = *p; | src = *p; |
| BYTE_SARCL(dst, src, cl) | BYTE_SARCL(dst, src, cl) |
| *p = (BYTE)dst; | *p = (UINT8)dst; |
| } | } |
| I286_SFT _rol_e8_cl(DWORD madr, BYTE cl) { | I286_SFT _rol_e8_cl(UINT32 madr, REG8 cl) { |
| DWORD src, dst; | UINT src; |
| UINT dst; | |
| src = i286_memoryread(madr); | src = i286_memoryread(madr); |
| BYTE_ROLCL(dst, src, cl) | BYTE_ROLCL(dst, src, cl) |
| i286_memorywrite(madr, (BYTE)dst); | i286_memorywrite(madr, (REG8)dst); |
| } | } |
| I286_SFT _ror_e8_cl(DWORD madr, BYTE cl) { | I286_SFT _ror_e8_cl(UINT32 madr, REG8 cl) { |
| DWORD src, dst; | UINT src; |
| UINT dst; | |
| src = i286_memoryread(madr); | src = i286_memoryread(madr); |
| BYTE_RORCL(dst, src, cl) | BYTE_RORCL(dst, src, cl) |
| i286_memorywrite(madr, (BYTE)dst); | i286_memorywrite(madr, (REG8)dst); |
| } | } |
| I286_SFT _rcl_e8_cl(DWORD madr, BYTE cl) { | I286_SFT _rcl_e8_cl(UINT32 madr, REG8 cl) { |
| DWORD src, dst; | UINT src; |
| UINT dst; | |
| src = i286_memoryread(madr); | src = i286_memoryread(madr); |
| BYTE_RCLCL(dst, src, cl) | BYTE_RCLCL(dst, src, cl) |
| i286_memorywrite(madr, (BYTE)dst); | i286_memorywrite(madr, (REG8)dst); |
| } | } |
| I286_SFT _rcr_e8_cl(DWORD madr, BYTE cl) { | I286_SFT _rcr_e8_cl(UINT32 madr, REG8 cl) { |
| DWORD src, dst; | UINT src; |
| UINT dst; | |
| src = i286_memoryread(madr); | src = i286_memoryread(madr); |
| BYTE_RCRCL(dst, src, cl) | BYTE_RCRCL(dst, src, cl) |
| i286_memorywrite(madr, (BYTE)dst); | i286_memorywrite(madr, (REG8)dst); |
| } | } |
| I286_SFT _shl_e8_cl(DWORD madr, BYTE cl) { | I286_SFT _shl_e8_cl(UINT32 madr, REG8 cl) { |
| DWORD src, dst; | UINT src; |
| UINT dst; | |
| src = i286_memoryread(madr); | src = i286_memoryread(madr); |
| BYTE_SHLCL(dst, src, cl) | BYTE_SHLCL(dst, src, cl) |
| i286_memorywrite(madr, (BYTE)dst); | i286_memorywrite(madr, (REG8)dst); |
| } | } |
| I286_SFT _shr_e8_cl(DWORD madr, BYTE cl) { | I286_SFT _shr_e8_cl(UINT32 madr, REG8 cl) { |
| DWORD src, dst; | UINT src; |
| UINT dst; | |
| src = i286_memoryread(madr); | src = i286_memoryread(madr); |
| BYTE_SHRCL(dst, src, cl) | BYTE_SHRCL(dst, src, cl) |
| i286_memorywrite(madr, (BYTE)dst); | i286_memorywrite(madr, (REG8)dst); |
| } | } |
| I286_SFT _sar_e8_cl(DWORD madr, BYTE cl) { | I286_SFT _sar_e8_cl(UINT32 madr, REG8 cl) { |
| DWORD src, dst; | UINT src; |
| UINT dst; | |
| src = i286_memoryread(madr); | src = i286_memoryread(madr); |
| BYTE_SARCL(dst, src, cl) | BYTE_SARCL(dst, src, cl) |
| i286_memorywrite(madr, (BYTE)dst); | i286_memorywrite(madr, (REG8)dst); |
| } | } |
| Line 418 const I286OPSFTE8CL sft_e8cl_table[] = { | Line 466 const I286OPSFTE8CL sft_e8cl_table[] = { |
| // ------------------------------------------------------------------------ | // ------------------------------------------------------------------------ |
| I286_SFT _rol_r16_cl(WORD *p, BYTE cl) { | I286_SFT _rol_r16_cl(UINT16 *p, REG8 cl) { |
| DWORD src, dst; | UINT32 src; |
| UINT32 dst; | |
| src = *p; | src = *p; |
| WORD_ROLCL(dst, src, cl) | WORD_ROLCL(dst, src, cl) |
| *p = (WORD)dst; | *p = (UINT16)dst; |
| } | } |
| I286_SFT _ror_r16_cl(WORD *p, BYTE cl) { | I286_SFT _ror_r16_cl(UINT16 *p, REG8 cl) { |
| DWORD src, dst; | UINT32 src; |
| UINT32 dst; | |
| src = *p; | src = *p; |
| WORD_RORCL(dst, src, cl) | WORD_RORCL(dst, src, cl) |
| *p = (WORD)dst; | *p = (UINT16)dst; |
| } | } |
| I286_SFT _rcl_r16_cl(WORD *p, BYTE cl) { | I286_SFT _rcl_r16_cl(UINT16 *p, REG8 cl) { |
| DWORD src, dst; | UINT32 src; |
| UINT32 dst; | |
| src = *p; | src = *p; |
| WORD_RCLCL(dst, src, cl) | WORD_RCLCL(dst, src, cl) |
| *p = (WORD)dst; | *p = (UINT16)dst; |
| } | } |
| I286_SFT _rcr_r16_cl(WORD *p, BYTE cl) { | I286_SFT _rcr_r16_cl(UINT16 *p, REG8 cl) { |
| DWORD src, dst; | UINT32 src; |
| UINT32 dst; | |
| src = *p; | src = *p; |
| WORD_RCRCL(dst, src, cl) | WORD_RCRCL(dst, src, cl) |
| *p = (WORD)dst; | *p = (UINT16)dst; |
| } | } |
| I286_SFT _shl_r16_cl(WORD *p, BYTE cl) { | I286_SFT _shl_r16_cl(UINT16 *p, REG8 cl) { |
| DWORD src, dst; | UINT32 src; |
| UINT32 dst; | |
| src = *p; | src = *p; |
| WORD_SHLCL(dst, src, cl) | WORD_SHLCL(dst, src, cl) |
| *p = (WORD)dst; | *p = (UINT16)dst; |
| } | } |
| I286_SFT _shr_r16_cl(WORD *p, BYTE cl) { | I286_SFT _shr_r16_cl(UINT16 *p, REG8 cl) { |
| DWORD src, dst; | UINT32 src; |
| UINT32 dst; | |
| src = *p; | src = *p; |
| WORD_SHRCL(dst, src, cl) | WORD_SHRCL(dst, src, cl) |
| *p = (WORD)dst; | *p = (UINT16)dst; |
| } | } |
| I286_SFT _sar_r16_cl(WORD *p, BYTE cl) { | I286_SFT _sar_r16_cl(UINT16 *p, REG8 cl) { |
| DWORD src, dst; | UINT32 src; |
| UINT32 dst; | |
| src = *p; | src = *p; |
| WORD_SARCL(dst, src, cl) | WORD_SARCL(dst, src, cl) |
| *p = (WORD)dst; | *p = (UINT16)dst; |
| } | } |
| I286_SFT _rol_e16_cl(DWORD madr, BYTE cl) { | I286_SFT _rol_e16_cl(UINT32 madr, REG8 cl) { |
| DWORD src, dst; | UINT32 src; |
| UINT32 dst; | |
| src = i286_memoryread_w(madr); | src = i286_memoryread_w(madr); |
| WORD_ROLCL(dst, src, cl) | WORD_ROLCL(dst, src, cl) |
| i286_memorywrite_w(madr, (WORD)dst); | i286_memorywrite_w(madr, (REG16)dst); |
| } | } |
| I286_SFT _ror_e16_cl(DWORD madr, BYTE cl) { | I286_SFT _ror_e16_cl(UINT32 madr, REG8 cl) { |
| DWORD src, dst; | UINT32 src; |
| UINT32 dst; | |
| src = i286_memoryread_w(madr); | src = i286_memoryread_w(madr); |
| WORD_RORCL(dst, src, cl) | WORD_RORCL(dst, src, cl) |
| i286_memorywrite_w(madr, (WORD)dst); | i286_memorywrite_w(madr, (REG16)dst); |
| } | } |
| I286_SFT _rcl_e16_cl(DWORD madr, BYTE cl) { | I286_SFT _rcl_e16_cl(UINT32 madr, REG8 cl) { |
| DWORD src, dst; | UINT32 src; |
| UINT32 dst; | |
| src = i286_memoryread_w(madr); | src = i286_memoryread_w(madr); |
| WORD_RCLCL(dst, src, cl) | WORD_RCLCL(dst, src, cl) |
| i286_memorywrite_w(madr, (WORD)dst); | i286_memorywrite_w(madr, (REG16)dst); |
| } | } |
| I286_SFT _rcr_e16_cl(DWORD madr, BYTE cl) { | I286_SFT _rcr_e16_cl(UINT32 madr, REG8 cl) { |
| DWORD src, dst; | UINT32 src; |
| UINT32 dst; | |
| src = i286_memoryread_w(madr); | src = i286_memoryread_w(madr); |
| WORD_RCRCL(dst, src, cl) | WORD_RCRCL(dst, src, cl) |
| i286_memorywrite_w(madr, (WORD)dst); | i286_memorywrite_w(madr, (REG16)dst); |
| } | } |
| I286_SFT _shl_e16_cl(DWORD madr, BYTE cl) { | I286_SFT _shl_e16_cl(UINT32 madr, REG8 cl) { |
| DWORD src, dst; | UINT32 src; |
| UINT32 dst; | |
| src = i286_memoryread_w(madr); | src = i286_memoryread_w(madr); |
| WORD_SHLCL(dst, src, cl) | WORD_SHLCL(dst, src, cl) |
| i286_memorywrite_w(madr, (WORD)dst); | i286_memorywrite_w(madr, (REG16)dst); |
| } | } |
| I286_SFT _shr_e16_cl(DWORD madr, BYTE cl) { | I286_SFT _shr_e16_cl(UINT32 madr, REG8 cl) { |
| DWORD src, dst; | UINT32 src; |
| UINT32 dst; | |
| src = i286_memoryread_w(madr); | src = i286_memoryread_w(madr); |
| WORD_SHRCL(dst, src, cl) | WORD_SHRCL(dst, src, cl) |
| i286_memorywrite_w(madr, (WORD)dst); | i286_memorywrite_w(madr, (REG16)dst); |
| } | } |
| I286_SFT _sar_e16_cl(DWORD madr, BYTE cl) { | I286_SFT _sar_e16_cl(UINT32 madr, REG8 cl) { |
| DWORD src, dst; | UINT32 src; |
| UINT32 dst; | |
| src = i286_memoryread_w(madr); | src = i286_memoryread_w(madr); |
| WORD_SARCL(dst, src, cl) | WORD_SARCL(dst, src, cl) |
| i286_memorywrite_w(madr, (WORD)dst); | i286_memorywrite_w(madr, (REG16)dst); |
| } | } |
| Line 553 const I286OPSFTR16CL sft_r16cl_table[] = | Line 615 const I286OPSFTR16CL sft_r16cl_table[] = |
| const I286OPSFTE16CL sft_e16cl_table[] = { | const I286OPSFTE16CL sft_e16cl_table[] = { |
| _rol_e16_cl, _ror_e16_cl, _rcl_e16_cl, _rcr_e16_cl, | _rol_e16_cl, _ror_e16_cl, _rcl_e16_cl, _rcr_e16_cl, |
| _shl_e16_cl, _shr_e16_cl, _shl_e16_cl, _sar_e16_cl}; | _shl_e16_cl, _shr_e16_cl, _shl_e16_cl, _sar_e16_cl}; |