[Webkit-unassigned] [Bug 30144] MIPS JIT Supports

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Tue Feb 23 12:55:02 PST 2010


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





--- Comment #42 from Gabor Loki <loki at webkit.org>  2010-02-23 12:55:00 PST ---
Some style issues... (please check the style bot)

Tests for true/false, null/non-null, and zero/non-zero should all be done
without equality comparisons. For example:

>+        ASSERT(*(insn - 1) == 0 && *(insn - 2) == 0 && *(insn - 3) == 0 && *(insn - 5) == 0);

or

>+        if (!imm.m_isPointer && imm.m_value == 0 && !m_fixedWidth)


>+    void lshift32(RegisterID shift_amount, RegisterID dest)
>+    {
>+        m_assembler.sllv(dest, dest, shift_amount);
>+    }

Do not use '_' in your variable names!

Some other issues...

Well, it would be nice if you define a new macro which can hold the instruction
set architecture value and an other one which can test the requested
instruction set. For example.:
#define WTF_MIPS_ARCH __mips
#define WTF_MIPS_ISA(v) (defined WTF_MIPS_ARCH && WTF_MIPS_ARCH == v)
or
#define WTF_MIPS_ISA_AT_LEAST(v) (defined WTF_MIPS_ARCH && WTF_MIPS_ARCH >= v)

Same for _ABIO32, __mips_isa_rev and others.

>+        __clear_cache(reinterpret_cast<char*>(start), reinterpret_cast<char*>(end));
>+#else
>+        intptr_t end = reinterpret_cast<intptr_t>(code) + size;
>+        __clear_cache(reinterpret_cast<char*>(code), reinterpret_cast<char*>(end));
>+#endif

Please read my comment about __clear_cache issue at
https://bugs.webkit.org/show_bug.cgi?id=28886#c35 .
(Try to avoid internal __clear_cache function)


>+#if defined(__MIPSEB__)
Use CPU(BIG_ENDIAN)!

Anyway, this patch looks good to me as well ;)

BTW, do you have some comparison data about how the JIT performs on MIPS?

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



More information about the webkit-unassigned mailing list