Closed
Bug 602873
Opened 15 years ago
Closed 9 years ago
Code mis-compiled by VS2008 -favor:INTEL64 switch
Categories
(Core :: JavaScript Engine, defect)
Tracking
()
RESOLVED
INVALID
People
(Reporter: swsnyder, Assigned: swsnyder)
Details
(Whiteboard: [platform-rel-Intel])
Attachments
(2 files)
|
574 bytes,
patch
|
Details | Diff | Splinter Review | |
|
239.45 KB,
application/octet-stream
|
Details |
64-bit VS2008/SP1 mis-compiles (Firefox 4.0b6) source file jsinterp.cpp when the -favor:INTEL64 switch is used. The symptom is a runtime protection fault in DefaultValue() when a pointer has a bogus value. Omission of this switch results in a working build.
This behavior is true with optimization levels -O1 or -O2, and with debug symbols enabled or disabled.
FYI, the compiler default is -favor:blend. Options INTEL64 or AMD64 are said to provide better code gen for 64-bit CPUs from their respective vendors.
| Assignee | ||
Comment 1•15 years ago
|
||
Patch is conditional on compiler being VS2008. No test is done for x86_64 platform because the switch is only defined for 64-bit compilers.
Assignee: general → swsnyder
| Assignee | ||
Comment 2•15 years ago
|
||
I'm not certain exactly what generated code causes the faults, i.e. what bad code results from the -favor:INTEL64 switch. I suspect it's associated with lost sign bits.
For the morbidly curious, this ZIP file contains the VS2008/SP1 ASM output for jsinterp.cpp compilation, both with and without the troublesome switch. There's actually not a lot of difference between the 2 files.
Updated•10 years ago
|
Whiteboard: [platform-rel-Intel]
Updated•10 years ago
|
platform-rel: --- → ?
Updated•9 years ago
|
platform-rel: ? → ---
Comment 3•9 years ago
|
||
VS2008 is no longer supported.
Status: NEW → RESOLVED
Closed: 9 years ago
Resolution: --- → INVALID
You need to log in
before you can comment on or make changes to this bug.
Description
•