|
|
| version 1.4, 2003/11/29 00:36:00 | version 1.7, 2003/12/12 01:04:40 |
|---|---|
| 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" |
| Line 24 I286_8X _add_r8_i(BYTE *p) { | Line 23 I286_8X _add_r8_i(BYTE *p) { |
| I286_8X _or_r8_i(BYTE *p) { | I286_8X _or_r8_i(BYTE *p) { |
| UINT src; | UINT src; |
| UINT dst; | |
| GET_PCBYTE(src) | GET_PCBYTE(src) |
| ORBYTE((*p), src); | dst = *p; |
| ORBYTE(dst, src); | |
| *p = (BYTE)dst; | |
| } | } |
| I286_8X _adc_r8_i(BYTE *p) { | I286_8X _adc_r8_i(BYTE *p) { |
| Line 56 I286_8X _sbb_r8_i(BYTE *p) { | Line 58 I286_8X _sbb_r8_i(BYTE *p) { |
| I286_8X _and_r8_i(BYTE *p) { | I286_8X _and_r8_i(BYTE *p) { |
| UINT src; | UINT src; |
| UINT dst; | |
| GET_PCBYTE(src) | GET_PCBYTE(src) |
| ANDBYTE((*p), src); | dst = *p; |
| ANDBYTE(dst, src); | |
| *p = (BYTE)dst; | |
| } | } |
| I286_8X _sub_r8_i(BYTE *p) { | I286_8X _sub_r8_i(BYTE *p) { |
| Line 69 I286_8X _sub_r8_i(BYTE *p) { | Line 74 I286_8X _sub_r8_i(BYTE *p) { |
| GET_PCBYTE(src) | GET_PCBYTE(src) |
| dst = *p; | dst = *p; |
| BYTE_SUB(res, dst, src); | SUBBYTE(res, dst, src); |
| *p = (BYTE)res; | *p = (BYTE)res; |
| } | } |
| I286_8X _xor_r8_i(BYTE *p) { | I286_8X _xor_r8_i(BYTE *p) { |
| UINT src; | UINT src; |
| UINT dst; | |
| GET_PCBYTE(src) | GET_PCBYTE(src) |
| BYTE_XOR((*p), src); | dst = *p; |
| XORBYTE(dst, src); | |
| *p = (BYTE)dst; | |
| } | } |
| I286_8X _cmp_r8_i(BYTE *p) { | I286_8X _cmp_r8_i(BYTE *p) { |
| Line 89 I286_8X _cmp_r8_i(BYTE *p) { | Line 97 I286_8X _cmp_r8_i(BYTE *p) { |
| GET_PCBYTE(src) | GET_PCBYTE(src) |
| dst = *p; | dst = *p; |
| BYTE_SUB(res, dst, src); | SUBBYTE(res, dst, src); |
| } | } |
| Line 161 I286_8X _sub_ext8_i(UINT32 madr) { | Line 169 I286_8X _sub_ext8_i(UINT32 madr) { |
| GET_PCBYTE(src) | GET_PCBYTE(src) |
| dst = i286_memoryread(madr); | dst = i286_memoryread(madr); |
| BYTE_SUB(res, dst, src); | SUBBYTE(res, dst, src); |
| i286_memorywrite(madr, (REG8)res); | i286_memorywrite(madr, (REG8)res); |
| } | } |
| Line 172 I286_8X _xor_ext8_i(UINT32 madr) { | Line 180 I286_8X _xor_ext8_i(UINT32 madr) { |
| GET_PCBYTE(src) | GET_PCBYTE(src) |
| dst = i286_memoryread(madr); | dst = i286_memoryread(madr); |
| BYTE_XOR(dst, src); | XORBYTE(dst, src); |
| i286_memorywrite(madr, (REG8)dst); | i286_memorywrite(madr, (REG8)dst); |
| } | } |
| Line 184 I286_8X _cmp_ext8_i(UINT32 madr) { | Line 192 I286_8X _cmp_ext8_i(UINT32 madr) { |
| GET_PCBYTE(src) | GET_PCBYTE(src) |
| dst = i286_memoryread(madr); | dst = i286_memoryread(madr); |
| BYTE_SUB(res, dst, src); | SUBBYTE(res, dst, src); |
| } | } |
| Line 212 I286_8X _add_r16_i(UINT16 *p, UINT32 src | Line 220 I286_8X _add_r16_i(UINT16 *p, UINT32 src |
| I286_8X _or_r16_i(UINT16 *p, UINT32 src) { | I286_8X _or_r16_i(UINT16 *p, UINT32 src) { |
| ORWORD((*p), src); | UINT32 dst; |
| dst = *p; | |
| ORWORD(dst, src); | |
| *p = (UINT16)dst; | |
| } | } |
| I286_8X _adc_r16_i(UINT16 *p, UINT32 src) { | I286_8X _adc_r16_i(UINT16 *p, UINT32 src) { |
| Line 237 I286_8X _sbb_r16_i(UINT16 *p, UINT32 src | Line 249 I286_8X _sbb_r16_i(UINT16 *p, UINT32 src |
| I286_8X _and_r16_i(UINT16 *p, UINT32 src) { | I286_8X _and_r16_i(UINT16 *p, UINT32 src) { |
| ANDWORD((*p), src); | UINT32 dst; |
| dst = *p; | |
| ANDWORD(dst, src); | |
| *p = (UINT16)dst; | |
| } | } |
| I286_8X _sub_r16_i(UINT16 *p, UINT32 src) { | I286_8X _sub_r16_i(UINT16 *p, UINT32 src) { |
| Line 246 I286_8X _sub_r16_i(UINT16 *p, UINT32 src | Line 262 I286_8X _sub_r16_i(UINT16 *p, UINT32 src |
| UINT32 res; | UINT32 res; |
| dst = *p; | dst = *p; |
| WORD_SUB(res, dst, src); | SUBWORD(res, dst, src); |
| *p = (UINT16)res; | *p = (UINT16)res; |
| } | } |
| I286_8X _xor_r16_i(UINT16 *p, UINT32 src) { | I286_8X _xor_r16_i(UINT16 *p, UINT32 src) { |
| WORD_XOR((*p), src); | UINT32 dst; |
| dst = *p; | |
| XORWORD(dst, src); | |
| *p = (UINT16)dst; | |
| } | } |
| I286_8X _cmp_r16_i(UINT16 *p, UINT32 src) { | I286_8X _cmp_r16_i(UINT16 *p, UINT32 src) { |
| Line 261 I286_8X _cmp_r16_i(UINT16 *p, UINT32 src | Line 281 I286_8X _cmp_r16_i(UINT16 *p, UINT32 src |
| UINT32 res; | UINT32 res; |
| dst = *p; | dst = *p; |
| WORD_SUB(res, dst, src); | SUBWORD(res, dst, src); |
| } | } |
| Line 321 I286_8X _sub_ext16_i(UINT32 madr, UINT32 | Line 341 I286_8X _sub_ext16_i(UINT32 madr, UINT32 |
| UINT32 res; | UINT32 res; |
| dst = i286_memoryread_w(madr); | dst = i286_memoryread_w(madr); |
| WORD_SUB(res, dst, src); | SUBWORD(res, dst, src); |
| i286_memorywrite_w(madr, (REG16)res); | i286_memorywrite_w(madr, (REG16)res); |
| } | } |
| Line 330 I286_8X _xor_ext16_i(UINT32 madr, UINT32 | Line 350 I286_8X _xor_ext16_i(UINT32 madr, UINT32 |
| UINT32 dst; | UINT32 dst; |
| dst = i286_memoryread_w(madr); | dst = i286_memoryread_w(madr); |
| WORD_XOR(dst, src); | XORWORD(dst, src); |
| i286_memorywrite_w(madr, (REG16)dst); | i286_memorywrite_w(madr, (REG16)dst); |
| } | } |
| Line 340 I286_8X _cmp_ext16_i(UINT32 madr, UINT32 | Line 360 I286_8X _cmp_ext16_i(UINT32 madr, UINT32 |
| UINT32 res; | UINT32 res; |
| dst = i286_memoryread_w(madr); | dst = i286_memoryread_w(madr); |
| WORD_SUB(res, dst, src); | SUBWORD(res, dst, src); |
| } | } |