| OLD | NEW | 
|     1 // Copyright 2013 the V8 project authors. All rights reserved. |     1 // Copyright 2013 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 136 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|   147   if (info()->IsOptimizing()) { |   147   if (info()->IsOptimizing()) { | 
|   148     ProfileEntryHookStub::MaybeCallEntryHook(masm_); |   148     ProfileEntryHookStub::MaybeCallEntryHook(masm_); | 
|   149  |   149  | 
|   150 #ifdef DEBUG |   150 #ifdef DEBUG | 
|   151     if (strlen(FLAG_stop_at) > 0 && |   151     if (strlen(FLAG_stop_at) > 0 && | 
|   152         info_->function()->name()->IsUtf8EqualTo(CStrVector(FLAG_stop_at))) { |   152         info_->function()->name()->IsUtf8EqualTo(CStrVector(FLAG_stop_at))) { | 
|   153       __ int3(); |   153       __ int3(); | 
|   154     } |   154     } | 
|   155 #endif |   155 #endif | 
|   156  |   156  | 
|   157     // Classic mode functions need to replace the receiver with the global proxy |   157     // Sloppy mode functions need to replace the receiver with the global proxy | 
|   158     // when called as functions (without an explicit receiver object). |   158     // when called as functions (without an explicit receiver object). | 
|   159     if (info_->this_has_uses() && |   159     if (info_->this_has_uses() && | 
|   160         info_->is_classic_mode() && |   160         info_->is_sloppy_mode() && | 
|   161         !info_->is_native()) { |   161         !info_->is_native()) { | 
|   162       Label ok; |   162       Label ok; | 
|   163       StackArgumentsAccessor args(rsp, scope()->num_parameters()); |   163       StackArgumentsAccessor args(rsp, scope()->num_parameters()); | 
|   164       __ movp(rcx, args.GetReceiverOperand()); |   164       __ movp(rcx, args.GetReceiverOperand()); | 
|   165  |   165  | 
|   166       __ CompareRoot(rcx, Heap::kUndefinedValueRootIndex); |   166       __ CompareRoot(rcx, Heap::kUndefinedValueRootIndex); | 
|   167       __ j(not_equal, &ok, Label::kNear); |   167       __ j(not_equal, &ok, Label::kNear); | 
|   168  |   168  | 
|   169       __ movp(rcx, GlobalObjectOperand()); |   169       __ movp(rcx, GlobalObjectOperand()); | 
|   170       __ movp(rcx, FieldOperand(rcx, GlobalObject::kGlobalReceiverOffset)); |   170       __ movp(rcx, FieldOperand(rcx, GlobalObject::kGlobalReceiverOffset)); | 
| (...skipping 2765 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  2936       case EXTERNAL_FLOAT64_ELEMENTS: |  2936       case EXTERNAL_FLOAT64_ELEMENTS: | 
|  2937       case FLOAT32_ELEMENTS: |  2937       case FLOAT32_ELEMENTS: | 
|  2938       case FLOAT64_ELEMENTS: |  2938       case FLOAT64_ELEMENTS: | 
|  2939       case FAST_ELEMENTS: |  2939       case FAST_ELEMENTS: | 
|  2940       case FAST_SMI_ELEMENTS: |  2940       case FAST_SMI_ELEMENTS: | 
|  2941       case FAST_DOUBLE_ELEMENTS: |  2941       case FAST_DOUBLE_ELEMENTS: | 
|  2942       case FAST_HOLEY_ELEMENTS: |  2942       case FAST_HOLEY_ELEMENTS: | 
|  2943       case FAST_HOLEY_SMI_ELEMENTS: |  2943       case FAST_HOLEY_SMI_ELEMENTS: | 
|  2944       case FAST_HOLEY_DOUBLE_ELEMENTS: |  2944       case FAST_HOLEY_DOUBLE_ELEMENTS: | 
|  2945       case DICTIONARY_ELEMENTS: |  2945       case DICTIONARY_ELEMENTS: | 
|  2946       case NON_STRICT_ARGUMENTS_ELEMENTS: |  2946       case SLOPPY_ARGUMENTS_ELEMENTS: | 
|  2947         UNREACHABLE(); |  2947         UNREACHABLE(); | 
|  2948         break; |  2948         break; | 
|  2949     } |  2949     } | 
|  2950   } |  2950   } | 
|  2951 } |  2951 } | 
|  2952  |  2952  | 
|  2953  |  2953  | 
|  2954 void LCodeGen::DoLoadKeyedFixedDoubleArray(LLoadKeyed* instr) { |  2954 void LCodeGen::DoLoadKeyedFixedDoubleArray(LLoadKeyed* instr) { | 
|  2955   XMMRegister result(ToDoubleRegister(instr->result())); |  2955   XMMRegister result(ToDoubleRegister(instr->result())); | 
|  2956   LOperand* key = instr->key(); |  2956   LOperand* key = instr->key(); | 
| (...skipping 1168 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  4125       case EXTERNAL_FLOAT64_ELEMENTS: |  4125       case EXTERNAL_FLOAT64_ELEMENTS: | 
|  4126       case FLOAT32_ELEMENTS: |  4126       case FLOAT32_ELEMENTS: | 
|  4127       case FLOAT64_ELEMENTS: |  4127       case FLOAT64_ELEMENTS: | 
|  4128       case FAST_ELEMENTS: |  4128       case FAST_ELEMENTS: | 
|  4129       case FAST_SMI_ELEMENTS: |  4129       case FAST_SMI_ELEMENTS: | 
|  4130       case FAST_DOUBLE_ELEMENTS: |  4130       case FAST_DOUBLE_ELEMENTS: | 
|  4131       case FAST_HOLEY_ELEMENTS: |  4131       case FAST_HOLEY_ELEMENTS: | 
|  4132       case FAST_HOLEY_SMI_ELEMENTS: |  4132       case FAST_HOLEY_SMI_ELEMENTS: | 
|  4133       case FAST_HOLEY_DOUBLE_ELEMENTS: |  4133       case FAST_HOLEY_DOUBLE_ELEMENTS: | 
|  4134       case DICTIONARY_ELEMENTS: |  4134       case DICTIONARY_ELEMENTS: | 
|  4135       case NON_STRICT_ARGUMENTS_ELEMENTS: |  4135       case SLOPPY_ARGUMENTS_ELEMENTS: | 
|  4136         UNREACHABLE(); |  4136         UNREACHABLE(); | 
|  4137         break; |  4137         break; | 
|  4138     } |  4138     } | 
|  4139   } |  4139   } | 
|  4140 } |  4140 } | 
|  4141  |  4141  | 
|  4142  |  4142  | 
|  4143 void LCodeGen::DoStoreKeyedFixedDoubleArray(LStoreKeyed* instr) { |  4143 void LCodeGen::DoStoreKeyedFixedDoubleArray(LStoreKeyed* instr) { | 
|  4144   XMMRegister value = ToDoubleRegister(instr->value()); |  4144   XMMRegister value = ToDoubleRegister(instr->value()); | 
|  4145   LOperand* key = instr->key(); |  4145   LOperand* key = instr->key(); | 
| (...skipping 1432 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  5578                                FixedArray::kHeaderSize - kPointerSize)); |  5578                                FixedArray::kHeaderSize - kPointerSize)); | 
|  5579   __ bind(&done); |  5579   __ bind(&done); | 
|  5580 } |  5580 } | 
|  5581  |  5581  | 
|  5582  |  5582  | 
|  5583 #undef __ |  5583 #undef __ | 
|  5584  |  5584  | 
|  5585 } }  // namespace v8::internal |  5585 } }  // namespace v8::internal | 
|  5586  |  5586  | 
|  5587 #endif  // V8_TARGET_ARCH_X64 |  5587 #endif  // V8_TARGET_ARCH_X64 | 
| OLD | NEW |