Commit 5b8105fa50b0dfde4ac49d7b1dd8044fb82caec6

Authored by j_mayer
1 parent 73560bc8

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
target-ppc/op_mem.h
@@ -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)
414 #define WORD0 1 414 #define WORD0 1
415 #define WORD1 0 415 #define WORD1 0
416 #endif 416 #endif
417 -static always_inline void glue(stfiwx, MEMSUFFIX) (target_ulong EA, double d) 417 +static always_inline void glue(stfiw, MEMSUFFIX) (target_ulong EA, double d)
418 { 418 {
419 union { 419 union {
420 double d; 420 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)
430 430
431 PPC_STF_OP(fd, stfq); 431 PPC_STF_OP(fd, stfq);
432 PPC_STF_OP(fs, stfs); 432 PPC_STF_OP(fs, stfs);
433 -PPC_STF_OP(fiwx, stfiwx); 433 +PPC_STF_OP(fiw, stfiw);
434 #if defined(TARGET_PPC64) 434 #if defined(TARGET_PPC64)
435 PPC_STF_OP_64(fd, stfq); 435 PPC_STF_OP_64(fd, stfq);
436 PPC_STF_OP_64(fs, stfs); 436 PPC_STF_OP_64(fs, stfs);
437 -PPC_STF_OP_64(fiwx, stfiwx); 437 +PPC_STF_OP_64(fiw, stfiw);
438 #endif 438 #endif
439 439
440 static always_inline void glue(stfqr, MEMSUFFIX) (target_ulong EA, double d) 440 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)
471 glue(stfl, MEMSUFFIX)(EA, u.f); 471 glue(stfl, MEMSUFFIX)(EA, u.f);
472 } 472 }
473 473
474 -static always_inline void glue(stfiwxr, MEMSUFFIX) (target_ulong EA, double d) 474 +static always_inline void glue(stfiwr, MEMSUFFIX) (target_ulong EA, double d)
475 { 475 {
476 union { 476 union {
477 double d; 477 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)
489 489
490 PPC_STF_OP(fd_le, stfqr); 490 PPC_STF_OP(fd_le, stfqr);
491 PPC_STF_OP(fs_le, stfsr); 491 PPC_STF_OP(fs_le, stfsr);
492 -PPC_STF_OP(fiwx_le, stfiwxr); 492 +PPC_STF_OP(fiw_le, stfiwr);
493 #if defined(TARGET_PPC64) 493 #if defined(TARGET_PPC64)
494 PPC_STF_OP_64(fd_le, stfqr); 494 PPC_STF_OP_64(fd_le, stfqr);
495 PPC_STF_OP_64(fs_le, stfsr); 495 PPC_STF_OP_64(fs_le, stfsr);
496 -PPC_STF_OP_64(fiwx_le, stfiwxr); 496 +PPC_STF_OP_64(fiw_le, stfiwr);
497 #endif 497 #endif
498 498
499 /*** Floating-point load ***/ 499 /*** Floating-point load ***/
target-ppc/translate.c
@@ -2764,8 +2764,8 @@ GEN_STFS(fs, 0x14, PPC_FLOAT); @@ -2764,8 +2764,8 @@ GEN_STFS(fs, 0x14, PPC_FLOAT);
2764 2764
2765 /* Optional: */ 2765 /* Optional: */
2766 /* stfiwx */ 2766 /* stfiwx */
2767 -OP_ST_TABLE(fiwx);  
2768 -GEN_STXF(fiwx, 0x17, 0x1E, PPC_FLOAT_STFIWX); 2767 +OP_ST_TABLE(fiw);
  2768 +GEN_STXF(fiw, 0x17, 0x1E, PPC_FLOAT_STFIWX);
2769 2769
2770 /*** Branch ***/ 2770 /*** Branch ***/
2771 static always_inline void gen_goto_tb (DisasContext *ctx, int n, 2771 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)
3088 #endif 3088 #endif
3089 } 3089 }
3090 3090
3091 -GEN_HANDLER(hrfid, 0x13, 0x12, 0x08, 0x03FF8001, PPC_64B) 3091 +GEN_HANDLER(hrfid, 0x13, 0x12, 0x08, 0x03FF8001, PPC_64H)
3092 { 3092 {
3093 #if defined(CONFIG_USER_ONLY) 3093 #if defined(CONFIG_USER_ONLY)
3094 GEN_EXCP_PRIVOPC(ctx); 3094 GEN_EXCP_PRIVOPC(ctx);