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

Side by Side Diff: src/arm64/macro-assembler-arm64.cc

Issue 2619203005: [wasm] TrapIf and TrapUnless TurboFan operators implemented on arm64. (Closed)
Patch Set: Update a comment Created 3 years, 11 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
« no previous file with comments | « no previous file | src/compiler/arm64/code-generator-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 #if V8_TARGET_ARCH_ARM64 5 #if V8_TARGET_ARCH_ARM64
6 6
7 #include "src/base/bits.h" 7 #include "src/base/bits.h"
8 #include "src/base/division-by-constant.h" 8 #include "src/base/division-by-constant.h"
9 #include "src/bootstrapper.h" 9 #include "src/bootstrapper.h"
10 #include "src/codegen.h" 10 #include "src/codegen.h"
(...skipping 2632 matching lines...) Expand 10 before | Expand all | Expand 10 after
2643 2643
2644 2644
2645 void MacroAssembler::EnterFrame(StackFrame::Type type, 2645 void MacroAssembler::EnterFrame(StackFrame::Type type,
2646 bool load_constant_pool_pointer_reg) { 2646 bool load_constant_pool_pointer_reg) {
2647 // Out-of-line constant pool not implemented on arm64. 2647 // Out-of-line constant pool not implemented on arm64.
2648 UNREACHABLE(); 2648 UNREACHABLE();
2649 } 2649 }
2650 2650
2651 2651
2652 void MacroAssembler::EnterFrame(StackFrame::Type type) { 2652 void MacroAssembler::EnterFrame(StackFrame::Type type) {
2653 DCHECK(jssp.Is(StackPointer()));
2654 UseScratchRegisterScope temps(this); 2653 UseScratchRegisterScope temps(this);
2655 Register type_reg = temps.AcquireX(); 2654 Register type_reg = temps.AcquireX();
2656 Register code_reg = temps.AcquireX(); 2655 Register code_reg = temps.AcquireX();
2657 2656
2658 if (type == StackFrame::INTERNAL) { 2657 if (type == StackFrame::INTERNAL) {
2658 DCHECK(jssp.Is(StackPointer()));
2659 Mov(type_reg, Smi::FromInt(type)); 2659 Mov(type_reg, Smi::FromInt(type));
2660 Push(lr, fp); 2660 Push(lr, fp);
2661 Push(type_reg); 2661 Push(type_reg);
2662 Mov(code_reg, Operand(CodeObject())); 2662 Mov(code_reg, Operand(CodeObject()));
2663 Push(code_reg); 2663 Push(code_reg);
2664 Add(fp, jssp, InternalFrameConstants::kFixedFrameSizeFromFp); 2664 Add(fp, jssp, InternalFrameConstants::kFixedFrameSizeFromFp);
2665 // jssp[4] : lr 2665 // jssp[4] : lr
2666 // jssp[3] : fp 2666 // jssp[3] : fp
2667 // jssp[1] : type 2667 // jssp[1] : type
2668 // jssp[0] : [code object] 2668 // jssp[0] : [code object]
2669 } else if (type == StackFrame::WASM) {
2670 DCHECK(csp.Is(StackPointer()));
2671 Mov(type_reg, Smi::FromInt(type));
2672 Push(xzr, lr);
2673 Push(fp, type_reg);
2674 Add(fp, csp, TypedFrameConstants::kFixedFrameSizeFromFp);
2675 // csp[3] for alignment
2676 // csp[2] : lr
2677 // csp[1] : fp
2678 // csp[0] : type
2669 } else { 2679 } else {
2680 DCHECK(jssp.Is(StackPointer()));
2670 Mov(type_reg, Smi::FromInt(type)); 2681 Mov(type_reg, Smi::FromInt(type));
2671 Push(lr, fp); 2682 Push(lr, fp);
2672 Push(type_reg); 2683 Push(type_reg);
2673 Add(fp, jssp, TypedFrameConstants::kFixedFrameSizeFromFp); 2684 Add(fp, jssp, TypedFrameConstants::kFixedFrameSizeFromFp);
2674 // jssp[2] : lr 2685 // jssp[2] : lr
2675 // jssp[1] : fp 2686 // jssp[1] : fp
2676 // jssp[0] : type 2687 // jssp[0] : type
2677 } 2688 }
2678 } 2689 }
2679 2690
(...skipping 1977 matching lines...) Expand 10 before | Expand all | Expand 10 after
4657 } 4668 }
4658 4669
4659 4670
4660 #undef __ 4671 #undef __
4661 4672
4662 4673
4663 } // namespace internal 4674 } // namespace internal
4664 } // namespace v8 4675 } // namespace v8
4665 4676
4666 #endif // V8_TARGET_ARCH_ARM64 4677 #endif // V8_TARGET_ARCH_ARM64
OLDNEW
« no previous file with comments | « no previous file | src/compiler/arm64/code-generator-arm64.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698