> On Apr 12, 2018, at 5:21 AM, Yusuke SUZUKI <utatane....@gmail.com> wrote:
> Hi, WebKittens, in particular, JSC folks,
> Recently I largely removed duplicate 32bit DFG code by unifying the
> implementation of 32bit and 64bit. Initially, we have separate code for 32bit
> and 64bit. But as our DFG infrastructure grows, we have fancy DFG features
> that enables writing unified implementation for 32bit and 64bit. For example,
> JSValueRegs families offer the way to handle JSValue registers transparently.
> Unifying the code significantly reduces the size of
> DFGSpeculativeJIT32_64.cpp. It reduces maintenance burden. In addition, it
> finds bugs, for example, 32bit code sometimes lacks the changes done in 64bit
> code (e.g. mutatorFence). This unification finds and fixes such a bug.
mutatorFence isn’t needed on 32-bit since it doesn’t have the concurrent GC.
> So I suggest not adding code to DFGSpeculativeJIT32_64.cpp as much as
> possible. We can implement large part of DFG code in 32/64 unified code with
> our infrastructure. If your 32bit code is slightly different from 64bit code,
> I believe adding ifdef in DFGSpeculativeJIT.cpp is rather fine. It highlights
> what our infrastructure is missing to implement it in unified code. And
> later, such ifdefs will be removed.
This seems like a good approach to me.
> Best regards,
> Yusuke Suzuki
> jsc-dev mailing list
webkit-dev mailing list