提交 5b8105fa 编写于 作者: J j_mayer

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
上级 73560bc8
...@@ -414,7 +414,7 @@ static always_inline void glue(stfs, MEMSUFFIX) (target_ulong EA, double d) ...@@ -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) ...@@ -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) ...@@ -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) ...@@ -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); ...@@ -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) ...@@ -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);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册