| Index: src/ia32/stub-cache-ia32.cc
|
| ===================================================================
|
| --- src/ia32/stub-cache-ia32.cc (revision 7864)
|
| +++ src/ia32/stub-cache-ia32.cc (working copy)
|
| @@ -57,7 +57,7 @@
|
|
|
| // Check that the key in the entry matches the name.
|
| __ cmp(name, Operand::StaticArray(offset, times_2, key_offset));
|
| - __ j(not_equal, &miss, not_taken);
|
| + __ j(not_equal, &miss);
|
|
|
| // Check that the flags match what we're looking for.
|
| __ mov(offset, FieldOperand(extra, Code::kFlagsOffset));
|
| @@ -76,7 +76,7 @@
|
|
|
| // Check that the key in the entry matches the name.
|
| __ cmp(name, Operand::StaticArray(offset, times_2, key_offset));
|
| - __ j(not_equal, &miss, not_taken);
|
| + __ j(not_equal, &miss);
|
|
|
| // Get the code entry from the cache.
|
| __ mov(offset, Operand::StaticArray(offset, times_2, value_offset));
|
| @@ -126,11 +126,11 @@
|
| // Bail out if the receiver has a named interceptor or requires access checks.
|
| __ test_b(FieldOperand(r0, Map::kBitFieldOffset),
|
| kInterceptorOrAccessCheckNeededMask);
|
| - __ j(not_zero, miss_label, not_taken);
|
| + __ j(not_zero, miss_label);
|
|
|
| // Check that receiver is a JSObject.
|
| __ CmpInstanceType(r0, FIRST_JS_OBJECT_TYPE);
|
| - __ j(below, miss_label, not_taken);
|
| + __ j(below, miss_label);
|
|
|
| // Load properties array.
|
| Register properties = r0;
|
| @@ -189,7 +189,7 @@
|
|
|
| // Check that the receiver isn't a smi.
|
| __ test(receiver, Immediate(kSmiTagMask));
|
| - __ j(zero, &miss, not_taken);
|
| + __ j(zero, &miss);
|
|
|
| // Get the map of the receiver and compute the hash.
|
| __ mov(scratch, FieldOperand(name, String::kHashFieldOffset));
|
| @@ -250,11 +250,11 @@
|
| Label* miss_label) {
|
| // Check that the receiver isn't a smi.
|
| __ test(receiver, Immediate(kSmiTagMask));
|
| - __ j(zero, miss_label, not_taken);
|
| + __ j(zero, miss_label);
|
|
|
| // Check that the object is a JS array.
|
| __ CmpObjectType(receiver, JS_ARRAY_TYPE, scratch);
|
| - __ j(not_equal, miss_label, not_taken);
|
| + __ j(not_equal, miss_label);
|
|
|
| // Load length directly from the JS array.
|
| __ mov(eax, FieldOperand(receiver, JSArray::kLengthOffset));
|
| @@ -271,14 +271,14 @@
|
| Label* non_string_object) {
|
| // Check that the object isn't a smi.
|
| __ test(receiver, Immediate(kSmiTagMask));
|
| - __ j(zero, smi, not_taken);
|
| + __ j(zero, smi);
|
|
|
| // Check that the object is a string.
|
| __ mov(scratch, FieldOperand(receiver, HeapObject::kMapOffset));
|
| __ movzx_b(scratch, FieldOperand(scratch, Map::kInstanceTypeOffset));
|
| ASSERT(kNotStringTag != 0);
|
| __ test(scratch, Immediate(kNotStringTag));
|
| - __ j(not_zero, non_string_object, not_taken);
|
| + __ j(not_zero, non_string_object);
|
| }
|
|
|
|
|
| @@ -303,7 +303,7 @@
|
| // Check if the object is a JSValue wrapper.
|
| __ bind(&check_wrapper);
|
| __ cmp(scratch1, JS_VALUE_TYPE);
|
| - __ j(not_equal, miss, not_taken);
|
| + __ j(not_equal, miss);
|
|
|
| // Check if the wrapped value is a string and load the length
|
| // directly if it is.
|
| @@ -508,7 +508,7 @@
|
|
|
| // Check that the receiver isn't a smi.
|
| __ test(receiver, Immediate(kSmiTagMask));
|
| - __ j(zero, miss, not_taken);
|
| + __ j(zero, miss);
|
|
|
| CallOptimization optimization(lookup);
|
|
|
| @@ -725,12 +725,12 @@
|
| Label* miss_label) {
|
| // Check that the object isn't a smi.
|
| __ test(receiver_reg, Immediate(kSmiTagMask));
|
| - __ j(zero, miss_label, not_taken);
|
| + __ j(zero, miss_label);
|
|
|
| // Check that the map of the object hasn't changed.
|
| __ cmp(FieldOperand(receiver_reg, HeapObject::kMapOffset),
|
| Immediate(Handle<Map>(object->map())));
|
| - __ j(not_equal, miss_label, not_taken);
|
| + __ j(not_equal, miss_label);
|
|
|
| // Perform global security token check if needed.
|
| if (object->IsJSGlobalProxy()) {
|
| @@ -820,7 +820,7 @@
|
| __ cmp(Operand::Cell(Handle<JSGlobalPropertyCell>(cell)),
|
| Immediate(masm->isolate()->factory()->the_hole_value()));
|
| }
|
| - __ j(not_equal, miss, not_taken);
|
| + __ j(not_equal, miss);
|
| return cell;
|
| }
|
|
|
| @@ -925,7 +925,7 @@
|
| __ mov(scratch1, FieldOperand(reg, HeapObject::kMapOffset));
|
| __ cmp(Operand(scratch1), Immediate(Handle<Map>(current->map())));
|
| // Branch on the result of the map check.
|
| - __ j(not_equal, miss, not_taken);
|
| + __ j(not_equal, miss);
|
| // Check access rights to the global object. This has to happen
|
| // after the map check so that we know that the object is
|
| // actually a global object.
|
| @@ -945,7 +945,7 @@
|
| __ cmp(FieldOperand(reg, HeapObject::kMapOffset),
|
| Immediate(Handle<Map>(current->map())));
|
| // Branch on the result of the map check.
|
| - __ j(not_equal, miss, not_taken);
|
| + __ j(not_equal, miss);
|
| // Check access rights to the global object. This has to happen
|
| // after the map check so that we know that the object is
|
| // actually a global object.
|
| @@ -972,7 +972,7 @@
|
| // Check the holder map.
|
| __ cmp(FieldOperand(reg, HeapObject::kMapOffset),
|
| Immediate(Handle<Map>(holder->map())));
|
| - __ j(not_equal, miss, not_taken);
|
| + __ j(not_equal, miss);
|
|
|
| // Perform security check for access to the global object.
|
| ASSERT(holder->IsJSGlobalProxy() || !holder->IsAccessCheckNeeded());
|
| @@ -1007,7 +1007,7 @@
|
| Label* miss) {
|
| // Check that the receiver isn't a smi.
|
| __ test(receiver, Immediate(kSmiTagMask));
|
| - __ j(zero, miss, not_taken);
|
| + __ j(zero, miss);
|
|
|
| // Check the prototype chain.
|
| Register reg =
|
| @@ -1032,7 +1032,7 @@
|
| Label* miss) {
|
| // Check that the receiver isn't a smi.
|
| __ test(receiver, Immediate(kSmiTagMask));
|
| - __ j(zero, miss, not_taken);
|
| + __ j(zero, miss);
|
|
|
| // Check that the maps haven't changed.
|
| Register reg =
|
| @@ -1099,7 +1099,7 @@
|
| Label* miss) {
|
| // Check that the receiver isn't a smi.
|
| __ test(receiver, Immediate(kSmiTagMask));
|
| - __ j(zero, miss, not_taken);
|
| + __ j(zero, miss);
|
|
|
| // Check that the maps haven't changed.
|
| CheckPrototypes(object, receiver, holder,
|
| @@ -1126,7 +1126,7 @@
|
|
|
| // Check that the receiver isn't a smi.
|
| __ test(receiver, Immediate(kSmiTagMask));
|
| - __ j(zero, miss, not_taken);
|
| + __ j(zero, miss);
|
|
|
| // So far the most popular follow ups for interceptor loads are FIELD
|
| // and CALLBACKS, so inline only them, other cases may be added
|
| @@ -1255,7 +1255,7 @@
|
| void CallStubCompiler::GenerateNameCheck(String* name, Label* miss) {
|
| if (kind_ == Code::KEYED_CALL_IC) {
|
| __ cmp(Operand(ecx), Immediate(Handle<String>(name)));
|
| - __ j(not_equal, miss, not_taken);
|
| + __ j(not_equal, miss);
|
| }
|
| }
|
|
|
| @@ -1277,7 +1277,7 @@
|
| // the receiver cannot be a smi.
|
| if (object != holder) {
|
| __ test(edx, Immediate(kSmiTagMask));
|
| - __ j(zero, miss, not_taken);
|
| + __ j(zero, miss);
|
| }
|
|
|
| // Check that the maps haven't changed.
|
| @@ -1304,17 +1304,17 @@
|
| // function can all use this call IC. Before we load through the
|
| // function, we have to verify that it still is a function.
|
| __ test(edi, Immediate(kSmiTagMask));
|
| - __ j(zero, miss, not_taken);
|
| + __ j(zero, miss);
|
| __ CmpObjectType(edi, JS_FUNCTION_TYPE, ebx);
|
| - __ j(not_equal, miss, not_taken);
|
| + __ j(not_equal, miss);
|
|
|
| // Check the shared function info. Make sure it hasn't changed.
|
| __ cmp(FieldOperand(edi, JSFunction::kSharedFunctionInfoOffset),
|
| Immediate(Handle<SharedFunctionInfo>(function->shared())));
|
| - __ j(not_equal, miss, not_taken);
|
| + __ j(not_equal, miss);
|
| } else {
|
| __ cmp(Operand(edi), Immediate(Handle<JSFunction>(function)));
|
| - __ j(not_equal, miss, not_taken);
|
| + __ j(not_equal, miss);
|
| }
|
| }
|
|
|
| @@ -1352,7 +1352,7 @@
|
|
|
| // Check that the receiver isn't a smi.
|
| __ test(edx, Immediate(kSmiTagMask));
|
| - __ j(zero, &miss, not_taken);
|
| + __ j(zero, &miss);
|
|
|
| // Do the right check and compute the holder register.
|
| Register reg = CheckPrototypes(object, edx, holder, ebx, eax, edi,
|
| @@ -1362,9 +1362,9 @@
|
|
|
| // Check that the function really is a function.
|
| __ test(edi, Immediate(kSmiTagMask));
|
| - __ j(zero, &miss, not_taken);
|
| + __ j(zero, &miss);
|
| __ CmpObjectType(edi, JS_FUNCTION_TYPE, ebx);
|
| - __ j(not_equal, &miss, not_taken);
|
| + __ j(not_equal, &miss);
|
|
|
| // Patch the receiver on the stack with the global proxy if
|
| // necessary.
|
| @@ -2129,7 +2129,7 @@
|
|
|
| // Check that the receiver isn't a smi.
|
| __ test(edx, Immediate(kSmiTagMask));
|
| - __ j(zero, &miss_before_stack_reserved, not_taken);
|
| + __ j(zero, &miss_before_stack_reserved);
|
|
|
| Counters* counters = isolate()->counters();
|
| __ IncrementCounter(counters->call_const(), 1);
|
| @@ -2197,7 +2197,7 @@
|
| // Check that the receiver isn't a smi.
|
| if (check != NUMBER_CHECK) {
|
| __ test(edx, Immediate(kSmiTagMask));
|
| - __ j(zero, &miss, not_taken);
|
| + __ j(zero, &miss);
|
| }
|
|
|
| // Make sure that it's okay not to patch the on stack receiver
|
| @@ -2229,7 +2229,7 @@
|
| } else {
|
| // Check that the object is a string or a symbol.
|
| __ CmpObjectType(edx, FIRST_NONSTRING_TYPE, eax);
|
| - __ j(above_equal, &miss, not_taken);
|
| + __ j(above_equal, &miss);
|
| // Check that the maps starting from the prototype haven't changed.
|
| GenerateDirectLoadGlobalFunctionPrototype(
|
| masm(), Context::STRING_FUNCTION_INDEX, eax, &miss);
|
| @@ -2247,9 +2247,9 @@
|
| Label fast;
|
| // Check that the object is a smi or a heap number.
|
| __ test(edx, Immediate(kSmiTagMask));
|
| - __ j(zero, &fast, taken);
|
| + __ j(zero, &fast);
|
| __ CmpObjectType(edx, HEAP_NUMBER_TYPE, eax);
|
| - __ j(not_equal, &miss, not_taken);
|
| + __ j(not_equal, &miss);
|
| __ bind(&fast);
|
| // Check that the maps starting from the prototype haven't changed.
|
| GenerateDirectLoadGlobalFunctionPrototype(
|
| @@ -2269,9 +2269,9 @@
|
| Label fast;
|
| // Check that the object is a boolean.
|
| __ cmp(edx, factory()->true_value());
|
| - __ j(equal, &fast, taken);
|
| + __ j(equal, &fast);
|
| __ cmp(edx, factory()->false_value());
|
| - __ j(not_equal, &miss, not_taken);
|
| + __ j(not_equal, &miss);
|
| __ bind(&fast);
|
| // Check that the maps starting from the prototype haven't changed.
|
| GenerateDirectLoadGlobalFunctionPrototype(
|
| @@ -2339,9 +2339,9 @@
|
|
|
| // Check that the function really is a function.
|
| __ test(eax, Immediate(kSmiTagMask));
|
| - __ j(zero, &miss, not_taken);
|
| + __ j(zero, &miss);
|
| __ CmpObjectType(eax, JS_FUNCTION_TYPE, ebx);
|
| - __ j(not_equal, &miss, not_taken);
|
| + __ j(not_equal, &miss);
|
|
|
| // Patch the receiver on the stack with the global proxy if
|
| // necessary.
|
| @@ -2478,12 +2478,12 @@
|
|
|
| // Check that the object isn't a smi.
|
| __ test(edx, Immediate(kSmiTagMask));
|
| - __ j(zero, &miss, not_taken);
|
| + __ j(zero, &miss);
|
|
|
| // Check that the map of the object hasn't changed.
|
| __ cmp(FieldOperand(edx, HeapObject::kMapOffset),
|
| Immediate(Handle<Map>(object->map())));
|
| - __ j(not_equal, &miss, not_taken);
|
| + __ j(not_equal, &miss);
|
|
|
| // Perform global security token check if needed.
|
| if (object->IsJSGlobalProxy()) {
|
| @@ -2528,12 +2528,12 @@
|
|
|
| // Check that the object isn't a smi.
|
| __ test(edx, Immediate(kSmiTagMask));
|
| - __ j(zero, &miss, not_taken);
|
| + __ j(zero, &miss);
|
|
|
| // Check that the map of the object hasn't changed.
|
| __ cmp(FieldOperand(edx, HeapObject::kMapOffset),
|
| Immediate(Handle<Map>(receiver->map())));
|
| - __ j(not_equal, &miss, not_taken);
|
| + __ j(not_equal, &miss);
|
|
|
| // Perform global security token check if needed.
|
| if (receiver->IsJSGlobalProxy()) {
|
| @@ -2580,7 +2580,7 @@
|
| // Check that the map of the global has not changed.
|
| __ cmp(FieldOperand(edx, HeapObject::kMapOffset),
|
| Immediate(Handle<Map>(object->map())));
|
| - __ j(not_equal, &miss, not_taken);
|
| + __ j(not_equal, &miss);
|
|
|
|
|
| // Compute the cell operand to use.
|
| @@ -2633,7 +2633,7 @@
|
|
|
| // Check that the name has not changed.
|
| __ cmp(Operand(ecx), Immediate(Handle<String>(name)));
|
| - __ j(not_equal, &miss, not_taken);
|
| + __ j(not_equal, &miss);
|
|
|
| // Generate store field code. Trashes the name register.
|
| GenerateStoreField(masm(),
|
| @@ -2666,30 +2666,30 @@
|
|
|
| // Check that the receiver isn't a smi.
|
| __ test(edx, Immediate(kSmiTagMask));
|
| - __ j(zero, &miss, not_taken);
|
| + __ j(zero, &miss);
|
|
|
| // Check that the map matches.
|
| __ cmp(FieldOperand(edx, HeapObject::kMapOffset),
|
| Immediate(Handle<Map>(receiver->map())));
|
| - __ j(not_equal, &miss, not_taken);
|
| + __ j(not_equal, &miss);
|
|
|
| // Check that the key is a smi.
|
| __ test(ecx, Immediate(kSmiTagMask));
|
| - __ j(not_zero, &miss, not_taken);
|
| + __ j(not_zero, &miss);
|
|
|
| // Get the elements array and make sure it is a fast element array, not 'cow'.
|
| __ mov(edi, FieldOperand(edx, JSObject::kElementsOffset));
|
| __ cmp(FieldOperand(edi, HeapObject::kMapOffset),
|
| Immediate(factory()->fixed_array_map()));
|
| - __ j(not_equal, &miss, not_taken);
|
| + __ j(not_equal, &miss);
|
|
|
| // Check that the key is within bounds.
|
| if (receiver->IsJSArray()) {
|
| __ cmp(ecx, FieldOperand(edx, JSArray::kLengthOffset)); // Compare smis.
|
| - __ j(above_equal, &miss, not_taken);
|
| + __ j(above_equal, &miss);
|
| } else {
|
| __ cmp(ecx, FieldOperand(edi, FixedArray::kLengthOffset)); // Compare smis.
|
| - __ j(above_equal, &miss, not_taken);
|
| + __ j(above_equal, &miss);
|
| }
|
|
|
| // Do the store and update the write barrier. Make sure to preserve
|
| @@ -2723,7 +2723,7 @@
|
|
|
| // Check that the receiver isn't a smi.
|
| __ test(eax, Immediate(kSmiTagMask));
|
| - __ j(zero, &miss, not_taken);
|
| + __ j(zero, &miss);
|
|
|
| ASSERT(last->IsGlobalObject() || last->HasFastProperties());
|
|
|
| @@ -2876,7 +2876,7 @@
|
| // the receiver cannot be a smi.
|
| if (object != holder) {
|
| __ test(eax, Immediate(kSmiTagMask));
|
| - __ j(zero, &miss, not_taken);
|
| + __ j(zero, &miss);
|
| }
|
|
|
| // Check that the maps haven't changed.
|
| @@ -2893,7 +2893,7 @@
|
| // Check for deleted property if property can actually be deleted.
|
| if (!is_dont_delete) {
|
| __ cmp(ebx, factory()->the_hole_value());
|
| - __ j(equal, &miss, not_taken);
|
| + __ j(equal, &miss);
|
| } else if (FLAG_debug_code) {
|
| __ cmp(ebx, factory()->the_hole_value());
|
| __ Check(not_equal, "DontDelete cells can't contain the hole");
|
| @@ -2929,7 +2929,7 @@
|
|
|
| // Check that the name has not changed.
|
| __ cmp(Operand(eax), Immediate(Handle<String>(name)));
|
| - __ j(not_equal, &miss, not_taken);
|
| + __ j(not_equal, &miss);
|
|
|
| GenerateLoadField(receiver, holder, edx, ebx, ecx, edi, index, name, &miss);
|
|
|
| @@ -2959,7 +2959,7 @@
|
|
|
| // Check that the name has not changed.
|
| __ cmp(Operand(eax), Immediate(Handle<String>(name)));
|
| - __ j(not_equal, &miss, not_taken);
|
| + __ j(not_equal, &miss);
|
|
|
| MaybeObject* result = GenerateLoadCallback(receiver, holder, edx, eax, ebx,
|
| ecx, edi, callback, name, &miss);
|
| @@ -2994,7 +2994,7 @@
|
|
|
| // Check that the name has not changed.
|
| __ cmp(Operand(eax), Immediate(Handle<String>(name)));
|
| - __ j(not_equal, &miss, not_taken);
|
| + __ j(not_equal, &miss);
|
|
|
| GenerateLoadConstant(receiver, holder, edx, ebx, ecx, edi,
|
| value, name, &miss);
|
| @@ -3022,7 +3022,7 @@
|
|
|
| // Check that the name has not changed.
|
| __ cmp(Operand(eax), Immediate(Handle<String>(name)));
|
| - __ j(not_equal, &miss, not_taken);
|
| + __ j(not_equal, &miss);
|
|
|
| LookupResult lookup;
|
| LookupPostInterceptor(holder, name, &lookup);
|
| @@ -3058,7 +3058,7 @@
|
|
|
| // Check that the name has not changed.
|
| __ cmp(Operand(eax), Immediate(Handle<String>(name)));
|
| - __ j(not_equal, &miss, not_taken);
|
| + __ j(not_equal, &miss);
|
|
|
| GenerateLoadArrayLength(masm(), edx, ecx, &miss);
|
| __ bind(&miss);
|
| @@ -3083,7 +3083,7 @@
|
|
|
| // Check that the name has not changed.
|
| __ cmp(Operand(eax), Immediate(Handle<String>(name)));
|
| - __ j(not_equal, &miss, not_taken);
|
| + __ j(not_equal, &miss);
|
|
|
| GenerateLoadStringLength(masm(), edx, ecx, ebx, &miss, true);
|
| __ bind(&miss);
|
| @@ -3108,7 +3108,7 @@
|
|
|
| // Check that the name has not changed.
|
| __ cmp(Operand(eax), Immediate(Handle<String>(name)));
|
| - __ j(not_equal, &miss, not_taken);
|
| + __ j(not_equal, &miss);
|
|
|
| GenerateLoadFunctionPrototype(masm(), edx, ecx, ebx, &miss);
|
| __ bind(&miss);
|
| @@ -3130,16 +3130,16 @@
|
|
|
| // Check that the receiver isn't a smi.
|
| __ test(edx, Immediate(kSmiTagMask));
|
| - __ j(zero, &miss, not_taken);
|
| + __ j(zero, &miss);
|
|
|
| // Check that the map matches.
|
| __ cmp(FieldOperand(edx, HeapObject::kMapOffset),
|
| Immediate(Handle<Map>(receiver->map())));
|
| - __ j(not_equal, &miss, not_taken);
|
| + __ j(not_equal, &miss);
|
|
|
| // Check that the key is a smi.
|
| __ test(eax, Immediate(kSmiTagMask));
|
| - __ j(not_zero, &miss, not_taken);
|
| + __ j(not_zero, &miss);
|
|
|
| // Get the elements array.
|
| __ mov(ecx, FieldOperand(edx, JSObject::kElementsOffset));
|
| @@ -3147,13 +3147,13 @@
|
|
|
| // Check that the key is within bounds.
|
| __ cmp(eax, FieldOperand(ecx, FixedArray::kLengthOffset));
|
| - __ j(above_equal, &miss, not_taken);
|
| + __ j(above_equal, &miss);
|
|
|
| // Load the result and make sure it's not the hole.
|
| __ mov(ebx, Operand(ecx, eax, times_2,
|
| FixedArray::kHeaderSize - kHeapObjectTag));
|
| __ cmp(ebx, factory()->the_hole_value());
|
| - __ j(equal, &miss, not_taken);
|
| + __ j(equal, &miss);
|
| __ mov(eax, ebx);
|
| __ ret(0);
|
|
|
| @@ -3182,7 +3182,7 @@
|
| __ mov(ebx, FieldOperand(edi, JSFunction::kSharedFunctionInfoOffset));
|
| __ mov(ebx, FieldOperand(ebx, SharedFunctionInfo::kDebugInfoOffset));
|
| __ cmp(ebx, factory()->undefined_value());
|
| - __ j(not_equal, &generic_stub_call, not_taken);
|
| + __ j(not_equal, &generic_stub_call);
|
| #endif
|
|
|
| // Load the initial map and verify that it is in fact a map.
|
| @@ -3315,11 +3315,11 @@
|
|
|
| // Check that the object isn't a smi.
|
| __ test(edx, Immediate(kSmiTagMask));
|
| - __ j(zero, &slow, not_taken);
|
| + __ j(zero, &slow);
|
|
|
| // Check that the key is a smi.
|
| __ test(eax, Immediate(kSmiTagMask));
|
| - __ j(not_zero, &slow, not_taken);
|
| + __ j(not_zero, &slow);
|
|
|
| // Check that the map matches.
|
| __ CheckMap(edx, Handle<Map>(receiver->map()), &slow, false);
|
|
|