提交 658138bc 编写于 作者: B bellard

flush insn support


git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@743 c046a42c-6fe2-441c-8c8c-71466251a162
上级 1190935d
...@@ -13,4 +13,5 @@ register uint32_t T2 asm(AREG3); ...@@ -13,4 +13,5 @@ register uint32_t T2 asm(AREG3);
void cpu_lock(void); void cpu_lock(void);
void cpu_unlock(void); void cpu_unlock(void);
void cpu_loop_exit(void); void cpu_loop_exit(void);
void helper_flush(target_ulong addr);
#endif #endif
...@@ -683,3 +683,7 @@ void OPPROTO op_generic_branch(void) ...@@ -683,3 +683,7 @@ void OPPROTO op_generic_branch(void)
FORCE_RET(); FORCE_RET();
} }
void OPPROTO op_flush_T0(void)
{
helper_flush(T0);
}
...@@ -650,7 +650,8 @@ static void disas_sparc_insn(DisasContext * dc) ...@@ -650,7 +650,8 @@ static void disas_sparc_insn(DisasContext * dc)
} }
goto jmp_insn; goto jmp_insn;
case 0x3b: /* flush */ case 0x3b: /* flush */
/* nothing to do */ gen_op_add_T1_T0();
gen_op_flush_T0();
break; break;
case 0x3c: /* save */ case 0x3c: /* save */
save_state(dc); 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)
{ {
return addr; return addr;
} }
void helper_flush(target_ulong addr)
{
addr &= ~7;
tb_invalidate_page_range(addr, addr + 8);
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册