| 376 |
|
|
| 377 |
/* memory access */ |
/* memory access */ |
| 378 |
|
|
| 379 |
void OPPROTO op_ldub_T0_A0(void) |
#define MEMSUFFIX |
| 380 |
{ |
#include "ops_mem.h" |
|
T0 = ldub((uint8_t *)A0); |
|
|
} |
|
|
|
|
|
void OPPROTO op_ldsb_T0_A0(void) |
|
|
{ |
|
|
T0 = ldsb((int8_t *)A0); |
|
|
} |
|
|
|
|
|
void OPPROTO op_lduw_T0_A0(void) |
|
|
{ |
|
|
T0 = lduw((uint8_t *)A0); |
|
|
} |
|
|
|
|
|
void OPPROTO op_ldsw_T0_A0(void) |
|
|
{ |
|
|
T0 = ldsw((int8_t *)A0); |
|
|
} |
|
|
|
|
|
void OPPROTO op_ldl_T0_A0(void) |
|
|
{ |
|
|
T0 = ldl((uint8_t *)A0); |
|
|
} |
|
| 381 |
|
|
| 382 |
void OPPROTO op_ldub_T1_A0(void) |
#define MEMSUFFIX _user |
| 383 |
{ |
#include "ops_mem.h" |
|
T1 = ldub((uint8_t *)A0); |
|
|
} |
|
|
|
|
|
void OPPROTO op_ldsb_T1_A0(void) |
|
|
{ |
|
|
T1 = ldsb((int8_t *)A0); |
|
|
} |
|
|
|
|
|
void OPPROTO op_lduw_T1_A0(void) |
|
|
{ |
|
|
T1 = lduw((uint8_t *)A0); |
|
|
} |
|
| 384 |
|
|
| 385 |
void OPPROTO op_ldsw_T1_A0(void) |
#define MEMSUFFIX _kernel |
| 386 |
{ |
#include "ops_mem.h" |
|
T1 = ldsw((int8_t *)A0); |
|
|
} |
|
|
|
|
|
void OPPROTO op_ldl_T1_A0(void) |
|
|
{ |
|
|
T1 = ldl((uint8_t *)A0); |
|
|
} |
|
|
|
|
|
void OPPROTO op_stb_T0_A0(void) |
|
|
{ |
|
|
stb((uint8_t *)A0, T0); |
|
|
} |
|
|
|
|
|
void OPPROTO op_stw_T0_A0(void) |
|
|
{ |
|
|
stw((uint8_t *)A0, T0); |
|
|
} |
|
|
|
|
|
void OPPROTO op_stl_T0_A0(void) |
|
|
{ |
|
|
stl((uint8_t *)A0, T0); |
|
|
} |
|
| 387 |
|
|
| 388 |
/* used for bit operations */ |
/* used for bit operations */ |
| 389 |
|
|
| 579 |
EDX = (EDX & 0xffff0000) | (((int16_t)EAX >> 15) & 0xffff); |
EDX = (EDX & 0xffff0000) | (((int16_t)EAX >> 15) & 0xffff); |
| 580 |
} |
} |
| 581 |
|
|
| 582 |
|
/* string ops helpers */ |
| 583 |
|
|
| 584 |
|
void OPPROTO op_addl_ESI_T0(void) |
| 585 |
|
{ |
| 586 |
|
ESI += T0; |
| 587 |
|
} |
| 588 |
|
|
| 589 |
|
void OPPROTO op_addw_ESI_T0(void) |
| 590 |
|
{ |
| 591 |
|
ESI = (ESI & ~0xffff) | ((ESI + T0) & 0xffff); |
| 592 |
|
} |
| 593 |
|
|
| 594 |
|
void OPPROTO op_addl_EDI_T0(void) |
| 595 |
|
{ |
| 596 |
|
EDI += T0; |
| 597 |
|
} |
| 598 |
|
|
| 599 |
|
void OPPROTO op_addw_EDI_T0(void) |
| 600 |
|
{ |
| 601 |
|
EDI = (EDI & ~0xffff) | ((EDI + T0) & 0xffff); |
| 602 |
|
} |
| 603 |
|
|
| 604 |
|
void OPPROTO op_decl_ECX(void) |
| 605 |
|
{ |
| 606 |
|
ECX--; |
| 607 |
|
} |
| 608 |
|
|
| 609 |
|
void OPPROTO op_decw_ECX(void) |
| 610 |
|
{ |
| 611 |
|
ECX = (ECX & ~0xffff) | ((ECX - 1) & 0xffff); |
| 612 |
|
} |
| 613 |
|
|
| 614 |
/* push/pop */ |
/* push/pop */ |
| 615 |
|
|
| 616 |
void op_pushl_T0(void) |
void op_pushl_T0(void) |