PowerPC instruction fixes:
- hrfid is part of the hypervisor extension - fix stfiwx naming git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3705 c046a42c-6fe2-441c-8c8c-71466251a162
This commit is contained in:
parent
73560bc8e3
commit
5b8105fa50
|
@ -414,7 +414,7 @@ static always_inline void glue(stfs, MEMSUFFIX) (target_ulong EA, double d)
|
||||||
#define WORD0 1
|
#define WORD0 1
|
||||||
#define WORD1 0
|
#define WORD1 0
|
||||||
#endif
|
#endif
|
||||||
static always_inline void glue(stfiwx, MEMSUFFIX) (target_ulong EA, double d)
|
static always_inline void glue(stfiw, MEMSUFFIX) (target_ulong EA, double d)
|
||||||
{
|
{
|
||||||
union {
|
union {
|
||||||
double d;
|
double d;
|
||||||
|
@ -430,11 +430,11 @@ static always_inline void glue(stfiwx, MEMSUFFIX) (target_ulong EA, double d)
|
||||||
|
|
||||||
PPC_STF_OP(fd, stfq);
|
PPC_STF_OP(fd, stfq);
|
||||||
PPC_STF_OP(fs, stfs);
|
PPC_STF_OP(fs, stfs);
|
||||||
PPC_STF_OP(fiwx, stfiwx);
|
PPC_STF_OP(fiw, stfiw);
|
||||||
#if defined(TARGET_PPC64)
|
#if defined(TARGET_PPC64)
|
||||||
PPC_STF_OP_64(fd, stfq);
|
PPC_STF_OP_64(fd, stfq);
|
||||||
PPC_STF_OP_64(fs, stfs);
|
PPC_STF_OP_64(fs, stfs);
|
||||||
PPC_STF_OP_64(fiwx, stfiwx);
|
PPC_STF_OP_64(fiw, stfiw);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static always_inline void glue(stfqr, MEMSUFFIX) (target_ulong EA, double d)
|
static always_inline void glue(stfqr, MEMSUFFIX) (target_ulong EA, double d)
|
||||||
|
@ -471,7 +471,7 @@ static always_inline void glue(stfsr, MEMSUFFIX) (target_ulong EA, double d)
|
||||||
glue(stfl, MEMSUFFIX)(EA, u.f);
|
glue(stfl, MEMSUFFIX)(EA, u.f);
|
||||||
}
|
}
|
||||||
|
|
||||||
static always_inline void glue(stfiwxr, MEMSUFFIX) (target_ulong EA, double d)
|
static always_inline void glue(stfiwr, MEMSUFFIX) (target_ulong EA, double d)
|
||||||
{
|
{
|
||||||
union {
|
union {
|
||||||
double d;
|
double d;
|
||||||
|
@ -489,11 +489,11 @@ static always_inline void glue(stfiwxr, MEMSUFFIX) (target_ulong EA, double d)
|
||||||
|
|
||||||
PPC_STF_OP(fd_le, stfqr);
|
PPC_STF_OP(fd_le, stfqr);
|
||||||
PPC_STF_OP(fs_le, stfsr);
|
PPC_STF_OP(fs_le, stfsr);
|
||||||
PPC_STF_OP(fiwx_le, stfiwxr);
|
PPC_STF_OP(fiw_le, stfiwr);
|
||||||
#if defined(TARGET_PPC64)
|
#if defined(TARGET_PPC64)
|
||||||
PPC_STF_OP_64(fd_le, stfqr);
|
PPC_STF_OP_64(fd_le, stfqr);
|
||||||
PPC_STF_OP_64(fs_le, stfsr);
|
PPC_STF_OP_64(fs_le, stfsr);
|
||||||
PPC_STF_OP_64(fiwx_le, stfiwxr);
|
PPC_STF_OP_64(fiw_le, stfiwr);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*** Floating-point load ***/
|
/*** Floating-point load ***/
|
||||||
|
|
|
@ -2764,8 +2764,8 @@ GEN_STFS(fs, 0x14, PPC_FLOAT);
|
||||||
|
|
||||||
/* Optional: */
|
/* Optional: */
|
||||||
/* stfiwx */
|
/* stfiwx */
|
||||||
OP_ST_TABLE(fiwx);
|
OP_ST_TABLE(fiw);
|
||||||
GEN_STXF(fiwx, 0x17, 0x1E, PPC_FLOAT_STFIWX);
|
GEN_STXF(fiw, 0x17, 0x1E, PPC_FLOAT_STFIWX);
|
||||||
|
|
||||||
/*** Branch ***/
|
/*** Branch ***/
|
||||||
static always_inline void gen_goto_tb (DisasContext *ctx, int n,
|
static always_inline void gen_goto_tb (DisasContext *ctx, int n,
|
||||||
|
@ -3088,7 +3088,7 @@ GEN_HANDLER(rfid, 0x13, 0x12, 0x00, 0x03FF8001, PPC_64B)
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
GEN_HANDLER(hrfid, 0x13, 0x12, 0x08, 0x03FF8001, PPC_64B)
|
GEN_HANDLER(hrfid, 0x13, 0x12, 0x08, 0x03FF8001, PPC_64H)
|
||||||
{
|
{
|
||||||
#if defined(CONFIG_USER_ONLY)
|
#if defined(CONFIG_USER_ONLY)
|
||||||
GEN_EXCP_PRIVOPC(ctx);
|
GEN_EXCP_PRIVOPC(ctx);
|
||||||
|
|
Loading…
Reference in a new issue