|
|
| version 1.1, 2003/10/16 17:57:44 | version 1.5, 2003/12/08 00:55:31 |
|---|---|
| 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(BYTE *p) { |
| DWORD src, dst; | UINT src; |
| UINT dst; | |
| src = *p; | src = *p; |
| BYTE_ROL1(dst, src) | BYTE_ROL1(dst, src) |
| Line 20 I286_SFT _rol_r8_1(BYTE *p) { | Line 20 I286_SFT _rol_r8_1(BYTE *p) { |
| I286_SFT _ror_r8_1(BYTE *p) { | I286_SFT _ror_r8_1(BYTE *p) { |
| DWORD src, dst; | UINT src; |
| UINT dst; | |
| src = *p; | src = *p; |
| BYTE_ROR1(dst, src) | BYTE_ROR1(dst, src) |
| Line 29 I286_SFT _ror_r8_1(BYTE *p) { | Line 30 I286_SFT _ror_r8_1(BYTE *p) { |
| I286_SFT _rcl_r8_1(BYTE *p) { | I286_SFT _rcl_r8_1(BYTE *p) { |
| DWORD src, dst; | UINT src; |
| UINT dst; | |
| src = *p; | src = *p; |
| BYTE_RCL1(dst, src) | BYTE_RCL1(dst, src) |
| Line 38 I286_SFT _rcl_r8_1(BYTE *p) { | Line 40 I286_SFT _rcl_r8_1(BYTE *p) { |
| I286_SFT _rcr_r8_1(BYTE *p) { | I286_SFT _rcr_r8_1(BYTE *p) { |
| DWORD src, dst; | UINT src; |
| UINT dst; | |
| src = *p; | src = *p; |
| BYTE_RCR1(dst, src) | BYTE_RCR1(dst, src) |
| Line 47 I286_SFT _rcr_r8_1(BYTE *p) { | Line 50 I286_SFT _rcr_r8_1(BYTE *p) { |
| I286_SFT _shl_r8_1(BYTE *p) { | I286_SFT _shl_r8_1(BYTE *p) { |
| DWORD src, dst; | UINT src; |
| UINT dst; | |
| src = *p; | src = *p; |
| BYTE_SHL1(dst, src) | BYTE_SHL1(dst, src) |
| Line 56 I286_SFT _shl_r8_1(BYTE *p) { | Line 60 I286_SFT _shl_r8_1(BYTE *p) { |
| 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) |
| Line 65 I286_SFT _shr_r8_1(BYTE *p) { | Line 70 I286_SFT _shr_r8_1(BYTE *p) { |
| 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) |
| Line 73 I286_SFT _sar_r8_1(BYTE *p) { | Line 79 I286_SFT _sar_r8_1(BYTE *p) { |
| } | } |
| 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 281 const I286OPSFTE16 sft_e16_table[] = { | Line 315 const I286OPSFTE16 sft_e16_table[] = { |
| I286_SFT _rol_r8_cl(BYTE *p, BYTE cl) { | I286_SFT _rol_r8_cl(BYTE *p, BYTE cl) { |
| DWORD src, dst; | UINT src; |
| UINT dst; | |
| src = *p; | src = *p; |
| BYTE_ROLCL(dst, src, cl) | BYTE_ROLCL(dst, src, cl) |
| Line 290 I286_SFT _rol_r8_cl(BYTE *p, BYTE cl) { | Line 325 I286_SFT _rol_r8_cl(BYTE *p, BYTE cl) { |
| I286_SFT _ror_r8_cl(BYTE *p, BYTE cl) { | I286_SFT _ror_r8_cl(BYTE *p, BYTE cl) { |
| DWORD src, dst; | UINT src; |
| UINT dst; | |
| src = *p; | src = *p; |
| BYTE_RORCL(dst, src, cl) | BYTE_RORCL(dst, src, cl) |
| Line 299 I286_SFT _ror_r8_cl(BYTE *p, BYTE cl) { | Line 335 I286_SFT _ror_r8_cl(BYTE *p, BYTE cl) { |
| I286_SFT _rcl_r8_cl(BYTE *p, BYTE cl) { | I286_SFT _rcl_r8_cl(BYTE *p, BYTE cl) { |
| DWORD src, dst; | UINT src; |
| UINT dst; | |
| src = *p; | src = *p; |
| BYTE_RCLCL(dst, src, cl) | BYTE_RCLCL(dst, src, cl) |
| Line 308 I286_SFT _rcl_r8_cl(BYTE *p, BYTE cl) { | Line 345 I286_SFT _rcl_r8_cl(BYTE *p, BYTE cl) { |
| I286_SFT _rcr_r8_cl(BYTE *p, BYTE cl) { | I286_SFT _rcr_r8_cl(BYTE *p, BYTE cl) { |
| DWORD src, dst; | UINT src; |
| UINT dst; | |
| src = *p; | src = *p; |
| BYTE_RCRCL(dst, src, cl) | BYTE_RCRCL(dst, src, cl) |
| Line 317 I286_SFT _rcr_r8_cl(BYTE *p, BYTE cl) { | Line 355 I286_SFT _rcr_r8_cl(BYTE *p, BYTE cl) { |
| I286_SFT _shl_r8_cl(BYTE *p, BYTE cl) { | I286_SFT _shl_r8_cl(BYTE *p, BYTE cl) { |
| DWORD src, dst; | UINT src; |
| UINT dst; | |
| src = *p; | src = *p; |
| BYTE_SHLCL(dst, src, cl) | BYTE_SHLCL(dst, src, cl) |
| Line 326 I286_SFT _shl_r8_cl(BYTE *p, BYTE cl) { | Line 365 I286_SFT _shl_r8_cl(BYTE *p, BYTE cl) { |
| I286_SFT _shr_r8_cl(BYTE *p, BYTE cl) { | I286_SFT _shr_r8_cl(BYTE *p, BYTE cl) { |
| DWORD src, dst; | UINT src; |
| UINT dst; | |
| src = *p; | src = *p; |
| BYTE_SHRCL(dst, src, cl) | BYTE_SHRCL(dst, src, cl) |
| Line 335 I286_SFT _shr_r8_cl(BYTE *p, BYTE cl) { | Line 375 I286_SFT _shr_r8_cl(BYTE *p, BYTE cl) { |
| I286_SFT _sar_r8_cl(BYTE *p, BYTE cl) { | I286_SFT _sar_r8_cl(BYTE *p, BYTE cl) { |
| DWORD src, dst; | UINT src; |
| UINT dst; | |
| src = *p; | src = *p; |
| BYTE_SARCL(dst, src, cl) | BYTE_SARCL(dst, src, cl) |
| Line 343 I286_SFT _sar_r8_cl(BYTE *p, BYTE cl) { | Line 384 I286_SFT _sar_r8_cl(BYTE *p, BYTE cl) { |
| } | } |
| I286_SFT _rol_e8_cl(DWORD madr, BYTE cl) { | I286_SFT _rol_e8_cl(UINT32 madr, BYTE 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, BYTE 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, BYTE 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, BYTE 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, BYTE 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, BYTE 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, BYTE 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, BYTE 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, BYTE 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, BYTE 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, BYTE 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, BYTE 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, BYTE 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, BYTE 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, BYTE 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, BYTE 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, BYTE 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, BYTE 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, BYTE 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, BYTE 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, BYTE 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}; |