|
|
| version 1.5, 2003/12/08 00:55:31 | version 1.8, 2005/02/07 14:46:11 |
|---|---|
| Line 1 | Line 1 |
| #include "compiler.h" | #include "compiler.h" |
| #include "cpucore.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" |
| // ------------------------------------------------------------------------ | // ------------------------------------------------------------------------ |
| 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 313 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; |
| Line 394 I286_SFT _rol_e8_cl(UINT32 madr, BYTE cl | Line 393 I286_SFT _rol_e8_cl(UINT32 madr, BYTE cl |
| i286_memorywrite(madr, (REG8)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; |
| Line 404 I286_SFT _ror_e8_cl(UINT32 madr, BYTE cl | Line 403 I286_SFT _ror_e8_cl(UINT32 madr, BYTE cl |
| i286_memorywrite(madr, (REG8)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; |
| Line 414 I286_SFT _rcl_e8_cl(UINT32 madr, BYTE cl | Line 413 I286_SFT _rcl_e8_cl(UINT32 madr, BYTE cl |
| i286_memorywrite(madr, (REG8)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; |
| Line 424 I286_SFT _rcr_e8_cl(UINT32 madr, BYTE cl | Line 423 I286_SFT _rcr_e8_cl(UINT32 madr, BYTE cl |
| i286_memorywrite(madr, (REG8)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; |
| Line 434 I286_SFT _shl_e8_cl(UINT32 madr, BYTE cl | Line 433 I286_SFT _shl_e8_cl(UINT32 madr, BYTE cl |
| i286_memorywrite(madr, (REG8)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; |
| Line 444 I286_SFT _shr_e8_cl(UINT32 madr, BYTE cl | Line 443 I286_SFT _shr_e8_cl(UINT32 madr, BYTE cl |
| i286_memorywrite(madr, (REG8)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; |
| Line 466 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 476 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 486 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 496 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 506 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 516 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 526 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 537 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; |
| Line 547 I286_SFT _rol_e16_cl(UINT32 madr, BYTE c | Line 546 I286_SFT _rol_e16_cl(UINT32 madr, BYTE c |
| i286_memorywrite_w(madr, (REG16)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; |
| Line 557 I286_SFT _ror_e16_cl(UINT32 madr, BYTE c | Line 556 I286_SFT _ror_e16_cl(UINT32 madr, BYTE c |
| i286_memorywrite_w(madr, (REG16)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; |
| Line 567 I286_SFT _rcl_e16_cl(UINT32 madr, BYTE c | Line 566 I286_SFT _rcl_e16_cl(UINT32 madr, BYTE c |
| i286_memorywrite_w(madr, (REG16)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; |
| Line 577 I286_SFT _rcr_e16_cl(UINT32 madr, BYTE c | Line 576 I286_SFT _rcr_e16_cl(UINT32 madr, BYTE c |
| i286_memorywrite_w(madr, (REG16)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; |
| Line 587 I286_SFT _shl_e16_cl(UINT32 madr, BYTE c | Line 586 I286_SFT _shl_e16_cl(UINT32 madr, BYTE c |
| i286_memorywrite_w(madr, (REG16)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; |
| Line 597 I286_SFT _shr_e16_cl(UINT32 madr, BYTE c | Line 596 I286_SFT _shr_e16_cl(UINT32 madr, BYTE c |
| i286_memorywrite_w(madr, (REG16)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; |