Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(117)

Side by Side Diff: src/arm64/code-stubs-arm64.cc

Issue 275433004: Require SSE2 support for the ia32 port. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 6 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « src/arm/deoptimizer-arm.cc ('k') | src/arm64/deoptimizer-arm64.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 the V8 project authors. All rights reserved. 1 // Copyright 2013 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_ARM64 7 #if V8_TARGET_ARCH_ARM64
8 8
9 #include "bootstrapper.h" 9 #include "bootstrapper.h"
10 #include "code-stubs.h" 10 #include "code-stubs.h"
(...skipping 4385 matching lines...) Expand 10 before | Expand all | Expand 10 after
4396 kExpectedAllocationSite); 4396 kExpectedAllocationSite);
4397 } 4397 }
4398 4398
4399 // Tail call into the stub that handles binary operations with allocation 4399 // Tail call into the stub that handles binary operations with allocation
4400 // sites. 4400 // sites.
4401 BinaryOpWithAllocationSiteStub stub(isolate(), state_); 4401 BinaryOpWithAllocationSiteStub stub(isolate(), state_);
4402 __ TailCallStub(&stub); 4402 __ TailCallStub(&stub);
4403 } 4403 }
4404 4404
4405 4405
4406 bool CodeStub::CanUseFPRegisters() {
4407 // FP registers always available on ARM64.
4408 return true;
4409 }
4410
4411
4412 void RecordWriteStub::GenerateIncremental(MacroAssembler* masm, Mode mode) { 4406 void RecordWriteStub::GenerateIncremental(MacroAssembler* masm, Mode mode) {
4413 // We need some extra registers for this stub, they have been allocated 4407 // We need some extra registers for this stub, they have been allocated
4414 // but we need to save them before using them. 4408 // but we need to save them before using them.
4415 regs_.Save(masm); 4409 regs_.Save(masm);
4416 4410
4417 if (remembered_set_action_ == EMIT_REMEMBERED_SET) { 4411 if (remembered_set_action_ == EMIT_REMEMBERED_SET) {
4418 Label dont_need_remembered_set; 4412 Label dont_need_remembered_set;
4419 4413
4420 Register value = regs_.scratch0(); 4414 Register value = regs_.scratch0();
4421 __ Ldr(value, MemOperand(regs_.address())); 4415 __ Ldr(value, MemOperand(regs_.address()));
(...skipping 228 matching lines...) Expand 10 before | Expand all | Expand 10 after
4650 4644
4651 __ Bind(&double_elements); 4645 __ Bind(&double_elements);
4652 __ Ldr(x10, FieldMemOperand(array, JSObject::kElementsOffset)); 4646 __ Ldr(x10, FieldMemOperand(array, JSObject::kElementsOffset));
4653 __ StoreNumberToDoubleElements(value, index_smi, x10, x11, d0, 4647 __ StoreNumberToDoubleElements(value, index_smi, x10, x11, d0,
4654 &slow_elements); 4648 &slow_elements);
4655 __ Ret(); 4649 __ Ret();
4656 } 4650 }
4657 4651
4658 4652
4659 void StubFailureTrampolineStub::Generate(MacroAssembler* masm) { 4653 void StubFailureTrampolineStub::Generate(MacroAssembler* masm) {
4660 CEntryStub ces(isolate(), 1, fp_registers_ ? kSaveFPRegs : kDontSaveFPRegs); 4654 CEntryStub ces(isolate(), 1, kSaveFPRegs);
4661 __ Call(ces.GetCode(), RelocInfo::CODE_TARGET); 4655 __ Call(ces.GetCode(), RelocInfo::CODE_TARGET);
4662 int parameter_count_offset = 4656 int parameter_count_offset =
4663 StubFailureTrampolineFrame::kCallerStackParameterCountFrameOffset; 4657 StubFailureTrampolineFrame::kCallerStackParameterCountFrameOffset;
4664 __ Ldr(x1, MemOperand(fp, parameter_count_offset)); 4658 __ Ldr(x1, MemOperand(fp, parameter_count_offset));
4665 if (function_mode_ == JS_FUNCTION_STUB_MODE) { 4659 if (function_mode_ == JS_FUNCTION_STUB_MODE) {
4666 __ Add(x1, x1, 1); 4660 __ Add(x1, x1, 1);
4667 } 4661 }
4668 masm->LeaveFrame(StackFrame::STUB_FAILURE_TRAMPOLINE); 4662 masm->LeaveFrame(StackFrame::STUB_FAILURE_TRAMPOLINE);
4669 __ Drop(x1); 4663 __ Drop(x1);
4670 // Return to IC Miss stub, continuation still on stack. 4664 // Return to IC Miss stub, continuation still on stack.
(...skipping 815 matching lines...) Expand 10 before | Expand all | Expand 10 after
5486 MemOperand(fp, 6 * kPointerSize), 5480 MemOperand(fp, 6 * kPointerSize),
5487 NULL); 5481 NULL);
5488 } 5482 }
5489 5483
5490 5484
5491 #undef __ 5485 #undef __
5492 5486
5493 } } // namespace v8::internal 5487 } } // namespace v8::internal
5494 5488
5495 #endif // V8_TARGET_ARCH_ARM64 5489 #endif // V8_TARGET_ARCH_ARM64
OLDNEW
« no previous file with comments | « src/arm/deoptimizer-arm.cc ('k') | src/arm64/deoptimizer-arm64.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698