mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 969336 - ARM simulator: don't flush icache when icache checking is disabled. r=dougc
This commit is contained in:
parent
5440916c46
commit
1a3d4ee313
@ -991,6 +991,8 @@ AllOnOnePage(uintptr_t start, int size)
|
|||||||
static CachePage *
|
static CachePage *
|
||||||
GetCachePage(SimulatorRuntime::ICacheMap &i_cache, void *page)
|
GetCachePage(SimulatorRuntime::ICacheMap &i_cache, void *page)
|
||||||
{
|
{
|
||||||
|
MOZ_ASSERT(Simulator::ICacheCheckingEnabled);
|
||||||
|
|
||||||
SimulatorRuntime::ICacheMap::AddPtr p = i_cache.lookupForAdd(page);
|
SimulatorRuntime::ICacheMap::AddPtr p = i_cache.lookupForAdd(page);
|
||||||
if (p)
|
if (p)
|
||||||
return p->value();
|
return p->value();
|
||||||
@ -1085,6 +1087,8 @@ Simulator::setLastDebuggerInput(char *input)
|
|||||||
void
|
void
|
||||||
Simulator::FlushICache(void *start_addr, size_t size)
|
Simulator::FlushICache(void *start_addr, size_t size)
|
||||||
{
|
{
|
||||||
|
if (!Simulator::ICacheCheckingEnabled)
|
||||||
|
return;
|
||||||
SimulatorRuntime *srt = Simulator::Current()->srt_;
|
SimulatorRuntime *srt = Simulator::Current()->srt_;
|
||||||
AutoLockSimulatorRuntime alsr(srt);
|
AutoLockSimulatorRuntime alsr(srt);
|
||||||
js::jit::FlushICache(srt->icache(), start_addr, size);
|
js::jit::FlushICache(srt->icache(), start_addr, size);
|
||||||
@ -1173,7 +1177,8 @@ class Redirection
|
|||||||
Simulator *sim = Simulator::Current();
|
Simulator *sim = Simulator::Current();
|
||||||
SimulatorRuntime *srt = sim->srt_;
|
SimulatorRuntime *srt = sim->srt_;
|
||||||
next_ = srt->redirection();
|
next_ = srt->redirection();
|
||||||
FlushICache(srt->icache(), addressOfSwiInstruction(), SimInstruction::kInstrSize);
|
if (Simulator::ICacheCheckingEnabled)
|
||||||
|
FlushICache(srt->icache(), addressOfSwiInstruction(), SimInstruction::kInstrSize);
|
||||||
srt->setRedirection(this);
|
srt->setRedirection(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user