Small tweaks to make the x64 full code generator generate

more compact code.
Review URL: http://codereview.chromium.org/3443022

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5520 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
This commit is contained in:
erik.corry@gmail.com 2010-09-24 08:34:52 +00:00
parent 9c503a8330
commit 68ef41af29

View File

@ -375,10 +375,10 @@ void FullCodeGenerator::AccumulatorValueContext::Plug(
Label* materialize_false) const {
NearLabel done;
__ bind(materialize_true);
__ Move(result_register(), Factory::true_value());
__ LoadRoot(result_register(), Heap::kTrueValueRootIndex);
__ jmp(&done);
__ bind(materialize_false);
__ Move(result_register(), Factory::false_value());
__ LoadRoot(result_register(), Heap::kFalseValueRootIndex);
__ bind(&done);
}
@ -388,10 +388,10 @@ void FullCodeGenerator::StackValueContext::Plug(
Label* materialize_false) const {
NearLabel done;
__ bind(materialize_true);
__ Push(Factory::true_value());
__ PushRoot(Heap::kTrueValueRootIndex);
__ jmp(&done);
__ bind(materialize_false);
__ Push(Factory::false_value());
__ PushRoot(Heap::kFalseValueRootIndex);
__ bind(&done);
}
@ -2250,12 +2250,12 @@ void FullCodeGenerator::EmitClassOf(ZoneList<Expression*>* args) {
// Functions have class 'Function'.
__ bind(&function);
__ Move(rax, Factory::function_class_symbol());
__ LoadRoot(rax, Heap::kFunctionClassSymbolRootIndex);
__ jmp(&done);
// Objects with a non-function constructor have class 'Object'.
__ bind(&non_function_constructor);
__ Move(rax, Factory::Object_symbol());
__ LoadRoot(rax, Heap::kObjectSymbolRootIndex);
__ jmp(&done);
// Non-JS objects have class null.
@ -2710,10 +2710,10 @@ void FullCodeGenerator::EmitIsRegExpEquivalent(ZoneList<Expression*>* args) {
__ cmpq(tmp, FieldOperand(right, JSRegExp::kDataOffset));
__ j(equal, &ok);
__ bind(&fail);
__ Move(rax, Factory::false_value());
__ LoadRoot(rax, Heap::kFalseValueRootIndex);
__ jmp(&done);
__ bind(&ok);
__ Move(rax, Factory::true_value());
__ LoadRoot(rax, Heap::kTrueValueRootIndex);
__ bind(&done);
context()->Plug(rax);