mirror of https://gitee.com/openkylin/qemu.git
infer access type
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@530 c046a42c-6fe2-441c-8c8c-71466251a162
This commit is contained in:
parent
ac9eb0731a
commit
af5ad10728
|
@ -25,7 +25,7 @@
|
|||
|
||||
#include "config.h"
|
||||
|
||||
#define IN_OP_I386
|
||||
#define NO_CPU_IO_DEFS
|
||||
#include "cpu.h"
|
||||
#include "exec-all.h"
|
||||
#include "disas.h"
|
||||
|
@ -192,7 +192,41 @@ int cpu_restore_state(TranslationBlock *tb,
|
|||
#elif defined(TARGET_SPARC)
|
||||
env->pc = gen_opc_pc[j];
|
||||
#elif defined(TARGET_PPC)
|
||||
env->nip = gen_opc_pc[j];
|
||||
{
|
||||
int type;
|
||||
/* for PPC, we need to look at the micro operation to get the
|
||||
access type */
|
||||
env->nip = gen_opc_pc[j];
|
||||
switch(c) {
|
||||
#if defined(CONFIG_USER_ONLY)
|
||||
#define CASE3(op)\
|
||||
case INDEX_op_ ## op ## _raw
|
||||
#else
|
||||
#define CASE3(op)\
|
||||
case INDEX_op_ ## op ## _raw:\
|
||||
case INDEX_op_ ## op ## _user:\
|
||||
case INDEX_op_ ## op ## _kernel
|
||||
#endif
|
||||
|
||||
CASE3(stfd):
|
||||
CASE3(stfs):
|
||||
CASE3(lfd):
|
||||
CASE3(lfs):
|
||||
type = ACCESS_FLOAT;
|
||||
break;
|
||||
CASE3(stwcx):
|
||||
type = ACCESS_RES;
|
||||
break;
|
||||
CASE3(eciwx):
|
||||
CASE3(ecowx):
|
||||
type = ACCESS_EXT;
|
||||
break;
|
||||
default:
|
||||
type = ACCESS_INT;
|
||||
break;
|
||||
}
|
||||
env->access_type = type;
|
||||
}
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue