|
|
| version 1.2, 2003/10/17 11:10:02 | version 1.8, 2005/02/07 14:46:11 |
|---|---|
| Line 1 | Line 1 |
| #include "compiler.h" | #include "compiler.h" |
| #include "i286.h" | #include "cpucore.h" |
| #include "i286c.h" | #include "i286c.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) { |
| UINT src; | UINT src; |
| UINT dst; | 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) { |
| UINT src; | UINT src; |
| UINT dst; | 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) { |
| UINT src; | UINT src; |
| UINT dst; | 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) { |
| UINT src; | UINT src; |
| UINT dst; | 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) { |
| UINT src; | UINT src; |
| UINT dst; | 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(UINT8 *p) { |
| UINT src; | UINT src; |
| UINT dst; | 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(UINT8 *p) { |
| UINT src; | UINT src; |
| UINT dst; | UINT dst; |
| src = *p; | src = *p; |
| BYTE_SAR1(dst, src) | BYTE_SAR1(dst, src) |
| *p = (BYTE)dst; | *p = (UINT8)dst; |
| } | } |
| Line 87 I286_SFT _rol_e8_1(UINT32 madr) { | Line 85 I286_SFT _rol_e8_1(UINT32 madr) { |
| 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(UINT32 madr) { | I286_SFT _ror_e8_1(UINT32 madr) { |
| Line 97 I286_SFT _ror_e8_1(UINT32 madr) { | Line 95 I286_SFT _ror_e8_1(UINT32 madr) { |
| 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(UINT32 madr) { | I286_SFT _rcl_e8_1(UINT32 madr) { |
| Line 107 I286_SFT _rcl_e8_1(UINT32 madr) { | Line 105 I286_SFT _rcl_e8_1(UINT32 madr) { |
| 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(UINT32 madr) { | I286_SFT _rcr_e8_1(UINT32 madr) { |
| Line 117 I286_SFT _rcr_e8_1(UINT32 madr) { | Line 115 I286_SFT _rcr_e8_1(UINT32 madr) { |
| 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(UINT32 madr) { | I286_SFT _shl_e8_1(UINT32 madr) { |
| Line 127 I286_SFT _shl_e8_1(UINT32 madr) { | Line 125 I286_SFT _shl_e8_1(UINT32 madr) { |
| 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(UINT32 madr) { | I286_SFT _shr_e8_1(UINT32 madr) { |
| Line 137 I286_SFT _shr_e8_1(UINT32 madr) { | Line 135 I286_SFT _shr_e8_1(UINT32 madr) { |
| 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(UINT32 madr) { | I286_SFT _sar_e8_1(UINT32 madr) { |
| Line 147 I286_SFT _sar_e8_1(UINT32 madr) { | Line 145 I286_SFT _sar_e8_1(UINT32 madr) { |
| 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 240 I286_SFT _rol_e16_1(UINT32 madr) { | Line 238 I286_SFT _rol_e16_1(UINT32 madr) { |
| src = i286_memoryread_w(madr); | src = i286_memoryread_w(madr); |
| WORD_ROL1(dst, src) | WORD_ROL1(dst, src) |
| i286_memorywrite_w(madr, (UINT16)dst); | i286_memorywrite_w(madr, (REG16)dst); |
| } | } |
| I286_SFT _ror_e16_1(UINT32 madr) { | I286_SFT _ror_e16_1(UINT32 madr) { |
| Line 250 I286_SFT _ror_e16_1(UINT32 madr) { | Line 248 I286_SFT _ror_e16_1(UINT32 madr) { |
| src = i286_memoryread_w(madr); | src = i286_memoryread_w(madr); |
| WORD_ROR1(dst, src) | WORD_ROR1(dst, src) |
| i286_memorywrite_w(madr, (UINT16)dst); | i286_memorywrite_w(madr, (REG16)dst); |
| } | } |
| I286_SFT _rcl_e16_1(UINT32 madr) { | I286_SFT _rcl_e16_1(UINT32 madr) { |
| Line 260 I286_SFT _rcl_e16_1(UINT32 madr) { | Line 258 I286_SFT _rcl_e16_1(UINT32 madr) { |
| src = i286_memoryread_w(madr); | src = i286_memoryread_w(madr); |
| WORD_RCL1(dst, src) | WORD_RCL1(dst, src) |
| i286_memorywrite_w(madr, (UINT16)dst); | i286_memorywrite_w(madr, (REG16)dst); |
| } | } |
| I286_SFT _rcr_e16_1(UINT32 madr) { | I286_SFT _rcr_e16_1(UINT32 madr) { |
| Line 270 I286_SFT _rcr_e16_1(UINT32 madr) { | Line 268 I286_SFT _rcr_e16_1(UINT32 madr) { |
| src = i286_memoryread_w(madr); | src = i286_memoryread_w(madr); |
| WORD_RCR1(dst, src) | WORD_RCR1(dst, src) |
| i286_memorywrite_w(madr, (UINT16)dst); | i286_memorywrite_w(madr, (REG16)dst); |
| } | } |
| I286_SFT _shl_e16_1(UINT32 madr) { | I286_SFT _shl_e16_1(UINT32 madr) { |
| Line 280 I286_SFT _shl_e16_1(UINT32 madr) { | Line 278 I286_SFT _shl_e16_1(UINT32 madr) { |
| src = i286_memoryread_w(madr); | src = i286_memoryread_w(madr); |
| WORD_SHL1(dst, src) | WORD_SHL1(dst, src) |
| i286_memorywrite_w(madr, (UINT16)dst); | i286_memorywrite_w(madr, (REG16)dst); |
| } | } |
| I286_SFT _shr_e16_1(UINT32 madr) { | I286_SFT _shr_e16_1(UINT32 madr) { |
| Line 290 I286_SFT _shr_e16_1(UINT32 madr) { | Line 288 I286_SFT _shr_e16_1(UINT32 madr) { |
| src = i286_memoryread_w(madr); | src = i286_memoryread_w(madr); |
| WORD_SHR1(dst, src) | WORD_SHR1(dst, src) |
| i286_memorywrite_w(madr, (UINT16)dst); | i286_memorywrite_w(madr, (REG16)dst); |
| } | } |
| I286_SFT _sar_e16_1(UINT32 madr) { | I286_SFT _sar_e16_1(UINT32 madr) { |
| Line 300 I286_SFT _sar_e16_1(UINT32 madr) { | Line 298 I286_SFT _sar_e16_1(UINT32 madr) { |
| src = i286_memoryread_w(madr); | src = i286_memoryread_w(madr); |
| WORD_SAR1(dst, src) | WORD_SAR1(dst, src) |
| i286_memorywrite_w(madr, (UINT16)dst); | i286_memorywrite_w(madr, (REG16)dst); |
| } | } |
| Line 314 const I286OPSFTE16 sft_e16_table[] = { | Line 312 const I286OPSFTE16 sft_e16_table[] = { |
| // ------------------------------------------------------------------------ | // ------------------------------------------------------------------------ |
| I286_SFT _rol_r8_cl(BYTE *p, BYTE cl) { | I286_SFT _rol_r8_cl(UINT8 *p, REG8 cl) { |
| UINT src; | UINT src; |
| UINT dst; | 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) { |
| UINT src; | UINT src; |
| UINT dst; | 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) { |
| UINT src; | UINT src; |
| UINT dst; | 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) { |
| UINT src; | UINT src; |
| UINT dst; | 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) { |
| UINT src; | UINT src; |
| UINT dst; | 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) { |
| UINT src; | UINT src; |
| UINT dst; | 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) { |
| UINT src; | UINT src; |
| UINT dst; | 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(UINT32 madr, BYTE cl) { | I286_SFT _rol_e8_cl(UINT32 madr, REG8 cl) { |
| UINT src; | UINT src; |
| UINT dst; | 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(UINT32 madr, BYTE cl) { | I286_SFT _ror_e8_cl(UINT32 madr, REG8 cl) { |
| UINT src; | UINT src; |
| UINT dst; | 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(UINT32 madr, BYTE cl) { | I286_SFT _rcl_e8_cl(UINT32 madr, REG8 cl) { |
| UINT src; | UINT src; |
| UINT dst; | 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(UINT32 madr, BYTE cl) { | I286_SFT _rcr_e8_cl(UINT32 madr, REG8 cl) { |
| UINT src; | UINT src; |
| UINT dst; | 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(UINT32 madr, BYTE cl) { | I286_SFT _shl_e8_cl(UINT32 madr, REG8 cl) { |
| UINT src; | UINT src; |
| UINT dst; | 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(UINT32 madr, BYTE cl) { | I286_SFT _shr_e8_cl(UINT32 madr, REG8 cl) { |
| UINT src; | UINT src; |
| UINT dst; | 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(UINT32 madr, BYTE cl) { | I286_SFT _sar_e8_cl(UINT32 madr, REG8 cl) { |
| UINT src; | UINT src; |
| UINT dst; | 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 467 const I286OPSFTE8CL sft_e8cl_table[] = { | Line 465 const I286OPSFTE8CL sft_e8cl_table[] = { |
| // ------------------------------------------------------------------------ | // ------------------------------------------------------------------------ |
| I286_SFT _rol_r16_cl(UINT16 *p, BYTE cl) { | I286_SFT _rol_r16_cl(UINT16 *p, REG8 cl) { |
| UINT32 src; | UINT32 src; |
| UINT32 dst; | UINT32 dst; |
| Line 477 I286_SFT _rol_r16_cl(UINT16 *p, BYTE cl) | Line 475 I286_SFT _rol_r16_cl(UINT16 *p, BYTE cl) |
| *p = (UINT16)dst; | *p = (UINT16)dst; |
| } | } |
| I286_SFT _ror_r16_cl(UINT16 *p, BYTE cl) { | I286_SFT _ror_r16_cl(UINT16 *p, REG8 cl) { |
| UINT32 src; | UINT32 src; |
| UINT32 dst; | UINT32 dst; |
| Line 487 I286_SFT _ror_r16_cl(UINT16 *p, BYTE cl) | Line 485 I286_SFT _ror_r16_cl(UINT16 *p, BYTE cl) |
| *p = (UINT16)dst; | *p = (UINT16)dst; |
| } | } |
| I286_SFT _rcl_r16_cl(UINT16 *p, BYTE cl) { | I286_SFT _rcl_r16_cl(UINT16 *p, REG8 cl) { |
| UINT32 src; | UINT32 src; |
| UINT32 dst; | UINT32 dst; |
| Line 497 I286_SFT _rcl_r16_cl(UINT16 *p, BYTE cl) | Line 495 I286_SFT _rcl_r16_cl(UINT16 *p, BYTE cl) |
| *p = (UINT16)dst; | *p = (UINT16)dst; |
| } | } |
| I286_SFT _rcr_r16_cl(UINT16 *p, BYTE cl) { | I286_SFT _rcr_r16_cl(UINT16 *p, REG8 cl) { |
| UINT32 src; | UINT32 src; |
| UINT32 dst; | UINT32 dst; |
| Line 507 I286_SFT _rcr_r16_cl(UINT16 *p, BYTE cl) | Line 505 I286_SFT _rcr_r16_cl(UINT16 *p, BYTE cl) |
| *p = (UINT16)dst; | *p = (UINT16)dst; |
| } | } |
| I286_SFT _shl_r16_cl(UINT16 *p, BYTE cl) { | I286_SFT _shl_r16_cl(UINT16 *p, REG8 cl) { |
| UINT32 src; | UINT32 src; |
| UINT32 dst; | UINT32 dst; |
| Line 517 I286_SFT _shl_r16_cl(UINT16 *p, BYTE cl) | Line 515 I286_SFT _shl_r16_cl(UINT16 *p, BYTE cl) |
| *p = (UINT16)dst; | *p = (UINT16)dst; |
| } | } |
| I286_SFT _shr_r16_cl(UINT16 *p, BYTE cl) { | I286_SFT _shr_r16_cl(UINT16 *p, REG8 cl) { |
| UINT32 src; | UINT32 src; |
| UINT32 dst; | UINT32 dst; |
| Line 527 I286_SFT _shr_r16_cl(UINT16 *p, BYTE cl) | Line 525 I286_SFT _shr_r16_cl(UINT16 *p, BYTE cl) |
| *p = (UINT16)dst; | *p = (UINT16)dst; |
| } | } |
| I286_SFT _sar_r16_cl(UINT16 *p, BYTE cl) { | I286_SFT _sar_r16_cl(UINT16 *p, REG8 cl) { |
| UINT32 src; | UINT32 src; |
| UINT32 dst; | UINT32 dst; |
| Line 538 I286_SFT _sar_r16_cl(UINT16 *p, BYTE cl) | Line 536 I286_SFT _sar_r16_cl(UINT16 *p, BYTE cl) |
| } | } |
| I286_SFT _rol_e16_cl(UINT32 madr, BYTE cl) { | I286_SFT _rol_e16_cl(UINT32 madr, REG8 cl) { |
| UINT32 src; | UINT32 src; |
| UINT32 dst; | 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, (UINT16)dst); | i286_memorywrite_w(madr, (REG16)dst); |
| } | } |
| I286_SFT _ror_e16_cl(UINT32 madr, BYTE cl) { | I286_SFT _ror_e16_cl(UINT32 madr, REG8 cl) { |
| UINT32 src; | UINT32 src; |
| UINT32 dst; | 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, (UINT16)dst); | i286_memorywrite_w(madr, (REG16)dst); |
| } | } |
| I286_SFT _rcl_e16_cl(UINT32 madr, BYTE cl) { | I286_SFT _rcl_e16_cl(UINT32 madr, REG8 cl) { |
| UINT32 src; | UINT32 src; |
| UINT32 dst; | 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, (UINT16)dst); | i286_memorywrite_w(madr, (REG16)dst); |
| } | } |
| I286_SFT _rcr_e16_cl(UINT32 madr, BYTE cl) { | I286_SFT _rcr_e16_cl(UINT32 madr, REG8 cl) { |
| UINT32 src; | UINT32 src; |
| UINT32 dst; | 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, (UINT16)dst); | i286_memorywrite_w(madr, (REG16)dst); |
| } | } |
| I286_SFT _shl_e16_cl(UINT32 madr, BYTE cl) { | I286_SFT _shl_e16_cl(UINT32 madr, REG8 cl) { |
| UINT32 src; | UINT32 src; |
| UINT32 dst; | 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, (UINT16)dst); | i286_memorywrite_w(madr, (REG16)dst); |
| } | } |
| I286_SFT _shr_e16_cl(UINT32 madr, BYTE cl) { | I286_SFT _shr_e16_cl(UINT32 madr, REG8 cl) { |
| UINT32 src; | UINT32 src; |
| UINT32 dst; | 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, (UINT16)dst); | i286_memorywrite_w(madr, (REG16)dst); |
| } | } |
| I286_SFT _sar_e16_cl(UINT32 madr, BYTE cl) { | I286_SFT _sar_e16_cl(UINT32 madr, REG8 cl) { |
| UINT32 src; | UINT32 src; |
| UINT32 dst; | 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, (UINT16)dst); | i286_memorywrite_w(madr, (REG16)dst); |
| } | } |