Commit 931ff2725866606d0c695576a9ec3b7808d82b24
1 parent
cf02a65c
target-ppc: convert wait instruction to TCG
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net> git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5824 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
3 changed files
with
3 additions
and
12 deletions
target-ppc/op.c
| ... | ... | @@ -290,12 +290,6 @@ void OPPROTO op_check_reservation_64 (void) |
| 290 | 290 | } |
| 291 | 291 | #endif |
| 292 | 292 | |
| 293 | -void OPPROTO op_wait (void) | |
| 294 | -{ | |
| 295 | - env->halted = 1; | |
| 296 | - RETURN(); | |
| 297 | -} | |
| 298 | - | |
| 299 | 293 | /* Return from interrupt */ |
| 300 | 294 | #if !defined(CONFIG_USER_ONLY) |
| 301 | 295 | void OPPROTO op_rfi (void) | ... | ... |
target-ppc/op_helper.h
| ... | ... | @@ -85,11 +85,6 @@ void do_POWER_rfsvc (void); |
| 85 | 85 | void do_store_hid0_601 (void); |
| 86 | 86 | #endif |
| 87 | 87 | |
| 88 | -/* PowerPC 602 specific helper */ | |
| 89 | -#if !defined(CONFIG_USER_ONLY) | |
| 90 | -void do_op_602_mfrom (void); | |
| 91 | -#endif | |
| 92 | - | |
| 93 | 88 | /* PowerPC 440 specific helpers */ |
| 94 | 89 | #if !defined(CONFIG_USER_ONLY) |
| 95 | 90 | void do_440_tlbre (int word); | ... | ... |
target-ppc/translate.c
| ... | ... | @@ -3310,8 +3310,10 @@ GEN_HANDLER(sync, 0x1F, 0x16, 0x12, 0x039FF801, PPC_MEM_SYNC) |
| 3310 | 3310 | /* wait */ |
| 3311 | 3311 | GEN_HANDLER(wait, 0x1F, 0x1E, 0x01, 0x03FFF801, PPC_WAIT) |
| 3312 | 3312 | { |
| 3313 | + TCGv_i32 t0 = tcg_temp_new_i32(); | |
| 3314 | + tcg_gen_st_i32(t0, cpu_env, offsetof(CPUState, halted)); | |
| 3315 | + tcg_temp_free_i32(t0); | |
| 3313 | 3316 | /* Stop translation, as the CPU is supposed to sleep from now */ |
| 3314 | - gen_op_wait(); | |
| 3315 | 3317 | GEN_EXCP(ctx, EXCP_HLT, 1); |
| 3316 | 3318 | } |
| 3317 | 3319 | ... | ... |