| Summary: | [RISCV64] riscv64 backend should lower offlineasm instructions | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Product: | WebKit | Reporter: | Zan Dobersek <zan> | ||||||||
| Component: | New Bugs | Assignee: | Zan Dobersek <zan> | ||||||||
| Status: | RESOLVED FIXED | ||||||||||
| Severity: | Normal | CC: | commit-queue, ews-watchlist, keith_miller, mark.lam, msaboff, pmatos, saam, tzagallo, webkit-bug-importer, xan.lopez, ysuzuki | ||||||||
| Priority: | P2 | Keywords: | InRadar | ||||||||
| Version: | WebKit Nightly Build | ||||||||||
| Hardware: | Unspecified | ||||||||||
| OS: | Unspecified | ||||||||||
| Bug Depends on: | 235164 | ||||||||||
| Bug Blocks: | 237775 | ||||||||||
| Attachments: |
|
||||||||||
|
Description
Zan Dobersek
2022-01-07 02:55:30 PST
Created attachment 448577 [details]
Patch
Created attachment 448723 [details]
Patch
With additional shift-amount validation.
Comment on attachment 448723 [details]
Patch
r=me
Committed r287912 (245945@main): <https://commits.webkit.org/245945@main> All reviewed patches have been landed. Closing bug and clearing flags on attachment 448723 [details]. Re-opened since this is blocked by bug 235164 With regards to the regression that initiated the rollout in #235164, the only thing that could affect ARM64/ARM64E is the additional lowering of misplaced addresses for any baddi*, bsubi* and bmuli* instructions. But these should already be lowered by the time that Sequence.getModifiedListARM64() calls riscLowerMisplacedAddresses(), due to already calling riscLowerSimpleBranchOps() and riscLowerHardBranchOps64() before that. Don't know. I can implement Sequence.lowerMisplacedAddressesRISCV64() and manually lower these instructions there, not affecting any other architecture. Created attachment 449048 [details]
Patch
Comment on attachment 449048 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=449048&action=review > Source/JavaScriptCore/offlineasm/riscv64.rb:406 > +def riscv64LowerMisplacedAddresses(list) > + newList = [] > + list.each { > + | node | > + if node.is_a? Instruction > + case node.opcode > + when /^baddi/, /^bsubi/, /^bmuli/ > + postInstructions = [] > + newList << node.riscCloneWithOperandsLowered(newList, postInstructions, "i") > + newList += postInstructions These specific instructions are now handled in a separate, RISCV64-specific lowering pass. Didn't use Instruction.lowerMisplacedAddressesRISCV64() to keep the lowering passes uniformly implemented in helper functions. Comment on attachment 449048 [details]
Patch
r=me
Committed r288007 (246033@main): <https://commits.webkit.org/246033@main> All reviewed patches have been landed. Closing bug and clearing flags on attachment 449048 [details]. |