Bug 125706

Summary: mandreel throws a checksum error on 32-bit x86
Product: WebKit Reporter: Mark Hahnenberg <mhahnenberg>
Component: JavaScriptCoreAssignee: Mark Lam <mark.lam>
Status: RESOLVED FIXED    
Severity: Normal CC: fpizlo, ggaren, mark.lam, mhahnenberg, mmirman, msaboff, oliver
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
the patch. fpizlo: review+

Mark Hahnenberg
Reported 2013-12-13 13:14:36 PST
Steps to repro: (1) Tools/Scripts/build-jsc --debug --32-bit (2) Edit run.js to only load base.js and mandreel.js (2) DYLD_FRAMEWORK_PATH=/Volumes/Data/WebKit-svn-clean/OpenSource/WebKitBuild/Debug/ /Volumes/Data/WebKit-svn-clean/OpenSource/WebKitBuild/Debug/jsc run.js (3) Observe the following error message: Exception: Alert called with argument: Check sum mismatch: expected ???, actual 7649662
Attachments
the patch. (5.00 KB, patch)
2014-03-28 16:59 PDT, Mark Lam
fpizlo: review+
Mark Hahnenberg
Comment 1 2013-12-13 13:39:08 PST
Mark Lam
Comment 2 2014-03-28 16:41:11 PDT
The issue is due to the 32-bit DFG emitting code that load constants from its CodeBlock's m_constantRegisters vector, and then resizing that vector thereby rendering the addresses in the emitted code state. The fix is to use a dedicated doubles constant pool for the DFG stored in the DFG CommonData.
Mark Lam
Comment 3 2014-03-28 16:59:17 PDT
Created attachment 228094 [details] the patch.
Mark Lam
Comment 4 2014-03-28 17:38:42 PDT
Note You need to log in before you can comment on or make changes to this bug.