Closed
Bug 1205229
Opened 9 years ago
Closed 9 years ago
IonMonkey: MIPS32: Make more CodeGenerator functions can be shared
Categories
(Core :: JavaScript Engine: JIT, defect)
Tracking
()
RESOLVED
FIXED
mozilla44
People
(Reporter: hev, Assigned: hev)
References
Details
Attachments
(1 file, 4 obsolete files)
5.42 KB,
patch
|
nbp
:
review+
|
Details | Diff | Splinter Review |
Do that to avoid hard to review split CodeGenerator-mips32.
Comment 3•9 years ago
|
||
Comment on attachment 8661712 [details] [diff] [review] Part 1: Add jump kind to branch32 and branchPtr with default LongJump Review of attachment 8661712 [details] [diff] [review]: ----------------------------------------------------------------- :D
Attachment #8661712 -
Flags: review?(arai.unmht) → review+
Comment 4•9 years ago
|
||
Comment on attachment 8661712 [details] [diff] [review] Part 1: Add jump kind to branch32 and branchPtr with default LongJump Review of attachment 8661712 [details] [diff] [review]: ----------------------------------------------------------------- These jump functions are part of the common interface of the MacroAssembler. Adding default values here prevent merging these functions, while this feature would also benefit other architectures.
Attachment #8661712 -
Flags: review-
Assignee | ||
Comment 5•9 years ago
|
||
Comment on attachment 8661712 [details] [diff] [review] Part 1: Add jump kind to branch32 and branchPtr with default LongJump OK, I understand.
Attachment #8661712 -
Attachment is obsolete: true
Assignee | ||
Comment 6•9 years ago
|
||
At this stage I use long jump in bailoutCmp first. If anybody have good idea, please update it.
Attachment #8661714 -
Attachment is obsolete: true
Attachment #8661714 -
Flags: review?(nicolas.b.pierron)
Attachment #8661758 -
Flags: review?(nicolas.b.pierron)
Comment 7•9 years ago
|
||
Comment on attachment 8661758 [details] [diff] [review] 0001-IonMonkey-MIPS32-Make-more-CodeGenerator-functions-c.patch Review of attachment 8661758 [details] [diff] [review]: ----------------------------------------------------------------- Please upload patches with more context. ::: js/src/jit/mips32/CodeGenerator-mips32.cpp @@ +1756,5 @@ > // Ensure that there is enough space in the buffer for the OsiPoint > // patching to occur. Otherwise, we could overwrite the invalidation > // epilogue. > + size_t existSize = masm.currentOffset() - returnLabel_.offset(); > + if (Assembler::PatchWrite_NearCallSize() > existSize) { No other architecture does that! This literally saves nothing compare to the rest of the allocated code, I don't think this is worth the complexity.
Attachment #8661758 -
Flags: review?(nicolas.b.pierron)
Assignee | ||
Comment 8•9 years ago
|
||
Attachment #8661758 -
Attachment is obsolete: true
Attachment #8666547 -
Flags: review?(nicolas.b.pierron)
Comment 9•9 years ago
|
||
Comment on attachment 8666547 [details] [diff] [review] 0001-IonMonkey-MIPS32-Make-more-CodeGenerator-functions-c.patch Review of attachment 8666547 [details] [diff] [review]: ----------------------------------------------------------------- ::: js/src/jit/mips32/CodeGenerator-mips32.cpp @@ +135,5 @@ > emitBranch(ToRegister(comp->left()), ToRegister(comp->right()), cond, > comp->ifTrue(), comp->ifFalse()); > } else { > + masm.load32(ToAddress(comp->right()), ScratchRegister); > + emitBranch(ToRegister(comp->left()), ScratchRegister, cond, This will not work on mips64, if we are comparing object pointers. You should use comp->cmpMir->compareType() to decide what to do here. @@ +278,5 @@ > masm.ma_b(&done, ShortJump); > > // Check for zero. > masm.bind(&equal); > + masm.loadConstantFloat32(0.0f, ScratchFloat32Reg); If you move these similar modification in another patch, I can r+ it.
Attachment #8666547 -
Flags: review?(nicolas.b.pierron)
Assignee | ||
Comment 10•9 years ago
|
||
(In reply to Nicolas B. Pierron [:nbp] from comment #9) > Comment on attachment 8666547 [details] [diff] [review] > 0001-IonMonkey-MIPS32-Make-more-CodeGenerator-functions-c.patch > > Review of attachment 8666547 [details] [diff] [review]: > ----------------------------------------------------------------- > > ::: js/src/jit/mips32/CodeGenerator-mips32.cpp > @@ +135,5 @@ > > emitBranch(ToRegister(comp->left()), ToRegister(comp->right()), cond, > > comp->ifTrue(), comp->ifFalse()); > > } else { > > + masm.load32(ToAddress(comp->right()), ScratchRegister); > > + emitBranch(ToRegister(comp->left()), ScratchRegister, cond, > > This will not work on mips64, if we are comparing object pointers. > You should use comp->cmpMir->compareType() to decide what to do here. That function need update for mips64. thank you! https://github.com/heiher/gecko-dev/blob/mips64-v6.3/js/src/jit/mips64/CodeGenerator-mips64.cpp#L139 > > @@ +278,5 @@ > > masm.ma_b(&done, ShortJump); > > > > // Check for zero. > > masm.bind(&equal); > > + masm.loadConstantFloat32(0.0f, ScratchFloat32Reg); > > If you move these similar modification in another patch, I can r+ it. Got it. ;)
Assignee | ||
Comment 11•9 years ago
|
||
Thanks!
Attachment #8666547 -
Attachment is obsolete: true
Attachment #8667286 -
Flags: review?(nicolas.b.pierron)
Comment 12•9 years ago
|
||
Comment on attachment 8667286 [details] [diff] [review] 0001-IonMonkey-MIPS32-Make-more-CodeGenerator-functions-c.patch Review of attachment 8667286 [details] [diff] [review]: ----------------------------------------------------------------- Thanks for the link to github.
Attachment #8667286 -
Flags: review?(nicolas.b.pierron) → review+
https://hg.mozilla.org/mozilla-central/rev/15671d7b6087
Status: ASSIGNED → RESOLVED
Closed: 9 years ago
status-firefox44:
--- → fixed
Resolution: --- → FIXED
Target Milestone: --- → mozilla44
You need to log in
before you can comment on or make changes to this bug.
Description
•