Closed Bug 633924 Opened 9 years ago Closed 9 years ago

MethodJIT broken on mingw-w64 win64 build

Categories

(Core :: JavaScript Engine, defect)

x86_64
Windows 7
defect
Not set

Tracking

()

RESOLVED FIXED

People

(Reporter: jacek, Assigned: jacek)

Details

Attachments

(1 file)

Attached patch fix v1.0Splinter Review
It's mostly broken because we share assembly parts with UNIX 64-bit builds, but win64 ABI is different, so we should use the same assembly as MSVC builds do. Required changes include:

- TrampolineMingwX64.s
Although we could use inline assembly here, it's easier to keep in sync with masm version if it's in separated file. It's in fact just ported masm assembly (in simmilar way to xpcom/reflect/xptcall/src/md/win32/xptcinvoke_asm_x86_64_gnu.s). A nice trick for review, to see the real differences between these files, is:

$ sed 's/;/#/g' TrampolineMasmX64.asm >/tmp/as
$ diff -u /tmp/asm TrampolineMingwX64.s

- Makefile.in
Added new assembly to the build process

- MachineRegs.h
Changed ifdefs that should be ABI-specific instead of compiler-specific

- MethodJIT.cpp
Changed ifdefs to tread mingw and msvc win64 build the same way
Attachment #512133 - Flags: review?(dvander)
Attachment #512133 - Flags: review?(dvander) → review+
Thanks for the review, pushed to t-m:

http://hg.mozilla.org/tracemonkey/rev/977bd127e9f3
Whiteboard: fixed-in-tracemonkey
Summary: MethodGIT broken on mingw-w64 win64 build → MethodJIT broken on mingw-w64 win64 build
Merged to m-c:

http://hg.mozilla.org/mozilla-central/rev/977bd127e9f3
Status: NEW → RESOLVED
Closed: 9 years ago
Resolution: --- → FIXED
Whiteboard: fixed-in-tracemonkey
You need to log in before you can comment on or make changes to this bug.