Open Bug 1117238 Opened 11 years ago Updated 1 year ago

Use the BMI instruction sets on x86

Categories

(Core :: JavaScript Engine: JIT, enhancement, P5)

enhancement

Tracking

()

People

(Reporter: jandem, Unassigned)

References

(Blocks 1 open bug)

Details

On x86, shift instructions require the RHS to be in ECX if it's not a constant. This is pretty annoying for the register allocators. The BMI2 instruction set (Haswell+) adds new (ternary) shift instructions (SARX/SHLX/SHRX) that don't have this restriction. It could also avoid some other move instructions because the output can be different from the inputs. The BZHI instruction could be used to unbox Values on x64: movb $47, output bzhiq output, input, output This might be shorter than: movq JSVAL_PAYLOAD_MASK, output andq input, output
Priority: -- → P5
Depends on: 1679035
Severity: normal → S3
Type: defect → enhancement
Blocks: sm-jits
Severity: S3 → N/A
You need to log in before you can comment on or make changes to this bug.