1// Copyright (c) 2019, the Dart project authors. Please see the AUTHORS file
2// for details. All rights reserved. Use of this source code is governed by a
3// BSD-style license that can be found in the LICENSE file.
4
5#include "vm/globals.h" // Needed here to get TARGET_ARCH_IA32.
6#if defined(TARGET_ARCH_IA32)
7
8#include "vm/compiler/assembler/assembler.h"
9#include "vm/compiler/graph_intrinsifier.h"
10
11namespace dart {
12namespace compiler {
13
14#define __ assembler->
15
16intptr_t GraphIntrinsifier::ParameterSlotFromSp() {
17 return 0;
18}
19
20void GraphIntrinsifier::IntrinsicCallPrologue(Assembler* assembler) {
21 COMPILE_ASSERT(CALLEE_SAVED_TEMP != ARGS_DESC_REG);
22
23 assembler->Comment("IntrinsicCallPrologue");
24 assembler->movl(CALLEE_SAVED_TEMP, ARGS_DESC_REG);
25}
26
27void GraphIntrinsifier::IntrinsicCallEpilogue(Assembler* assembler) {
28 assembler->Comment("IntrinsicCallEpilogue");
29 assembler->movl(ARGS_DESC_REG, CALLEE_SAVED_TEMP);
30}
31
32#undef __
33
34} // namespace compiler
35} // namespace dart
36
37#endif // defined(TARGET_ARCH_IA32)
38