Chromium Code Reviews

Unified Diff: src/arm64/macro-assembler-arm64.cc

Issue 2619203005: [wasm] TrapIf and TrapUnless TurboFan operators implemented on arm64. (Closed)
Patch Set: Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View side-by-side diff with in-line comments
Index: src/arm64/macro-assembler-arm64.cc
diff --git a/src/arm64/macro-assembler-arm64.cc b/src/arm64/macro-assembler-arm64.cc
index b966341dfb92263ade38284861bf5569c6b30701..43492e7a398c20acc944f4939f4a39969645c0dc 100644
--- a/src/arm64/macro-assembler-arm64.cc
+++ b/src/arm64/macro-assembler-arm64.cc
@@ -2650,12 +2650,12 @@ void MacroAssembler::EnterFrame(StackFrame::Type type,
void MacroAssembler::EnterFrame(StackFrame::Type type) {
- DCHECK(jssp.Is(StackPointer()));
UseScratchRegisterScope temps(this);
Register type_reg = temps.AcquireX();
Register code_reg = temps.AcquireX();
if (type == StackFrame::INTERNAL) {
+ DCHECK(jssp.Is(StackPointer()));
Mov(type_reg, Smi::FromInt(type));
Push(lr, fp);
Push(type_reg);
@@ -2666,7 +2666,18 @@ void MacroAssembler::EnterFrame(StackFrame::Type type) {
// jssp[3] : fp
// jssp[1] : type
// jssp[0] : [code object]
+ } else if (type == StackFrame::WASM) {
+ DCHECK(csp.Is(StackPointer()));
+ Mov(type_reg, Smi::FromInt(type));
+ Push(xzr, lr);
+ Push(fp, type_reg);
+ Add(fp, csp, TypedFrameConstants::kFixedFrameSizeFromFp);
+ // csp[3] for alignment
+ // csp[2] : lr
+ // csp[1] : fp
+ // csp[0] : type
} else {
+ DCHECK(jssp.Is(StackPointer()));
Mov(type_reg, Smi::FromInt(type));
Push(lr, fp);
Push(type_reg);
« no previous file with comments | « no previous file | src/compiler/arm64/code-generator-arm64.cc » ('j') | src/compiler/arm64/instruction-selector-arm64.cc » ('J')

Powered by Google App Engine