Closed Bug 900821 Opened 7 years ago Closed 7 years ago

SparcAssembler and MIPSAssembler broken since the removal of JM

Categories

(Core :: JavaScript Engine, defect)

24 Branch
Sun
Linux
defect
Not set

Tracking

()

RESOLVED FIXED
mozilla25
Tracking Status
firefox24 --- fixed
firefox25 --- fixed

People

(Reporter: glandium, Assigned: glandium)

References

Details

Attachments

(1 file, 1 obsolete file)

At the very least, it's broken because it (still) uses methodjit/Logging.h. I hope that's about it.
There's that, too:
../../../js/src/assembler/assembler/MacroAssemblerSparc.h: In member function 'void JSC::MacroAssemblerSparc::add32(JSC::AbstractMacroAssembler<JSC::SparcAssembler>::Imm32, JSC::AbstractMacroAssembler<JSC::SparcAssembler>::AbsoluteAddress)':
../../../js/src/assembler/assembler/MacroAssemblerSparc.h:1017:54: error: invalid conversion from 'const void*' to 'void*' [-fpermissive]
../../../js/src/assembler/assembler/MacroAssemblerSparc.h:530:14: error:   initializing argument 2 of 'void JSC::MacroAssemblerSparc::store32(JSC::AbstractMacroAssembler<JSC::SparcAssembler>::RegisterID, void*)' [-fpermissive]
../../../js/src/assembler/assembler/MacroAssemblerSparc.h: In member function 'void JSC::MacroAssemblerSparc::sub32(JSC::AbstractMacroAssembler<JSC::SparcAssembler>::TrustedImm32, JSC::AbstractMacroAssembler<JSC::SparcAssembler>::AbsoluteAddress)':
../../../js/src/assembler/assembler/MacroAssemblerSparc.h:1024:54: error: invalid conversion from 'const void*' to 'void*' [-fpermissive]
../../../js/src/assembler/assembler/MacroAssemblerSparc.h:530:14: error:   initializing argument 2 of 'void JSC::MacroAssemblerSparc::store32(JSC::AbstractMacroAssembler<JSC::SparcAssembler>::RegisterID, void*)' [-fpermissive]
../../../js/src/assembler/assembler/MIPSAssembler.h:38:31: fatal error: methodjit/Logging.h: No such file or directory
Summary: SparcAssembler broken since the removal of JM → SparcAssembler and MIPSAssembler broken since the removal of JM
The include stack (similar for sparc):
In file included from ../../../js/src/assembler/assembler/MacroAssemblerMIPS.h:33:0,
                 from ../../../js/src/assembler/assembler/MacroAssembler.h:46,
                 from ../../../js/src/yarr/YarrJIT.h:35,
                 from ../../../js/src/vm/RegExpObject.h:24,
                 from ../../../js/src/builtin/RegExp.h:13,
                 from ../../../js/src/vm/GlobalObject.h:18,
                 from ../../../js/src/gc/Zone.h:22,
                 from ../../../js/src/jscompartment.h:16,
                 from ../../../js/src/jsweakmap.h:12,
                 from ../../../js/src/vm/ScopeObject.h:12,
                 from ../../../js/src/vm/ArgumentsObject-inl.h:12,
Fwiw we (OpenBSD) dont use those because :
- firefox doesnt work on sparc32 (way too much work to fix its deps, and the 32-bit port targets old hardware, cf http://openbsd.org/sparc.html) and mips64 (different ABI than the one supported - older mips64/sgi & mips64el/loongson use n64 vs o32/n32)
- sparc64/v9 works but doesnt use SparcAssembler (which, iirc was meant for solaris/sparcv8 ?)
Disabling YarrJIT for both gets me past js.
Attachment #784932 - Flags: review?(luke)
Assignee: general → mh+mozilla
Attachment #784932 - Flags: review?(luke) → review+
To get the PPCAssembler working again after JM's removal, I had to convert everything over to GenericAssembler::staticSpew().
Same patch, but with only the relevant part.
Attachment #784932 - Attachment is obsolete: true
Comment on attachment 785563 [details] [diff] [review]
Disable Yarr JIT on sparc and mips

Carrying over r+
Attachment #785563 - Flags: review+
https://hg.mozilla.org/mozilla-central/rev/3ce5e843adb1
Status: NEW → RESOLVED
Closed: 7 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla25
Comment on attachment 785563 [details] [diff] [review]
Disable Yarr JIT on sparc and mips

[Approval Request Comment]
Requesting for beta because i'd like this in ESR24 so that I don't have to carry the patch around for the ESR.
User impact if declined: Build failure on sparc and mips
Testing completed (on m-c, etc.): Tested on sparc and mips.
Risk to taking this patch (and alternatives if risky): NPOTB.
String or IDL/UUID changes made by this patch: None
Attachment #785563 - Flags: approval-mozilla-beta?
Attachment #785563 - Flags: approval-mozilla-beta? → approval-mozilla-beta+
You need to log in before you can comment on or make changes to this bug.