This includes UnaryPlusNode, NegateNode, BitwiseNotNode and LogicalNotNode.
Created attachment 20140 [details] patch
+RegisterID* UnaryPlusNode::emitCode(CodeGenerator& generator, RegisterID* dst) +{ + RegisterID* r0 = generator.emitNode(m_expr.get()); + return generator.emitToJSNumber(dst ? dst : generator.newTemporary(r0), r0); +} + For cases like this (there are a few in your patch), there's no need to pass r0 to newTemporary(). Since r0 is not referenced, newTemporary() will autmatically return it. The feature of passing a register to newTemporary was intended for situations where the codegen pattern forces you to put r0 in a RefPtr, but you want to advise newTemporary() that, despite your reference, r0 is eligible for reuse as the operation's destination register. r=me
Comment on attachment 20140 [details] patch run-sunspider --squirrelfish, please.
Landed in r31382.