[loong64] Some jit-tests failed due to scratch register usage conflict: Assertion failure: !this->has(reg), at js/src/jit/RegisterSets.h:820
Categories
(Core :: JavaScript Engine: JIT, defect, P3)
Tracking
()
| Tracking | Status | |
|---|---|---|
| firefox-esr102 | --- | unaffected |
| firefox106 | --- | unaffected |
| firefox107 | --- | unaffected |
| firefox108 | --- | fixed |
People
(Reporter: zhaojiazhong-hf, Assigned: zhaojiazhong-hf)
References
(Blocks 1 open bug, Regression)
Details
(Keywords: regression)
Attachments
(1 file)
Some jit-tests failed on loongarch64 platform after Bug 1794439 - Inline HasNativeDataPropertyPure cache lookup in Ion r?jandem is landed:
basic/dictionary-delete-compact.js
cacheir/has.js
ion/hasOwn-megamorphic.js
ion/has-definite-folding.js
ion/testStringMatch.js
--enable-watchtower watchtower/megamorphic-long-proto-chain.js
js::jit::SpecializedRegSet<js::jit::AllocatableSetAccessors<js::jit::RegisterSet>, js::jit::RegisterSet>::add (this=<optimized out>, reg=...)
at /mnt/zjz/workspace/mozilla/mozilla-central/js/src/jit/RegisterSets.h:820
820 MOZ_ASSERT(!this->has(reg));
And it's because the patch introduced a new function MacroAssembler::loadAtomOrSymbolAndHash, which requires SecondScratchRegister twice on loongarch64 by ScratchTagScope and branchTest32.
| Assignee | ||
Comment 1•3 years ago
|
||
- Change the scratch registers management strategy of loong64 port may fix it, but it's kind of big change, and needs time to implement.
- We can also work around this issue by adjust the
MacroAssembler::loadAtomOrSymbolAndHashfunction, and reduce the scope ofScratchTagScope tag, so it could releaseSecondScratchRegisterbefore functionbranchTest32is called.
Currently, I prefer the second way.
| Assignee | ||
Comment 2•3 years ago
|
||
This is a workaround for scratch register usage conflict issue on loongarch64.
Updated•3 years ago
|
Updated•3 years ago
|
Comment 3•3 years ago
|
||
Set release status flags based on info from the regressing bug 1794439
Updated•3 years ago
|
Comment 5•3 years ago
|
||
| bugherder | ||
Description
•