mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-01 23:03:54 -06:00
target-alpha: Implement RD/WRUNIQUE in the translator
When emulating user-mode only, there's no reason to exit the translation block to effect a call_pal. We can generate a move to/from the unique slot directly. Signed-off-by: Richard Henderson <rth@twiddle.net> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
This commit is contained in:
parent
73651cce62
commit
ab471ade02
2 changed files with 34 additions and 16 deletions
|
@ -1060,7 +1060,6 @@ void call_pal (CPUState *env, int palcode)
|
|||
{
|
||||
target_long ret;
|
||||
|
||||
qemu_log("%s: palcode %02x\n", __func__, palcode);
|
||||
switch (palcode) {
|
||||
case 0x83:
|
||||
/* CALLSYS */
|
||||
|
@ -1078,14 +1077,14 @@ void call_pal (CPUState *env, int palcode)
|
|||
break;
|
||||
case 0x9E:
|
||||
/* RDUNIQUE */
|
||||
env->ir[IR_V0] = env->unique;
|
||||
qemu_log("RDUNIQUE: " TARGET_FMT_lx "\n", env->unique);
|
||||
break;
|
||||
/* Handled in the translator for usermode. */
|
||||
abort();
|
||||
case 0x9F:
|
||||
/* WRUNIQUE */
|
||||
env->unique = env->ir[IR_A0];
|
||||
qemu_log("WRUNIQUE: " TARGET_FMT_lx "\n", env->unique);
|
||||
break;
|
||||
qemu_log("WRUNIQUE: " TARGET_FMT_lx "\n", env->ir[IR_A0]);
|
||||
/* Handled in the translator for usermode. */
|
||||
abort();
|
||||
default:
|
||||
qemu_log("%s: unhandled palcode %02x\n",
|
||||
__func__, palcode);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue