| OLD | NEW |
| 1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
| 2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
| 3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
| 4 // met: | 4 // met: |
| 5 // | 5 // |
| 6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
| 7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
| 8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
| 9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
| 10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
| (...skipping 157 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 168 if (info()->IsOptimizing()) { | 168 if (info()->IsOptimizing()) { |
| 169 ProfileEntryHookStub::MaybeCallEntryHook(masm_); | 169 ProfileEntryHookStub::MaybeCallEntryHook(masm_); |
| 170 | 170 |
| 171 #ifdef DEBUG | 171 #ifdef DEBUG |
| 172 if (strlen(FLAG_stop_at) > 0 && | 172 if (strlen(FLAG_stop_at) > 0 && |
| 173 info_->function()->name()->IsUtf8EqualTo(CStrVector(FLAG_stop_at))) { | 173 info_->function()->name()->IsUtf8EqualTo(CStrVector(FLAG_stop_at))) { |
| 174 __ int3(); | 174 __ int3(); |
| 175 } | 175 } |
| 176 #endif | 176 #endif |
| 177 | 177 |
| 178 // Classic mode functions and builtins need to replace the receiver with the | 178 // Sloppy mode functions and builtins need to replace the receiver with the |
| 179 // global proxy when called as functions (without an explicit receiver | 179 // global proxy when called as functions (without an explicit receiver |
| 180 // object). | 180 // object). |
| 181 if (info_->this_has_uses() && | 181 if (info_->this_has_uses() && |
| 182 info_->is_classic_mode() && | 182 info_->is_sloppy_mode() && |
| 183 !info_->is_native()) { | 183 !info_->is_native()) { |
| 184 Label ok; | 184 Label ok; |
| 185 // +1 for return address. | 185 // +1 for return address. |
| 186 int receiver_offset = (scope()->num_parameters() + 1) * kPointerSize; | 186 int receiver_offset = (scope()->num_parameters() + 1) * kPointerSize; |
| 187 __ mov(ecx, Operand(esp, receiver_offset)); | 187 __ mov(ecx, Operand(esp, receiver_offset)); |
| 188 | 188 |
| 189 __ cmp(ecx, isolate()->factory()->undefined_value()); | 189 __ cmp(ecx, isolate()->factory()->undefined_value()); |
| 190 __ j(not_equal, &ok, Label::kNear); | 190 __ j(not_equal, &ok, Label::kNear); |
| 191 | 191 |
| 192 __ mov(ecx, GlobalObjectOperand()); | 192 __ mov(ecx, GlobalObjectOperand()); |
| (...skipping 3194 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3387 case EXTERNAL_FLOAT64_ELEMENTS: | 3387 case EXTERNAL_FLOAT64_ELEMENTS: |
| 3388 case FLOAT32_ELEMENTS: | 3388 case FLOAT32_ELEMENTS: |
| 3389 case FLOAT64_ELEMENTS: | 3389 case FLOAT64_ELEMENTS: |
| 3390 case FAST_SMI_ELEMENTS: | 3390 case FAST_SMI_ELEMENTS: |
| 3391 case FAST_ELEMENTS: | 3391 case FAST_ELEMENTS: |
| 3392 case FAST_DOUBLE_ELEMENTS: | 3392 case FAST_DOUBLE_ELEMENTS: |
| 3393 case FAST_HOLEY_SMI_ELEMENTS: | 3393 case FAST_HOLEY_SMI_ELEMENTS: |
| 3394 case FAST_HOLEY_ELEMENTS: | 3394 case FAST_HOLEY_ELEMENTS: |
| 3395 case FAST_HOLEY_DOUBLE_ELEMENTS: | 3395 case FAST_HOLEY_DOUBLE_ELEMENTS: |
| 3396 case DICTIONARY_ELEMENTS: | 3396 case DICTIONARY_ELEMENTS: |
| 3397 case NON_STRICT_ARGUMENTS_ELEMENTS: | 3397 case SLOPPY_ARGUMENTS_ELEMENTS: |
| 3398 UNREACHABLE(); | 3398 UNREACHABLE(); |
| 3399 break; | 3399 break; |
| 3400 } | 3400 } |
| 3401 } | 3401 } |
| 3402 } | 3402 } |
| 3403 | 3403 |
| 3404 | 3404 |
| 3405 void LCodeGen::DoLoadKeyedFixedDoubleArray(LLoadKeyed* instr) { | 3405 void LCodeGen::DoLoadKeyedFixedDoubleArray(LLoadKeyed* instr) { |
| 3406 if (instr->hydrogen()->RequiresHoleCheck()) { | 3406 if (instr->hydrogen()->RequiresHoleCheck()) { |
| 3407 int offset = FixedDoubleArray::kHeaderSize - kHeapObjectTag + | 3407 int offset = FixedDoubleArray::kHeaderSize - kHeapObjectTag + |
| (...skipping 1091 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4499 case EXTERNAL_FLOAT64_ELEMENTS: | 4499 case EXTERNAL_FLOAT64_ELEMENTS: |
| 4500 case FLOAT32_ELEMENTS: | 4500 case FLOAT32_ELEMENTS: |
| 4501 case FLOAT64_ELEMENTS: | 4501 case FLOAT64_ELEMENTS: |
| 4502 case FAST_SMI_ELEMENTS: | 4502 case FAST_SMI_ELEMENTS: |
| 4503 case FAST_ELEMENTS: | 4503 case FAST_ELEMENTS: |
| 4504 case FAST_DOUBLE_ELEMENTS: | 4504 case FAST_DOUBLE_ELEMENTS: |
| 4505 case FAST_HOLEY_SMI_ELEMENTS: | 4505 case FAST_HOLEY_SMI_ELEMENTS: |
| 4506 case FAST_HOLEY_ELEMENTS: | 4506 case FAST_HOLEY_ELEMENTS: |
| 4507 case FAST_HOLEY_DOUBLE_ELEMENTS: | 4507 case FAST_HOLEY_DOUBLE_ELEMENTS: |
| 4508 case DICTIONARY_ELEMENTS: | 4508 case DICTIONARY_ELEMENTS: |
| 4509 case NON_STRICT_ARGUMENTS_ELEMENTS: | 4509 case SLOPPY_ARGUMENTS_ELEMENTS: |
| 4510 UNREACHABLE(); | 4510 UNREACHABLE(); |
| 4511 break; | 4511 break; |
| 4512 } | 4512 } |
| 4513 } | 4513 } |
| 4514 } | 4514 } |
| 4515 | 4515 |
| 4516 | 4516 |
| 4517 void LCodeGen::DoStoreKeyedFixedDoubleArray(LStoreKeyed* instr) { | 4517 void LCodeGen::DoStoreKeyedFixedDoubleArray(LStoreKeyed* instr) { |
| 4518 ExternalReference canonical_nan_reference = | 4518 ExternalReference canonical_nan_reference = |
| 4519 ExternalReference::address_of_canonical_non_hole_nan(); | 4519 ExternalReference::address_of_canonical_non_hole_nan(); |
| (...skipping 1750 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6270 FixedArray::kHeaderSize - kPointerSize)); | 6270 FixedArray::kHeaderSize - kPointerSize)); |
| 6271 __ bind(&done); | 6271 __ bind(&done); |
| 6272 } | 6272 } |
| 6273 | 6273 |
| 6274 | 6274 |
| 6275 #undef __ | 6275 #undef __ |
| 6276 | 6276 |
| 6277 } } // namespace v8::internal | 6277 } } // namespace v8::internal |
| 6278 | 6278 |
| 6279 #endif // V8_TARGET_ARCH_IA32 | 6279 #endif // V8_TARGET_ARCH_IA32 |
| OLD | NEW |