[Webkit-unassigned] [Bug 30144] MIPS JIT Supports
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Wed Feb 24 17:50:40 PST 2010
https://bugs.webkit.org/show_bug.cgi?id=30144
--- Comment #43 from Chao-ying Fu <fu at mips.com> 2010-02-24 17:50:38 PST ---
(In reply to comment #42)
> 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!
Yes. I will fix all style issues that come from my code.
>
> 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.
Yes. I will use WTF_* for all tests. For _ABIO32, I will use it only in
Platform.h and not in other .cpp/.h files, since I can only support O32 now.
In the future, if n32/o64 systems are added, we will define a new WTF_* for ABI
selections.
>
> >+ __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)
I will change __clear_cache to __builtin____clear_cache that is a GCC builtin
function from GCC manual. Is it ok?
>
>
> >+#if defined(__MIPSEB__)
> Use CPU(BIG_ENDIAN)!
Yes.
>
> Anyway, this patch looks good to me as well ;)
Thanks a lot! I am testing my new patch and will post soon.
>
> BTW, do you have some comparison data about how the JIT performs on MIPS?
From my last December results, the non-jit SunSpider is 18774.6ms and the jit
SunSpider is 10748.6ms on a MIPS 74kf 660Mhz sigma board. The total time
reduction is about 42%. Thanks!
--
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