Author: whessev8
Date: Tue Jan 13 01:16:17 2009
New Revision: 1059
Modified:
branches/experimental/toiger/src/codegen-ia32.cc
Log:
Move spills inside SmiOperation and GenericBinaryOperation
Review URL: http://codereview.chromium.org/17610
Modified: branches/experimental/toiger/src/codegen-ia32.cc
==============================================================================
--- branches/experimental/toiger/src/codegen-ia32.cc (original)
+++ branches/experimental/toiger/src/codegen-ia32.cc Tue Jan 13 01:16:17
2009
@@ -781,12 +781,11 @@
if (op == Token::COMMA) {
// Simply discard left value.
- frame_->EmitPop(eax);
- frame_->Drop();
- frame_->EmitPush(eax);
+ frame_->Nip(1);
return;
}
+ VirtualFrame::SpilledScope spilled_scope(this);
// Set the flags based on the operation, type and loop nesting level.
GenericBinaryFlags flags;
switch (op) {
@@ -1028,6 +1027,7 @@
// TODO(1217802): Optimize some special cases of operations
// involving a smi literal (multiply by 2, shift by 0, etc.).
+ VirtualFrame::SpilledScope spilled_scope(this);
// Get the literal value.
int int_value = Smi::cast(*value)->value();
@@ -4163,7 +4163,6 @@
}
} else {
- VirtualFrame::SpilledScope spilled_scope(this);
// NOTE: The code below assumes that the slow cases (calls to runtime)
// never return a constant/immutable object.
OverwriteMode overwrite_mode = NO_OVERWRITE;
@@ -4181,16 +4180,16 @@
Literal* rliteral = node->right()->AsLiteral();
if (IsInlineSmi(rliteral)) {
- LoadAndSpill(node->left());
+ Load(node->left());
SmiOperation(node->op(), node->type(), rliteral->handle(), false,
overwrite_mode);
} else if (IsInlineSmi(lliteral)) {
- LoadAndSpill(node->right());
+ Load(node->right());
SmiOperation(node->op(), node->type(), lliteral->handle(), true,
overwrite_mode);
} else {
- LoadAndSpill(node->left());
- LoadAndSpill(node->right());
+ Load(node->left());
+ Load(node->right());
GenericBinaryOperation(node->op(), node->type(), overwrite_mode);
}
}
--~--~---------~--~----~------------~-------~--~----~
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
-~----------~----~----~----~------~----~------~--~---