Closed Bug 451743 Opened 16 years ago Closed 16 years ago

TM: check for SSE2 on x86


(Core :: JavaScript Engine, defect)

Not set





(Reporter: dvander, Assigned: dvander)




(1 file)

we should check for whether SSE2 is available on x86 processors so nanojit can default back to x87 fpu code.
Attachment #335083 - Flags: review?(gal)
Could you add an #error if its neither?
Jim, are you using nightly or are you building yourself?
Assignee: general → danderson
Attachment #335083 - Flags: review?(gal) → review+
Comment on attachment 335083 [details] [diff] [review]
checks for and enables sse2 in nanojit if available

This should go into central right away. Who should we ask for SR in such cases?
Attachment #335083 - Flags: superreview?(shaver)
Attachment #335083 - Flags: superreview?(shaver)
Attachment #335083 - Flags: review?(mrbkap)
(In reply to comment #3)
> Jim, are you using nightly or are you building yourself?

I use nightly builds, but have been known to use hourly's as well.  

My work schedule on week-end is crazy, I work Friday evenings, then on Sat/Sun I work Morning shift - so will be at best tomorrow afternoon EDT before I could test any builds, assuming you get the patch approved.
Attachment #335083 - Flags: review?(mrbkap) → superreview+
Pushed to tracemonkey as changeset 5fd7e0d5c529.
Is this also going to the M-C builds or just tracemonkey builds ?

We will try to get this into M-C asap but we don't have test coverage for no-SSE. Do you want to give it a try?
I won't be able to test until tomorrow as stated above, after 1400hrs EDT 8/23/8, but yes.. if that's the way we have to go, I can download a tracemonkey build.
Comment on attachment 335083 [details] [diff] [review]
checks for and enables sse2 in nanojit if available

This is approved for mozilla-central landing if the tree is open, or still closed for us.
I just tired the tracemonkey build from here: 

and I still crash with 'content' enabled. 

Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.1a2pre) Gecko/20080822171935 Minefield/3.1a2pre Firefox/3.0 ID:20080822171935
oops, have to get to bed, and I'm rushing, here is crashreport for what it may be worth:

4am comes early
And it crashes with an m-c build that just came out that contains the patch:

Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.1a2pre) Gecko/20080822175743 Minefield/3.1a2pre Firefox/3.0 ID:20080822175743
I don't know if this will help, but I attached Windbg and then with a clean profile, no addons, enabled JIT 'content', and loaded 

Here is the trace from WinDbg:

CommandLine: "C:\Program Files\Minefield\firefox.exe"
Symbol search path is: C:\localsymbols
Executable search path is: 
ModLoad: 009c0000 009d7000   firefox.exe
ModLoad: 77d50000 77e77000   ntdll.dll
ModLoad: 776c0000 7779b000   C:\Windows\system32\kernel32.dll
ModLoad: 69030000 69a04000   C:\Program Files\Minefield\xul.dll
ModLoad: 6ca10000 6ca73000   C:\Program Files\Minefield\sqlite3.dll
ModLoad: 6bcf0000 6bda1000   C:\Program Files\Minefield\MOZCRT19.dll
ModLoad: 76920000 769ca000   C:\Windows\system32\msvcrt.dll
ModLoad: 6c5a0000 6c661000   C:\Program Files\Minefield\js3250.dll
ModLoad: 10000000 10029000   C:\Program Files\Minefield\nspr4.dll
ModLoad: 77930000 779f6000   C:\Windows\system32\ADVAPI32.dll
ModLoad: 77c80000 77d42000   C:\Windows\system32\RPCRT4.dll
ModLoad: 72920000 72927000   C:\Windows\system32\WSOCK32.dll
ModLoad: 77ee0000 77f0d000   C:\Windows\system32\WS2_32.dll
ModLoad: 77eb0000 77eb6000   C:\Windows\system32\NSI.dll
ModLoad: 74d80000 74db2000   C:\Windows\system32\WINMM.dll
ModLoad: 77f10000 77fad000   C:\Windows\system32\USER32.dll
ModLoad: 76730000 7677b000   C:\Windows\system32\GDI32.dll
ModLoad: 77a00000 77b44000   C:\Windows\system32\ole32.dll
ModLoad: 77820000 778ad000   C:\Windows\system32\OLEAUT32.dll
ModLoad: 75fc0000 75ff9000   C:\Windows\system32\OLEACC.dll
ModLoad: 00050000 00068000   C:\Program Files\Minefield\smime3.dll
ModLoad: 00580000 0062a000   C:\Program Files\Minefield\nss3.dll
ModLoad: 00070000 00084000   C:\Program Files\Minefield\nssutil3.dll
ModLoad: 00020000 00027000   C:\Program Files\Minefield\plc4.dll
ModLoad: 00090000 00097000   C:\Program Files\Minefield\plds4.dll
ModLoad: 001a0000 001c0000   C:\Program Files\Minefield\ssl3.dll
ModLoad: 76b60000 7766f000   C:\Windows\system32\SHELL32.dll
ModLoad: 765d0000 76628000   C:\Windows\system32\SHLWAPI.dll
ModLoad: 75d10000 75d18000   C:\Windows\system32\VERSION.dll
ModLoad: 748f0000 74932000   C:\Windows\system32\WINSPOOL.DRV
ModLoad: 777a0000 77813000   C:\Windows\system32\COMDLG32.dll
ModLoad: 758a0000 75a3e000   C:\Windows\WinSxS\\COMCTL32.dll
ModLoad: 77ec0000 77ede000   C:\Windows\system32\IMM32.dll
ModLoad: 76850000 76918000   C:\Windows\system32\MSCTF.dll
ModLoad: 755b0000 755b5000   C:\Windows\system32\MSIMG32.dll
ModLoad: 778b0000 7792d000   C:\Windows\system32\USP10.dll
ModLoad: 748c0000 748c7000   C:\Program Files\Minefield\xpcom.dll
(c3c.e90): Break instruction exception - code 80000003 (first chance)
eax=00000000 ebx=00000000 ecx=0019f774 edx=77da9a94 esi=fffffffe edi=77dab6f8
eip=77d97dfe esp=0019f78c ebp=0019f7bc iopl=0         nv up ei pl zr na pe nc
cs=001b  ss=0023  ds=0023  es=0023  fs=003b  gs=0000             efl=00000246
*** ERROR: Symbol file could not be found.  Defaulted to export symbols for ntdll.dll - 
77d97dfe cc              int     3
0:000> g
ModLoad: 76640000 76649000   C:\Windows\system32\LPK.DLL
ModLoad: 75120000 7515f000   C:\Windows\system32\uxtheme.dll
ModLoad: 74b60000 74b6c000   C:\Windows\system32\dwmapi.dll
ModLoad: 72770000 7284c000   C:\Windows\system32\dbghelp.dll
ModLoad: 76480000 7649e000   C:\Windows\system32\USERENV.dll
ModLoad: 76460000 76474000   C:\Windows\system32\Secur32.dll
ModLoad: 74c60000 74d1b000   C:\Windows\system32\PROPSYS.dll
ModLoad: 769d0000 76b5a000   C:\Windows\system32\SETUPAPI.dll
ModLoad: 766a0000 76724000   C:\Windows\system32\CLBCatQ.DLL
ModLoad: 74790000 74798000   C:\Program Files\Minefield\components\browserdirprovider.dll
ModLoad: 75a80000 75abb000   C:\Windows\system32\mswsock.dll
ModLoad: 755a0000 755a5000   C:\Windows\System32\wshtcpip.dll
ModLoad: 75c30000 75c49000   C:\Windows\system32\iphlpapi.dll
ModLoad: 75bf0000 75c25000   C:\Windows\system32\dhcpcsvc.DLL
ModLoad: 75d90000 75dbc000   C:\Windows\system32\DNSAPI.dll
ModLoad: 75be0000 75be7000   C:\Windows\system32\WINNSI.DLL
ModLoad: 75bb0000 75bd1000   C:\Windows\system32\dhcpcsvc6.DLL
ModLoad: 74c00000 74c0f000   C:\Windows\system32\NLAapi.dll
ModLoad: 73010000 7301f000   C:\Windows\system32\napinsp.dll
ModLoad: 72fd0000 72fe2000   C:\Windows\system32\pnrpnsp.dll
ModLoad: 73000000 73008000   C:\Windows\System32\winrnr.dll
ModLoad: 76650000 7669a000   C:\Windows\system32\WLDAP32.dll
ModLoad: 765c0000 765c7000   C:\Windows\system32\PSAPI.DLL
ModLoad: 74310000 743c3000   C:\Windows\system32\WindowsCodecs.dll
ModLoad: 75660000 7569b000   C:\Windows\system32\rsaenh.dll
ModLoad: 01a70000 01a95000   C:\Program Files\Minefield\softokn3.dll
ModLoad: 01aa0000 01ab8000   C:\Program Files\Minefield\nssdbm3.dll
ModLoad: 01ac0000 01af9000   C:\Program Files\Minefield\freebl3.dll
ModLoad: 01c40000 01c89000   C:\Program Files\Minefield\nssckbi.dll
ModLoad: 746c0000 746e3000   C:\Program Files\Minefield\components\brwsrcmp.dll
ModLoad: 75ae0000 75ae5000   C:\Windows\System32\wship6.dll
ModLoad: 755e0000 75601000   C:\Windows\system32\NTMARTA.DLL
ModLoad: 75d70000 75d81000   C:\Windows\system32\SAMLIB.dll
ModLoad: 76090000 76096000   C:\Windows\system32\rasadhlp.dll
ModLoad: 736e0000 737e7000   C:\Windows\system32\shdocvw.dll
(c3c.e90): Illegal instruction - code c000001d (first chance)
(c3c.e90): Illegal instruction - code c000001d (!!! second chance !!!)
eax=01d02a18 ebx=0019ba80 ecx=00b165c0 edx=0507b260 esi=0019be58 edi=00000003
eip=01d004c2 esp=0019ba00 ebp=0019ba60 iopl=0         nv up ei pl nz na pe nc
cs=001b  ss=0023  ds=0023  es=0023  fs=003b  gs=0000             efl=00010206
01d004c2 f20f2ac7        cvtsi2sd xmm0,edi

I really don't know all the ins/out of getting traces, but it always stops at the illegal instruction line.....

There are also reports of Acid3 test crashing with JIT content enabled, here is my crash report, clean profile, no addons...

Latest hourly build, same build was used above:

Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.1a2pre) Gecko/20080823010101 Minefield/3.1a2pre Firefox/3.0 ID:20080823010101
I just remembered, hourly's don't have symbols, so comment 15 may be invalid...will run again this afternoon when I get home from work with a nightly build.

Well, perhaps the builds I tested above did not contain the patch afterall, as I just got home, updated to today's nightly and I'm not crashing on Acid3, or pages like the tinderbox, CNN, MSNBC - will continue to test

Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.1a2pre) Gecko/20080823032129 Minefield/3.1a2pre Firefox/3.0 ID:20080823032129
Ah yes.  The SSE2 thing again bites those of us still using non-SSE2 capable P3's and Athlons.  Adobe made the same mistake when releasing Flash Player 10 Beta 2.  It proved too crashy -- just as I'm now experiencing if I enable JIT with the latest Trunk (but significantly worse in Firefox's case -- I can't get far with JIT turned on).  When Adobe's next update stopped presuming SSE2 support, Flash stopped crashing my browser, so I expect the same will happen here.
So far still no crashes with today's nightly.  The only thing I've crashed on is trying to visit Google Documents, but that's likely another issue altogether.

Is this one of those situations where a 'clobber' was required to make the patch work??  Nightly's are 'clobbers' from what I understand, unless that changed with Hg, and I was pretty sure the builds I tested above and crashed on had the patch, thus did it take a full build to affect the change ? 

I'm close to calling this one fixed unless someone else sees issues/problems.

Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.1a2pre) Gecko/20080823032129 Minefield/3.1a2pre Firefox/3.0 ID:20080823032129
You're right.  It is working now.  I do get a crash at, but that's probably something else.  I hope they are at least using SSE, where available, though speed gain at this point is nevertheless quite impressive.
We definitively don't want to leave our non-SSE users behind. We will be doing some heavy SSE optimization over the next 2 weeks, so you might want to keep an eye on the nightlies to make sure we don't regress again non non-SSE. The abc/google docs are probably unrelated. Feel free to file separate bugs on them (I think I have already seen the google docs issue). I will close this one. Please re-open if other non-SSE issues crop up.
Closed: 16 years ago
Resolution: --- → FIXED
Depends on: 452630
Flags: in-testsuite-
Flags: in-litmus-
You need to log in before you can comment on or make changes to this bug.