Closed Bug 931434 Opened 9 years ago Closed 9 years ago
Ionmonkey: add float32 support to Move
Group and Move Emitter
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.
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.