Closed Bug 2053717 Opened 4 months ago Closed 3 months ago

Improve immediate materialization for riscv64

Categories

(Core :: JavaScript Engine: JIT, enhancement)

enhancement

Tracking

()

RESOLVED FIXED
154 Branch
Tracking Status
firefox154 --- fixed

People

(Reporter: anba, Assigned: anba)

References

(Blocks 1 open bug)

Details

Attachments

(4 external files)

Improve immediate materialization for riscv64 by importing more code from LLVM's RISCVMatInt file.

Instruction class changes for later parts:

  • IsSlli: Include kFunct6Mask to exclude Zbs instructions which are encoded
    like shift instructions.
  • Shamt: Don't allow Imm32 variants.
  • SetShamt: Add separate SetShamt32 setter for Imm32 variant.
  • SetIShiftFormat, SetIShift32Format: Split from SetIFormat to handle
    shift amount correctly. (Needed for Zbs extension instructions.)
  • OpcodeRISCV: Add concept to allow opcodes from extensions.

This avoids code duplication and will allow to import more code from LLVM in part 4.

Import more code from LLVM's RISCVMatInt file to add extension-specific
optimisations. Also remove Assembler::GeneralLi because it's for the most
redundant with "AssemblerMatInt.cpp".

QA Whiteboard: [qa-triage-done-c155/b154]
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: