| 1471 |
env->fptags[new_fpstt] = 0; /* validate stack entry */ |
env->fptags[new_fpstt] = 0; /* validate stack entry */ |
| 1472 |
} |
} |
| 1473 |
|
|
|
#ifdef USE_X86LDOUBLE |
|
|
void OPPROTO op_fldt_ST0_A0(void) |
|
|
{ |
|
|
int new_fpstt; |
|
|
new_fpstt = (env->fpstt - 1) & 7; |
|
|
env->fpregs[new_fpstt] = *(long double *)A0; |
|
|
env->fpstt = new_fpstt; |
|
|
env->fptags[new_fpstt] = 0; /* validate stack entry */ |
|
|
} |
|
|
#else |
|
| 1474 |
void OPPROTO op_fldt_ST0_A0(void) |
void OPPROTO op_fldt_ST0_A0(void) |
| 1475 |
{ |
{ |
| 1476 |
helper_fldt_ST0_A0(); |
helper_fldt_ST0_A0(); |
| 1477 |
} |
} |
|
#endif |
|
| 1478 |
|
|
| 1479 |
/* helpers are needed to avoid static constant reference. XXX: find a better way */ |
/* helpers are needed to avoid static constant reference. XXX: find a better way */ |
| 1480 |
#ifdef USE_INT_TO_FLOAT_HELPERS |
#ifdef USE_INT_TO_FLOAT_HELPERS |
| 1584 |
stfq((void *)A0, (double)ST0); |
stfq((void *)A0, (double)ST0); |
| 1585 |
} |
} |
| 1586 |
|
|
|
#ifdef USE_X86LDOUBLE |
|
|
void OPPROTO op_fstt_ST0_A0(void) |
|
|
{ |
|
|
*(long double *)A0 = ST0; |
|
|
} |
|
|
#else |
|
| 1587 |
void OPPROTO op_fstt_ST0_A0(void) |
void OPPROTO op_fstt_ST0_A0(void) |
| 1588 |
{ |
{ |
| 1589 |
helper_fstt_ST0_A0(); |
helper_fstt_ST0_A0(); |
| 1590 |
} |
} |
|
#endif |
|
| 1591 |
|
|
| 1592 |
void OPPROTO op_fist_ST0_A0(void) |
void OPPROTO op_fist_ST0_A0(void) |
| 1593 |
{ |
{ |