I was mistaken about one thing (sorry!), please read below... On Tue, 25 Jun 2019 19:01:54 +0300, Adrian Perez de Castro <aperez@igalia.com> wrote:
On Tue, 25 Jun 2019 10:42:04 -0500, Michael Catanzaro <mcatanzaro@igalia.com> wrote:
It's great that you find our stable branches helpful, but keep in mind those branches do not include Windows-specific fixes.
On Tue, Jun 25, 2019 at 9:53 AM, Arunprasad Rajkumar <ararunprasad@gmail.com> wrote:
Right. Actually the problem is in 32-bit Windows platform. I see that the JIT support has been dropped some time ago, and CLOOP based backend seems to be unstable on 32-bit Windows. Any thoughts on that?
So I'm not an expert here, but I understand there are three ways you can build JSC:
(1) -DENABLE_JIT=ON, -DENABLE_C_LOOP=OFF (2) -DENABLE_JIT=OFF, -DENABLE_C_LOOP=OFF (?) (3) -DENABLE_JIT=OFF, -DENABLE_C_LOOP=ON
(-DENABLE_JIT=ON and -DENABLE_C_LOOP=ON are incompatible.)
I believe that nowadays the only 32-bit platforms supported by JIT are Linux, and there only for ARM and MIPS, not x86. So you're almost certainly going to need to use -DENABLE_JIT=OFF. That eliminates option (1).
JIT works on x86 as long as your CPU has support for SSE2 instructions.
Oops, this is not quite true: JIT does NOT work on 32-bit x86 at the moment. (The JIT compiler does emit SSE2 instructions, though. When/If the JIT is made to work on 32-bit x86, support for SSE2 will be needed.)
You say the cloop seems unstable for you, which is option (3). So perhaps you should try option (2) if you haven't already. I'm not actually sure if that works, because I'm not an expert, which is why I added that (?) to it. But at least it couldn't hurt to try.
Option (2) would be using the LLint bytecode interpreter, without JIT.
In principle CLoop is expected to work “everywhere” because the interpreter is generated C/C++ code, which gets then built by the same compiler used to build all the rest of WebKit.
Maybe the Windows port maintainers know more about the status of 32-bit Windows support?
Cheers, —Adrián