Closed Bug 931434 Opened 12 years ago Closed 12 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: 12 years ago
Resolution: --- → DUPLICATE
You need to log in before you can comment on or make changes to this bug.