OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "v8.h" | 5 #include "v8.h" |
6 | 6 |
7 #if V8_TARGET_ARCH_IA32 | 7 #if V8_TARGET_ARCH_IA32 |
8 | 8 |
9 #include "ia32/lithium-codegen-ia32.h" | 9 #include "ia32/lithium-codegen-ia32.h" |
10 #include "ic.h" | 10 #include "ic.h" |
(...skipping 4247 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4258 } | 4258 } |
4259 | 4259 |
4260 | 4260 |
4261 void LCodeGen::DoCallNew(LCallNew* instr) { | 4261 void LCodeGen::DoCallNew(LCallNew* instr) { |
4262 ASSERT(ToRegister(instr->context()).is(esi)); | 4262 ASSERT(ToRegister(instr->context()).is(esi)); |
4263 ASSERT(ToRegister(instr->constructor()).is(edi)); | 4263 ASSERT(ToRegister(instr->constructor()).is(edi)); |
4264 ASSERT(ToRegister(instr->result()).is(eax)); | 4264 ASSERT(ToRegister(instr->result()).is(eax)); |
4265 | 4265 |
4266 // No cell in ebx for construct type feedback in optimized code | 4266 // No cell in ebx for construct type feedback in optimized code |
4267 __ mov(ebx, isolate()->factory()->undefined_value()); | 4267 __ mov(ebx, isolate()->factory()->undefined_value()); |
4268 CallConstructStub stub(isolate(), NO_CALL_FUNCTION_FLAGS); | 4268 CallConstructStub stub(isolate(), NO_CALL_CONSTRUCTOR_FLAGS); |
4269 __ Move(eax, Immediate(instr->arity())); | 4269 __ Move(eax, Immediate(instr->arity())); |
4270 CallCode(stub.GetCode(), RelocInfo::CONSTRUCT_CALL, instr); | 4270 CallCode(stub.GetCode(), RelocInfo::CONSTRUCT_CALL, instr); |
4271 } | 4271 } |
4272 | 4272 |
4273 | 4273 |
4274 void LCodeGen::DoCallNewArray(LCallNewArray* instr) { | 4274 void LCodeGen::DoCallNewArray(LCallNewArray* instr) { |
4275 ASSERT(ToRegister(instr->context()).is(esi)); | 4275 ASSERT(ToRegister(instr->context()).is(esi)); |
4276 ASSERT(ToRegister(instr->constructor()).is(edi)); | 4276 ASSERT(ToRegister(instr->constructor()).is(edi)); |
4277 ASSERT(ToRegister(instr->result()).is(eax)); | 4277 ASSERT(ToRegister(instr->result()).is(eax)); |
4278 | 4278 |
(...skipping 2145 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6424 __ bind(deferred->exit()); | 6424 __ bind(deferred->exit()); |
6425 __ bind(&done); | 6425 __ bind(&done); |
6426 } | 6426 } |
6427 | 6427 |
6428 | 6428 |
6429 #undef __ | 6429 #undef __ |
6430 | 6430 |
6431 } } // namespace v8::internal | 6431 } } // namespace v8::internal |
6432 | 6432 |
6433 #endif // V8_TARGET_ARCH_IA32 | 6433 #endif // V8_TARGET_ARCH_IA32 |
OLD | NEW |