Commit 658138bcbcde308472bc6980957b6b9dbd9348f3
1 parent
1190935d
flush insn support
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@743 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
3 changed files
with
13 additions
and
1 deletions
target-sparc/exec.h
| @@ -13,4 +13,5 @@ register uint32_t T2 asm(AREG3); | @@ -13,4 +13,5 @@ register uint32_t T2 asm(AREG3); | ||
| 13 | void cpu_lock(void); | 13 | void cpu_lock(void); |
| 14 | void cpu_unlock(void); | 14 | void cpu_unlock(void); |
| 15 | void cpu_loop_exit(void); | 15 | void cpu_loop_exit(void); |
| 16 | +void helper_flush(target_ulong addr); | ||
| 16 | #endif | 17 | #endif |
target-sparc/op.c
target-sparc/translate.c
| @@ -650,7 +650,8 @@ static void disas_sparc_insn(DisasContext * dc) | @@ -650,7 +650,8 @@ static void disas_sparc_insn(DisasContext * dc) | ||
| 650 | } | 650 | } |
| 651 | goto jmp_insn; | 651 | goto jmp_insn; |
| 652 | case 0x3b: /* flush */ | 652 | case 0x3b: /* flush */ |
| 653 | - /* nothing to do */ | 653 | + gen_op_add_T1_T0(); |
| 654 | + gen_op_flush_T0(); | ||
| 654 | break; | 655 | break; |
| 655 | case 0x3c: /* save */ | 656 | case 0x3c: /* save */ |
| 656 | save_state(dc); | 657 | save_state(dc); |
| @@ -878,3 +879,9 @@ target_ulong cpu_get_phys_page_debug(CPUState *env, target_ulong addr) | @@ -878,3 +879,9 @@ target_ulong cpu_get_phys_page_debug(CPUState *env, target_ulong addr) | ||
| 878 | { | 879 | { |
| 879 | return addr; | 880 | return addr; |
| 880 | } | 881 | } |
| 882 | + | ||
| 883 | +void helper_flush(target_ulong addr) | ||
| 884 | +{ | ||
| 885 | + addr &= ~7; | ||
| 886 | + tb_invalidate_page_range(addr, addr + 8); | ||
| 887 | +} |