[Webkit-unassigned] [Bug 24986] ARM JIT port

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Wed Jul 1 02:14:20 PDT 2009


https://bugs.webkit.org/show_bug.cgi?id=24986





------- Comment #61 from zherczeg at inf.u-szeged.hu  2009-07-01 02:14 PDT -------
We were wondering about renaming PLATFORM_ARM_ARCH(7) to PLATFORM(THUMB2) -
similar to PLATFORM(X86) and PLATFORM(X86_64). It would clarify things when the
generic ARM will be landed, because others might not know the difference
between the two imlementation. We can send a simple patch for you if you like
this idea.

Our next step is property caching. Because of the constant pool we had issues
with fixed instruction offsets. Since the pool can be flushed after any
instruction, the instruction offsets are not known in advance. We had
implemented a check before, which flush the constant pool if the pool might
break a tightly coupled instruction sequence. Only the length of the sequence
and the number of constans are required for this check. However, this check is
an extra line in the source code and not looks portable at all. To make it
portable, we decided to use an enum and an inline function in JIT.h.

enum {
  getByIdFastCase,
  getByIdSlowCase,
  ...
} InstructionSequenceTypes;

inline JIT::ensureSpaceFor(InstructionSequenceTypes type)
{
#if PLATFORM(ARM)
    switch (type) {
    case getByIdFastCase: m_assembler.ensureSpace(48 /* Length */, 4/*
NumberOfConstants */);
    ...
    }
#else
    UNUSED_PARAM(type);
#endif
}

We can put ensureSpaceFor(getByIdFastCase) calls into the compiler.


-- 
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.



More information about the webkit-unassigned mailing list