Bug 101365 - Should ARMv7Assembler::replaceWithJump cache-flush the nop on page boundary
Summary: Should ARMv7Assembler::replaceWithJump cache-flush the nop on page boundary
Status: RESOLVED DUPLICATE of bug 102759
Alias: None
Product: WebKit
Classification: Unclassified
Component: JavaScriptCore (show other bugs)
Version: 528+ (Nightly build)
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Nobody
URL:
Keywords:
Depends on:
Blocks: 108645
  Show dependency treegraph
 
Reported: 2012-11-06 09:58 PST by Yong Li
Modified: 2013-03-01 08:36 PST (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Yong Li 2012-11-06 09:58:53 PST
ARMv7Assembler::replaceWithJump() contains following code:

if (spansTwo4K) {
   ptr[-2] = OP_NOP_T1;
   ptr++;
}

After that, it calls linkJumpT4(ptr, to) and then cacheFlush(ptr - 2,
sizeof(uint16_t) * 2), so it doesn't cache-flush this instruction.

According to the comments, this seems a work around of a Cortex-A8 bug. 

I'm not sure if we should make sure the nop instruction should also be
cache-flushed, because the instruction was probably nop anyway.

Also, these spansTwo4K are said to workaround a Cortex-A8 issue. Does this also give perf penalty to other cores?
Comment 1 Yong Li 2013-03-01 08:36:41 PST

*** This bug has been marked as a duplicate of bug 102759 ***