mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-04 16:23:55 -06:00
target-alpha: Rationalize internal processor registers.
Delete all the code that tried to emulate the real IPRs of some unnamed CPU. Replace those with just 3 slots that we can use to communicate trap information between the helper functions that signal exceptions and the OS trap handler. Signed-off-by: Richard Henderson <rth@twiddle.net>
This commit is contained in:
parent
508b43eaf3
commit
129d8aa575
6 changed files with 23 additions and 562 deletions
|
@ -373,7 +373,7 @@ void helper_fp_exc_raise(uint32_t exc, uint32_t regno)
|
|||
if (exc) {
|
||||
uint32_t hw_exc = 0;
|
||||
|
||||
env->ipr[IPR_EXC_MASK] |= 1ull << regno;
|
||||
env->trap_arg1 = 1ull << regno;
|
||||
|
||||
if (exc & float_flag_invalid) {
|
||||
hw_exc |= EXC_M_INV;
|
||||
|
@ -1159,25 +1159,10 @@ uint64_t helper_cvtqg (uint64_t a)
|
|||
void helper_hw_ret (uint64_t a)
|
||||
{
|
||||
env->pc = a & ~3;
|
||||
env->ipr[IPR_EXC_ADDR] = a & 1;
|
||||
env->pal_mode = a & 1;
|
||||
env->intr_flag = 0;
|
||||
env->lock_addr = -1;
|
||||
}
|
||||
|
||||
uint64_t helper_mfpr (int iprn, uint64_t val)
|
||||
{
|
||||
uint64_t tmp;
|
||||
|
||||
if (cpu_alpha_mfpr(env, iprn, &tmp) == 0)
|
||||
val = tmp;
|
||||
|
||||
return val;
|
||||
}
|
||||
|
||||
void helper_mtpr (int iprn, uint64_t val)
|
||||
{
|
||||
cpu_alpha_mtpr(env, iprn, val, NULL);
|
||||
}
|
||||
#endif
|
||||
|
||||
/*****************************************************************************/
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue