Index: src/x64/stub-cache-x64.cc |
diff --git a/src/x64/stub-cache-x64.cc b/src/x64/stub-cache-x64.cc |
index fcb2092df8939be3dfc76e5bdb029dc5b99fa693..a9433b4f77e6659ed0c0eaeb937677a23f66eba7 100644 |
--- a/src/x64/stub-cache-x64.cc |
+++ b/src/x64/stub-cache-x64.cc |
@@ -163,8 +163,7 @@ void StubCache::GenerateProbe(MacroAssembler* masm, |
ASSERT(!scratch.is(name)); |
// Check that the receiver isn't a smi. |
- __ testl(receiver, Immediate(kSmiTagMask)); |
- __ j(zero, &miss); |
+ __ JumpIfSmi(receiver, &miss); |
// Get the map of the receiver and compute the hash. |
__ movl(scratch, FieldOperand(name, String::kLengthOffset)); |
@@ -204,8 +203,7 @@ void StubCompiler::GenerateStoreField(MacroAssembler* masm, |
Register scratch, |
Label* miss_label) { |
// Check that the object isn't a smi. |
- __ testl(receiver_reg, Immediate(kSmiTagMask)); |
- __ j(zero, miss_label); |
+ __ JumpIfSmi(receiver_reg, miss_label); |
// Check that the map of the object hasn't changed. |
__ Cmp(FieldOperand(receiver_reg, HeapObject::kMapOffset), |
@@ -275,8 +273,7 @@ void StubCompiler::GenerateLoadArrayLength(MacroAssembler* masm, |
Register scratch, |
Label* miss_label) { |
// Check that the receiver isn't a smi. |
- __ testl(receiver, Immediate(kSmiTagMask)); |
- __ j(zero, miss_label); |
+ __ JumpIfSmi(receiver, miss_label); |
// Check that the object is a JS array. |
__ CmpObjectType(receiver, JS_ARRAY_TYPE, scratch); |
@@ -296,8 +293,7 @@ static void GenerateStringCheck(MacroAssembler* masm, |
Label* smi, |
Label* non_string_object) { |
// Check that the object isn't a smi. |
- __ testl(receiver, Immediate(kSmiTagMask)); |
- __ j(zero, smi); |
+ __ JumpIfSmi(receiver, smi); |
// Check that the object is a string. |
__ movq(scratch, FieldOperand(receiver, HeapObject::kMapOffset)); |
@@ -325,7 +321,7 @@ void StubCompiler::GenerateLoadStringLength(MacroAssembler* masm, |
// rcx is also the receiver. |
__ lea(rcx, Operand(scratch, String::kLongLengthShift)); |
__ shr(rax); // rcx is implicit shift register. |
- __ shl(rax, Immediate(kSmiTagSize)); |
+ __ Integer32ToSmi(rax, rax); |
__ ret(0); |
// Check if the object is a JSValue wrapper. |
@@ -535,8 +531,7 @@ static void CompileLoadInterceptor(Compiler* compiler, |
ASSERT(!holder->GetNamedInterceptor()->getter()->IsUndefined()); |
// Check that the receiver isn't a smi. |
- __ testl(receiver, Immediate(kSmiTagMask)); |
- __ j(zero, miss); |
+ __ JumpIfSmi(receiver, miss); |
// Check that the maps haven't changed. |
Register reg = |
@@ -701,8 +696,7 @@ Object* CallStubCompiler::CompileCallConstant(Object* object, |
// Check that the receiver isn't a smi. |
if (check != NUMBER_CHECK) { |
- __ testl(rdx, Immediate(kSmiTagMask)); |
- __ j(zero, &miss); |
+ __ JumpIfSmi(rdx, &miss); |
} |
// Make sure that it's okay not to patch the on stack receiver |
@@ -738,8 +732,7 @@ Object* CallStubCompiler::CompileCallConstant(Object* object, |
case NUMBER_CHECK: { |
Label fast; |
// Check that the object is a smi or a heap number. |
- __ testl(rdx, Immediate(kSmiTagMask)); |
- __ j(zero, &fast); |
+ __ JumpIfSmi(rdx, &fast); |
__ CmpObjectType(rdx, HEAP_NUMBER_TYPE, rcx); |
__ j(not_equal, &miss); |
__ bind(&fast); |
@@ -830,8 +823,7 @@ Object* CallStubCompiler::CompileCallField(Object* object, |
__ movq(rdx, Operand(rsp, (argc + 1) * kPointerSize)); |
// Check that the receiver isn't a smi. |
- __ testl(rdx, Immediate(kSmiTagMask)); |
- __ j(zero, &miss); |
+ __ JumpIfSmi(rdx, &miss); |
// Do the right check and compute the holder register. |
Register reg = |
@@ -841,8 +833,7 @@ Object* CallStubCompiler::CompileCallField(Object* object, |
GenerateFastPropertyLoad(masm(), rdi, reg, holder, index); |
// Check that the function really is a function. |
- __ testl(rdi, Immediate(kSmiTagMask)); |
- __ j(zero, &miss); |
+ __ JumpIfSmi(rdi, &miss); |
__ CmpObjectType(rdi, JS_FUNCTION_TYPE, rbx); |
__ j(not_equal, &miss); |
@@ -899,8 +890,7 @@ Object* CallStubCompiler::CompileCallInterceptor(Object* object, |
__ movq(rdx, Operand(rsp, (argc + 1) * kPointerSize)); |
// Check that the function really is a function. |
- __ testl(rax, Immediate(kSmiTagMask)); |
- __ j(zero, &miss); |
+ __ JumpIfSmi(rax, &miss); |
__ CmpObjectType(rax, JS_FUNCTION_TYPE, rbx); |
__ j(not_equal, &miss); |
@@ -952,8 +942,7 @@ Object* CallStubCompiler::CompileCallGlobal(JSObject* object, |
// object which can only happen for contextual calls. In this case, |
// the receiver cannot be a smi. |
if (object != holder) { |
- __ testl(rdx, Immediate(kSmiTagMask)); |
- __ j(zero, &miss); |
+ __ JumpIfSmi(rdx, &miss); |
} |
// Check that the maps haven't changed. |
@@ -1112,8 +1101,7 @@ Object* LoadStubCompiler::CompileLoadGlobal(JSObject* object, |
// object which can only happen for contextual loads. In this case, |
// the receiver cannot be a smi. |
if (object != holder) { |
- __ testl(rax, Immediate(kSmiTagMask)); |
- __ j(zero, &miss); |
+ __ JumpIfSmi(rax, &miss); |
} |
// Check that the maps haven't changed. |
@@ -1335,8 +1323,7 @@ Object* StoreStubCompiler::CompileStoreCallback(JSObject* object, |
__ movq(rbx, Operand(rsp, 1 * kPointerSize)); |
// Check that the object isn't a smi. |
- __ testl(rbx, Immediate(kSmiTagMask)); |
- __ j(zero, &miss); |
+ __ JumpIfSmi(rbx, &miss); |
// Check that the map of the object hasn't changed. |
__ Cmp(FieldOperand(rbx, HeapObject::kMapOffset), |
@@ -1424,8 +1411,7 @@ Object* StoreStubCompiler::CompileStoreInterceptor(JSObject* receiver, |
__ movq(rbx, Operand(rsp, 1 * kPointerSize)); |
// Check that the object isn't a smi. |
- __ testl(rbx, Immediate(kSmiTagMask)); |
- __ j(zero, &miss); |
+ __ JumpIfSmi(rbx, &miss); |
// Check that the map of the object hasn't changed. |
__ Cmp(FieldOperand(rbx, HeapObject::kMapOffset), |
@@ -1631,8 +1617,7 @@ void StubCompiler::GenerateLoadCallback(JSObject* object, |
String* name, |
Label* miss) { |
// Check that the receiver isn't a smi. |
- __ testl(receiver, Immediate(kSmiTagMask)); |
- __ j(zero, miss); |
+ __ JumpIfSmi(receiver, miss); |
// Check that the maps haven't changed. |
Register reg = |
@@ -1701,8 +1686,7 @@ void StubCompiler::GenerateLoadField(JSObject* object, |
String* name, |
Label* miss) { |
// Check that the receiver isn't a smi. |
- __ testl(receiver, Immediate(kSmiTagMask)); |
- __ j(zero, miss); |
+ __ JumpIfSmi(receiver, miss); |
// Check the prototype chain. |
Register reg = |
@@ -1724,8 +1708,7 @@ void StubCompiler::GenerateLoadConstant(JSObject* object, |
String* name, |
Label* miss) { |
// Check that the receiver isn't a smi. |
- __ testl(receiver, Immediate(kSmiTagMask)); |
- __ j(zero, miss); |
+ __ JumpIfSmi(receiver, miss); |
// Check that the maps haven't changed. |
Register reg = |
@@ -1766,8 +1749,7 @@ Object* ConstructStubCompiler::CompileConstructStub( |
// Load the initial map and verify that it is in fact a map. |
__ movq(rbx, FieldOperand(rdi, JSFunction::kPrototypeOrInitialMapOffset)); |
// Will both indicate a NULL and a Smi. |
- __ testq(rbx, Immediate(kSmiTagMask)); |
- __ j(zero, &generic_stub_call); |
+ __ JumpIfSmi(rbx, &generic_stub_call); |
__ CmpObjectType(rbx, MAP_TYPE, rcx); |
__ j(not_equal, &generic_stub_call); |