Revision 0d1a29f9 target-i386/exec.h
b/target-i386/exec.h | ||
---|---|---|
20 | 20 |
#include "config.h" |
21 | 21 |
#include "dyngen-exec.h" |
22 | 22 |
|
23 |
/* at least 4 register variables are defines */
|
|
23 |
/* at least 4 register variables are defined */
|
|
24 | 24 |
register struct CPUX86State *env asm(AREG0); |
25 | 25 |
register uint32_t T0 asm(AREG1); |
26 | 26 |
register uint32_t T1 asm(AREG2); |
... | ... | |
546 | 546 |
(eflags & update_mask); |
547 | 547 |
} |
548 | 548 |
|
549 |
static inline void env_to_regs(void) |
|
550 |
{ |
|
551 |
#ifdef reg_EAX |
|
552 |
EAX = env->regs[R_EAX]; |
|
553 |
#endif |
|
554 |
#ifdef reg_ECX |
|
555 |
ECX = env->regs[R_ECX]; |
|
556 |
#endif |
|
557 |
#ifdef reg_EDX |
|
558 |
EDX = env->regs[R_EDX]; |
|
559 |
#endif |
|
560 |
#ifdef reg_EBX |
|
561 |
EBX = env->regs[R_EBX]; |
|
562 |
#endif |
|
563 |
#ifdef reg_ESP |
|
564 |
ESP = env->regs[R_ESP]; |
|
565 |
#endif |
|
566 |
#ifdef reg_EBP |
|
567 |
EBP = env->regs[R_EBP]; |
|
568 |
#endif |
|
569 |
#ifdef reg_ESI |
|
570 |
ESI = env->regs[R_ESI]; |
|
571 |
#endif |
|
572 |
#ifdef reg_EDI |
|
573 |
EDI = env->regs[R_EDI]; |
|
574 |
#endif |
|
575 |
} |
|
576 |
|
|
577 |
static inline void regs_to_env(void) |
|
578 |
{ |
|
579 |
#ifdef reg_EAX |
|
580 |
env->regs[R_EAX] = EAX; |
|
581 |
#endif |
|
582 |
#ifdef reg_ECX |
|
583 |
env->regs[R_ECX] = ECX; |
|
584 |
#endif |
|
585 |
#ifdef reg_EDX |
|
586 |
env->regs[R_EDX] = EDX; |
|
587 |
#endif |
|
588 |
#ifdef reg_EBX |
|
589 |
env->regs[R_EBX] = EBX; |
|
590 |
#endif |
|
591 |
#ifdef reg_ESP |
|
592 |
env->regs[R_ESP] = ESP; |
|
593 |
#endif |
|
594 |
#ifdef reg_EBP |
|
595 |
env->regs[R_EBP] = EBP; |
|
596 |
#endif |
|
597 |
#ifdef reg_ESI |
|
598 |
env->regs[R_ESI] = ESI; |
|
599 |
#endif |
|
600 |
#ifdef reg_EDI |
|
601 |
env->regs[R_EDI] = EDI; |
|
602 |
#endif |
|
603 |
} |
Also available in: Unified diff