Open
Bug 832779
Opened 11 years ago
Updated 5 months ago
IonMonkey: Unpack 2 Int32 values and convert them to 2 doubles with SIMD.
Categories
(Core :: JavaScript Engine: JIT, defect, P5)
Tracking
()
NEW
People
(Reporter: nbp, Unassigned)
References
(Blocks 1 open bug)
Details
(Keywords: perf)
Type Inference provide a good type information, but when TI reports a double type, the value stored in memory might still be a boxed int32. The goal of this bug is to implement the X86Assembly instruction to unpack packed int 32 values (2x 64 bits values in one xmm register). The instructions needed to do so are: pblendw dst, src, i ; used to filter the tag or the payload pcmpeqq r1, r2 ; used to compare if both tags are int32 JSVAL tags ptest r1, r1 ; set the Zero flag if r1 == r2 in the previous compare. pshufw r1, r1, imm ; used to pack int32 values to the lowest part to be used with … cvtdq2pd r1, r1 ; to convert 2 int32 into 2 doubles. With these instruction, we can implement an equivalent of LoadElementT (which relies on loadUnboxedValue) which is only using SIMD instructions to load and unbox 2 Int32 values if necessary.
Reporter | ||
Updated•11 years ago
|
Assignee: general → nicolas.b.pierron
Status: NEW → ASSIGNED
Reporter | ||
Updated•8 years ago
|
Assignee: nicolas.b.pierron → nobody
Status: ASSIGNED → NEW
Component: JavaScript Engine → JavaScript Engine: JIT
Keywords: perf
Priority: -- → P5
Updated•2 years ago
|
Severity: normal → S3
You need to log in
before you can comment on or make changes to this bug.
Description
•