Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(160)

Unified Diff: src/x64/builtins-x64.cc

Issue 7060010: Merge bleeding edge into the GC branch up to 7948. The asserts (Closed) Base URL: http://v8.googlecode.com/svn/branches/experimental/gc/
Patch Set: Created 9 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/x64/assembler-x64.cc ('k') | src/x64/code-stubs-x64.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/x64/builtins-x64.cc
===================================================================
--- src/x64/builtins-x64.cc (revision 7948)
+++ src/x64/builtins-x64.cc (working copy)
@@ -576,15 +576,15 @@
__ SmiToInteger32(rcx, Operand(rsp, 1 * kPointerSize));
// Switch on the state.
- NearLabel not_no_registers, not_tos_rax;
+ Label not_no_registers, not_tos_rax;
__ cmpq(rcx, Immediate(FullCodeGenerator::NO_REGISTERS));
- __ j(not_equal, &not_no_registers);
+ __ j(not_equal, &not_no_registers, Label::kNear);
__ ret(1 * kPointerSize); // Remove state.
__ bind(&not_no_registers);
__ movq(rax, Operand(rsp, 2 * kPointerSize));
__ cmpq(rcx, Immediate(FullCodeGenerator::TOS_REG));
- __ j(not_equal, &not_tos_rax);
+ __ j(not_equal, &not_tos_rax, Label::kNear);
__ ret(2 * kPointerSize); // Remove state, rax.
__ bind(&not_tos_rax);
@@ -660,12 +660,9 @@
// Do not transform the receiver for natives.
// SharedFunctionInfo is already loaded into rbx.
- __ movq(rbx, FieldOperand(rbx, SharedFunctionInfo::kScriptOffset));
- __ CompareRoot(rbx, Heap::kUndefinedValueRootIndex);
- __ j(equal, &shift_arguments);
- __ SmiCompare(FieldOperand(rbx, Script::kTypeOffset),
- Smi::FromInt(Script::TYPE_NATIVE));
- __ j(equal, &shift_arguments);
+ __ testb(FieldOperand(rbx, SharedFunctionInfo::kES5NativeByteOffset),
+ Immediate(1 << SharedFunctionInfo::kES5NativeBitWithinByte));
+ __ j(not_zero, &shift_arguments);
// Compute the receiver in non-strict mode.
__ movq(rbx, Operand(rsp, rax, times_pointer_size, 0));
@@ -832,13 +829,9 @@
__ j(not_equal, &push_receiver);
// Do not transform the receiver for natives.
- // SharedFunctionInfo is already loaded into rdx.
- __ movq(rdx, FieldOperand(rdx, SharedFunctionInfo::kScriptOffset));
- __ CompareRoot(rdx, Heap::kUndefinedValueRootIndex);
- __ j(equal, &push_receiver);
- __ SmiCompare(FieldOperand(rdx, Script::kTypeOffset),
- Smi::FromInt(Script::TYPE_NATIVE));
- __ j(equal, &push_receiver);
+ __ testb(FieldOperand(rdx, SharedFunctionInfo::kES5NativeByteOffset),
+ Immediate(1 << SharedFunctionInfo::kES5NativeBitWithinByte));
+ __ j(not_zero, &push_receiver);
// Compute the receiver in non-strict mode.
__ JumpIfSmi(rbx, &call_to_object);
@@ -1474,17 +1467,17 @@
// If the result was -1 it means that we couldn't optimize the
// function. Just return and continue in the unoptimized version.
- NearLabel skip;
+ Label skip;
__ SmiCompare(rax, Smi::FromInt(-1));
- __ j(not_equal, &skip);
+ __ j(not_equal, &skip, Label::kNear);
__ ret(0);
// If we decide not to perform on-stack replacement we perform a
// stack guard check to enable interrupts.
__ bind(&stack_check);
- NearLabel ok;
+ Label ok;
__ CompareRoot(rsp, Heap::kStackLimitRootIndex);
- __ j(above_equal, &ok);
+ __ j(above_equal, &ok, Label::kNear);
StackCheckStub stub;
__ TailCallStub(&stub);
« no previous file with comments | « src/x64/assembler-x64.cc ('k') | src/x64/code-stubs-x64.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698