Closed Bug 931434 Opened 9 years ago Closed 9 years ago

Ionmonkey: add float32 support to MoveGroup and MoveEmitter

Categories

(Core :: JavaScript Engine: JIT, defect)

defect
Not set
normal

Tracking

()

RESOLVED DUPLICATE of bug 950703

People

(Reporter: dougc, Assigned: sunfish)

References

Details

There appears to be no support for moving float32 specific values in MoveGroup and the MoveEmitters, and this results in code that uses double moves even when operating on float32 values.  Using float32 moves might be move efficient.

Example sequence mixing double and float32 operations due to MoveGroup not being float32 aware:

movss  -0x1acff000(%edx),%xmm2
movsd  %xmm5,0x94(%esp)           <<<
movsd  0xac(%esp),%xmm5           <<<
mulss  %xmm2,%xmm5
addss  0x9c(%esp),%xmm6
addss  0xa4(%esp),%xmm5
subss  %xmm3,%xmm6
subss  0xb4(%esp),%xmm5
movsd  %xmm2,0xf4(%esp)           <<<
movsd  0x11c(%esp),%xmm2          <<<
subss  0xbc(%esp),%xmm2
Glad you're looking at it! I looked at it at some point when implementing float32, but the task seems pretty heavy: every LAllocation has to know whether it contains a Float32 or Double. That means that every use*() function has to take a supplementary parameter which indicates this, and over the entire engine, that looks like a gigantic task.
Depends on: 949668
Assignee: nobody → sunfish
Status: NEW → RESOLVED
Closed: 9 years ago
Resolution: --- → DUPLICATE
You need to log in before you can comment on or make changes to this bug.